reach

command
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

Command reach provides a cli for binary system reachability.

⎣ ⇨ reach
Reach is a finite state reachability tool for binary systems.

usage: reach [gopts] <command> [args]

available commands:
	iic	iic is an incremental inductive checker.
	bmc	bmc performs SAT based bounded model checking.
	sim	sim simulates aiger.
	ck	ck checks traces and inductive invariants.
	stim	stim outputs an aiger stimulus from an output directory.
	aag	aag outputs an ascii aiger of the reach internal representation from an output directory.
	aig	aig outputs an binary aiger of the Reach internal representation of an aiger.
	info	info provides summary information about an aiger or output.

global options:
  -cpuprof string
    	file to output cpu profile

For help on a command, try "reach <cmd> -h".
⎣ ⇨ reach iic -h
reach iic [options] <aiger0> [<aiger1>, ...]
  -dur duration
    	timeout (default 30s)
  -o string
    	output directory (default ".")
  -to int
    	maximum depth (default 1073741824)

iic runs an incremental inductive checker on the supplied aiger files to find
or disprove reachability of bad states. Iic can find and output deep
counterexample traces and output inductive invariants as a witness to
unreachable bad states.

iic counterexamples are not necessarily shortest counterexamples. Bad state
depths for traces are the trace length itself.  For unknown results, depths
represent the depth to which it is known no counterexample trace exists.

⎣ ⇨ reach bmc -h
reach bmc [opts] <aiger0> <aiger1> ...
  -dur duration
    	timeout (default 30s)
  -o string
    	output directory (default ".")
  -to int
    	maximum depth (default 1073741824)

bmc does SAT based bounded model checking on aiger files.  Bounded model
checking is the most effective way to find or verify the absense of corner case
bugs which don't require very many steps of computation.  If no bugs are found,
then the depth of the result indicates that there are no reachable bad steps
within "depth" steps.

⎣ ⇨ reach sim -h
reach sim [opts] <aiger>
  -dur duration
    	timeout (default 30s)
  -o string
    	output directory (default ".")
  -to int
    	maximum depth (default 1073741824)
  -until int
    	"-until n" will limit sim so that it runs at most
    	until all bad states have been reached n times. (default 1)
  -win int
    	memory for trace gen in steps. (default 1024)

sim simulates an aiger file with the specified trace.  Simulation does 64
Boolean operations in parallel with a single 64-bit word operation.

Upon completion, any bad states which were visited will cause sim to create
a trace.  The trace may be incomplete and only contains the last 'win' steps
leading to the bad state.

Reachable bad states have 'Depth' reported as the true number of steps, which
may exceed the trace memory limit.

⎣ ⇨ reach ck -h
reach ck [opts] <output0> [<output1>, ...]
  -dur duration
    	time limit for checking each invariant. (default 5s)
  -v	verbose, provide more info.

ck verifies traces and inductive invariants in reach output directories.
ck prints out whether or each bad state is verified and any errors.  If
there are any bad states which fail verification, then check causes reach
to exit with status 1. Otherwise, reach exits with status 0.

⎣ ⇨ reach stim -h
reach stim [opts] <output>
  -o string
    	suffix (after bad.) for aiger stimuli output files.

stim output saiger stimuli from an output directory.  The output
directory should have a .trace file associated with a bad state.

By default, the output is written to stdout.

⎣ ⇨ reach aag -h
reach aag [opts] <output>
  -o string
    	output path

aag outputs ascii aiger file of the aig in the specified output directory.  The resulting file
is the aag of the Reach internal representation of the aig.

By default, the output is written to stdout.

⎣ ⇨ reach aig -h
reach aig [opts] <output>
  -o string
    	output path

aig outputs binary aiger file of the aig in the specified output directory.  The resulting file
is the aig of the Reach internal representation of the aig.

By default, the output is written to stdout.

⎣ ⇨ reach info -h
reach info [opts] <aiger | output>
  -v	verbose, provide more info.

info provides information about an aiger or output directory of reach.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL