Annotation of lucent/sys/man/1/spin, revision 1.1.1.1

1.1       root        1: .TH SPIN 1
                      2: .SH NAME
                      3: spin \- verification tool for concurrent systems
                      4: .SH SYNOPSIS
                      5: .B spin
                      6: [
                      7: .BI -n N
                      8: ]
                      9: [
                     10: .B -plgrsmv
                     11: ]
                     12: [
                     13: .B -iat
                     14: ]
                     15: [
                     16: .B -DV
                     17: ]
                     18: [
                     19: .I file
                     20: ]
                     21: .SH DESCRIPTION
                     22: .I Spin
                     23: is a tool for analyzing the logical consistency of
                     24: concurrent systems, specifically communication protocols.
                     25: The system is specified in a guarded command language called
                     26: .SM PROMELA2\c
                     27: \&.
                     28: The language, described in the references,
                     29: allows for the dynamic creation of processes,
                     30: nondeterministic case selection, loops, gotos,
                     31: variables, and the specification of correctness requirements.
                     32: The tool has fast algorithms for analyzing arbitrary
                     33: liveness and safety conditions.
                     34: .PP
                     35: Given a model system specified in
                     36: .SM PROMELA2\c
                     37: ,
                     38: .I spin
                     39: can perform interactive, guided, or random simulations
                     40: of the system's execution
                     41: or it can generate a C program that performs an exhaustive
                     42: or approximate verification of the system.
                     43: The verifier can check, for instance, if user specified system
                     44: invariants are violated during a protocol's execution, or
                     45: if non-progress execution cycles exist.
                     46: .PP
                     47: Without any options the program performs a random simulation of the system
                     48: defined in the input
                     49: .IR file ,
                     50: default standard input.
                     51: The option
                     52: .BI -n N
                     53: sets the random seed to the integer value
                     54: .IR N .
                     55: .PP
                     56: The group of options
                     57: .B -pglmrsv
                     58: is used to set the level of information reported
                     59: about the simulation run.
                     60: Every line of output normally contains a reference to the source
                     61: line in the specification that caused it.
                     62: .TP
                     63: .B p
                     64: Show at each time step which process changed state and what source
                     65: statement was executed.
                     66: .TP
                     67: .B l
                     68: In combination with option
                     69: .BR p ,
                     70: show the current value of local variables of the process.
                     71: .TP
                     72: .B g
                     73: Show the value of global variables at each time step.
                     74: .TP
                     75: .B r
                     76: Show all message-receive events, giving
                     77: the name and number of the receiving process
                     78: and the corresponding source line number.
                     79: For each message parameter, show
                     80: the message type and the message channel number and name.
                     81: .TP
                     82: .B s
                     83: Show all message-send events.
                     84: .TP
                     85: .B m
                     86: Ordinarily, a send action will be delayed if the
                     87: target message buffer if full.
                     88: With this option a message sent to a full buffer is lost.
                     89: The option can be combined with
                     90: .B -a
                     91: (see below).
                     92: .TP
                     93: .B v
                     94: Verbose mode: add extra detail and include more warnings.
                     95: .TP
                     96: .BI i
                     97: Perform an interactive simulation.
                     98: .TP
                     99: .B a
                    100: Generate a protocol-specific verifier.
                    101: The output is written into a set of C files, named
                    102: .BR pan. [ cbhmt ],
                    103: that can be compiled
                    104: .RB ( "cc pan.c" )
                    105: to produce an executable verifier.
                    106: Systems that require more memory than available
                    107: on the target machine can still be analyzed by compiling
                    108: the verifier with a bit state space:
                    109: .IP
                    110: .B "   cc -DBITSTATE pan.c
                    111: .IP
                    112: This collapses the state space to 1 bit per system state,
                    113: with minimal side-effects.
                    114: Partial order reduction rules take effect during the
                    115: verification if the compiler directive
                    116: .B -DREDUCE
                    117: is used.
                    118: .IP
                    119: The compiled verifiers have their own sets of options,
                    120: which can be seen by running them with option
                    121: .BR -? .
                    122: .TP
                    123: .B t
                    124: If the verifier finds a violation of a correctness property,
                    125: it writes an error trail.
                    126: The trail can be inspected in detail by invoking
                    127: .I spin
                    128: with the
                    129: .B -t
                    130: option.
                    131: In combination with the options
                    132: .BR pglrsv ,
                    133: different views of the error sequence are then be obtained.
                    134: .TP
                    135: .B D
                    136: Perform a static dataflow analysis.
                    137: .TP
                    138: .B V
                    139: Print the version number and exit.
                    140: .SH SEE ALSO
                    141: G.J. Holzmann,
                    142: .I
                    143: Design and Validation of Computer Protocols,
                    144: Prentice Hall, 1991.
                    145: .br
                    146: \(em, ``Using
                    147: .SM SPIN\c
                    148: \&''.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.