convert from svn repository: remove tags directory
[lttv.git] / trunk / verif / Spin / Man / spin.1
CommitLineData
0b55f123 1.ds Z S\s-2PIN\s0
2.ds P P\s-2ROMELA\s0
3.\"
4.\" On CYGWIN move this page to c:/cygwin/usr/man/man1/spin.1
5.\"
6.TH SPIN 1
7.CT 1 comm_mach protocol
8.SH NAME
9spin \(mi verification tool for models of concurrent systems
10.SH SYNOPSIS
11.B spin
12.BI "-a [-m]"
13[
14.BI -P cpp
15]
16.I file
17.br
18.B spin
19.BI "[-bglmprsv] [-n\f2N\f(BI]"
20[
21.BI -P cpp
22]
23.I file
24.br
25.B spin
26.BI "-c [-t]"
27[
28.BI -P cpp
29]
30.I file
31.br
32.B spin
33.BI -d
34[
35.BI -P cpp
36]
37.I file
38.br
39.B spin
40.BI -f
41.I LTL
42.br
43.B spin
44.BI -F
45.I file
46.br
47.B spin
48.BI "-i [-bglmprsv] [-n\f2N\f(BI]"
49[
50.BI -P cpp
51]
52.I file
53.br
54.B spin
55.BI "-M [-t]"
56[
57.BI -P cpp
58]
59.I file
60.br
61.B spin
62.BI "-t[N] [-bglmprsv] [-j\f2N\f(BI]"
63[
64.BI -P cpp
65]
66.I file
67.br
68.B spin
69.BI -V
70.I file
71.SH DESCRIPTION
72\*Z
73is a tool for analyzing the logical consistency of
74asynchronous systems, specifically distributed software
75amd communication protocols.
76A verification model of the system is first specified
77in a guarded command language called Promela.
78This specification language, described in the reference,
79allows for the modeling of dynamic creation of
80asynchronous processes,
81nondeterministic case selection, loops, gotos, local and
82global variables.
83It also allows for a concise specification of logical
84correctness requirements, including, but not restricted
85to requirements expressed in linear temporal logic.
86.PP
87Given a Promela model
88stored in
89.I file ,
90\*Z can perform interactive, guided, or random simulations
91of the system's execution.
92It can also generate a C program that performs an exhaustive
93or approximate verification of the correctness requirements
94for the system.
95.\"----------------------a----------------
96.TP
97.B -a
98Generate a verifier (model checker) for the specification.
99The output is written into a set of C files, named
100.BR pan. [ cbhmt ],
101that can be compiled
102.RB ( "cc pan.c" )
103to produce an executable verifier.
104The online \*Z manuals (see below) contain
105the details on compilation and use of the verifiers.
106.\"--------------------------c------------
107.TP
108.B -c
109Produce an ASCII approximation of a message sequence
110chart for a random or guided \19(when combined with \f3-t\f1)
111simulation run. See also option \f3-M\f1.
112.\"--------------------------d------------
113.TP
114.BI -d
115Produce symbol table information for the model specified in
116.I file .
117For each Promela object this information includes the type, name and
118number of elements (if declared as an array), the initial
119value (if a data object) or size (if a message channel), the
120scope (global or local), and whether the object is declared as
121a variable or as a parameter. For message channels, the data types
122of the message fields are listed.
123For structure variables, the 3rd field defines the
124name of the structure declaration that contains the variable.
125.\"--------------------------f------------
126.TP
127.BI "-f \f2LTL\f1"
128Translate the LTL formula \f2LTL\f1 into a never claim.
129.br
130This option reads a formula in LTL syntax from the second argument
131and translates it into Promela syntax (a never claim, qhich is Promela's
132equivalent of a B\(u"chi Automaton).
133The LTL operators are written: [] (always), <> (eventually),
134and U (strong until). There is no X (next) operator, to secure
135compatibility with the partial order reduction rules that are
136applied during the verification process.
137If the formula contains spaces, it should be quoted to form a
138single argument to the \*Z command.
139.\"--------------------------F------------
140.TP
141.BI "-F \f2file\f1"
142Translate the LTL formula stored in
143.I file
144into a never claim.
145.br
146This behaves identical to option
147.B -f
148but will read the formula from the
149.I file
150instead of from the command line.
151The file should contain the formula as the first line. Any text
152that follows this first line is ignored, so it can be used to
153store comments or annotation on the formula.
154(On some systems the quoting conventions of the shell complicate
155the use of option
156.B -f .
157Option
158.B -F
159is meant to solve those problems.)
160.\"--------------------------i------------
161.TP
162.BI -i
163Perform an interactive simulation, prompting the user at
164every execution step that requires a nondeterministic choice
165to be made. The simulation proceeds without user intervention
166when execution is deterministic.
167.\"--------------------------M------------
168.TP
169.BI -M
170Produce a message sequence chart in Postscript form for a
171random simulation or a guided simulation
172(when combined with \f(BI-t\f1), for the model in
173.I file ,
174and write the result into
175.I file.ps .
176See also option \f3-c\f1.
177.\"--------------------------m------------
178.TP
179.BI -m
180Changes the semantics of send events.
181Ordinarily, a send action will be (blocked) if the
182target message buffer is full.
183With this option a message sent to a full buffer is lost.
184.\"--------------------------n------------
185.TP
186.BI "-n\f2N"
187Set the seed for a random simulation to the integer value
188.I N .
189There is no space between the \f(BI-n\f1 and the integer \f2N\f1.
190.\"--------------------------t------------
191.TP
192.BI -t
193Perform a guided simulation, following the error trail that
194was produces by an earlier verification run, see the online manuals
195for the details on verification.
196.\"--------------------------V------------
197.TP
198.BI -V
199Prints the \*Z version number and exits.
200.\"--------------------------.------------
201.PP
202With only a filename as an argument and no option flags,
203\*Z performs a random simulation of the model specified in
204the file (standard input is the default if the filename is omitted).
205This normally does not generate output, except what is generated
206explicitly by the user within the model with \f(CWprintf\f1
207statements, and some details about the final state that is
208reached after the simulation completes.
209The group of options
210.B -bglmprsv
211is used to set the desired level of information that the user wants
212about a random, guided, or interactive simulation run.
213Every line of output normally contains a reference to the source
214line in the specification that generated it.
215If option
216.B -i
217is added, the simulation is \f2interactive\f1, or if option
218.B -t
219is added, the simulation is \f2guided\f1.
220.\"--------------------------bglprsv------------
221.TP
222.BI -b
223Suppress the execution of \f(CWprintf\f1 statements within the model.
224.TP
225.BI -g
226Show at each time step the current value of global variables.
227.TP
228.BI -l
229In combination with option
230.BR -p ,
231show the current value of local variables of the process.
232.TP
233.BI -p
234Show at each simulation step which process changed state,
235and what source statement was executed.
236.TP
237.BI -r
238Show all message-receive events, giving
239the name and number of the receiving process
240and the corresponding the source line number.
241For each message parameter, show
242the message type and the message channel number and name.
243.TP
244.BI -s
245Show all message-send events.
246.TP
247.BI -v
248Verbose mode, add some more detail, and generat more
249hints and warnings about the model.
250.SH SEE ALSO
251Online manuals at spinroot.com:
252.br
253.in +4
254GettingStarted.pdf,
255Roadmap.pdf,
256Manual.pdf,
257WhatsNew.pdf,
258Exercises.pdf
259.in -4
260More background information on the system and the verification process,
261can be found in, for instance:
262.br
263.in +4
264G.J. Holzmann, \f2Design and Validation of Computer Protocols\f1,
265Prentice Hall, 1991.
266.br
267--, `Design and validation of protocols: a tutorial,'
268\f2Computer Networks and ISDN Systems\f1,
269Vol. 25, No. 9, 1993, pp. 981-1017.
270.br
271--, `The model checker \*Z,'
272\f2IEEE Trans. on SE\f1, Vol, 23, No. 5, May 1997.
273.in -4
274.br
This page took 0.031843 seconds and 4 git commands to generate.