1
.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
4
.\" ========================================================================
5
.de Sh \" Subsection heading
13
.de Sp \" Vertical space (when we can't use .PP)
17
.de Vb \" Begin verbatim text
22
.de Ve \" End verbatim text
27
.\" Set up some character translations and predefined strings. \*(-- will
28
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
29
.\" double quote, and \*(R" will give a right double quote. | will give a
30
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
31
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
32
.\" expand to `' in nroff, nothing in troff, for use with C<>.
34
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
38
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
39
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
52
.\" If the F register is turned on, we'll generate index entries on stderr for
53
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
54
.\" entries marked with X<> in POD. Of course, you'll have to process the
55
.\" output yourself in some meaningful fashion.
58
. tm Index:\\$1\t\\n%\t"\\$2"
64
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
65
.\" way too many mistakes in technical documents.
69
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
70
.\" Fear. Run. Save yourself. No user-serviceable parts.
71
. \" fudge factors for nroff and troff
80
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
86
. \" simple accents for nroff and troff
96
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
97
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
98
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
99
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
100
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
101
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
103
. \" troff and (daisy-wheel) nroff accents
104
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
105
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
106
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
107
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
108
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
109
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
110
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
111
.ds ae a\h'-(\w'a'u*4/10)'e
112
.ds Ae A\h'-(\w'A'u*4/10)'E
113
. \" corrections for vroff
114
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
115
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
116
. \" for low resolution devices (crt and lpr)
117
.if \n(.H>23 .if \n(.V>19 \
130
.\" ========================================================================
133
.TH PCS 1 "2003-04-29" "perl v5.6.1" "SPASS"
136
pcs \- checks \s-1SPASS\s0 proofs
138
.IX Header "SYNOPSIS"
139
\&\fBpcs\fR [ \-cdfrstv] file
141
.IX Header "DESCRIPTION"
142
\&\fBpcs\fR is a Perl script that supports automatic checking of proofs specified in
143
\&\fB\s-1DFG\s0\fR syntax with the theorem prover \s-1OTTER\s0.
146
the C\-program \fBpgen\fR, which generates proof tasks corresponding to inference steps for each proof step of a \fB\s-1DFG\s0\fR proof and checks the tableau structure.
148
the C\-program \fB\s-1SPASS\s0\fR with the \-Flotter option for converting
149
\&\fB\s-1DFG\s0\fR syntax files with formulas into \fB\s-1DFG\s0\fR syntax files with
152
the C\-program dfg2otter, which transforms files in \fB\s-1DFG\s0\fR syntax with
153
clauses only into files for \s-1OTTER\s0 syntax.
155
\&\fBpcs\fR checks that:
157
The conclusion in each proof step is a logical consequence
158
of the assumptions in that proof step.
160
Each clause in a subtableau uses only parents clauses that are
161
visible at this point in the tableau.
163
Each clause, except for split clauses, has the maximum
164
split level of its parents.
166
If the first half of a split was ground, then negations
167
of its literals can be used in the tableau branch corresponding
168
to the second half of the split.
170
The tableau is complete and closed.
172
The second condition is verified by checking the unsatisfiability
175
\& Assumptions \ewedge \eneg Conclusion
177
for each proof step (inference rule application) by running \s-1OTTER\s0
178
for a limited time. The appropriate \fB\s-1DFG\s0\fR files for these problems
179
are generated by \fBpgen\fR. \s-1OTTER\s0 may fail to terminate
180
within this time, leaving the correctness of a proof step undecided,
181
which leads to the three possible results of \fBpcs\fR:
183
The proof is correct: Both conditions are satisfied for all proof steps.
185
The proof is not correct: One condition is definitely violated for
186
at least one proof step.
188
Correctness is undecided: The first condition is satisfied,
189
but the second condition could not be verified nor falsified for at least
192
\&\fBpcs\fR uses a working directory, in which all proof tasks corresponding to the proof steps
193
are generated using the \fBpgen\fR program. These tasks are subsequently
194
checked using \s-1OTTER\s0.
197
Several options control the behavior
198
of \fBpcs\fR when it fails to verify a proof step, its output and the
199
naming of generated files and the working directory:
200
.ie n .IP """\-c""" 4
201
.el .IP "\f(CW\-c\fR" 4
203
Continue even if a single proof step could not be verified. Default 'off'.
204
.ie n .IP """\-d \f(CIsuffix\f(CW""" 4
205
.el .IP "\f(CW\-d \f(CIsuffix\f(CW\fR" 4
207
Suffix of created working directory. For an input file
208
\&\fIroot.ext\fR, the working directory \fI<root><suffix>\fR is created. If \fIsuffix\fR does not end with a backslash, it is taken as a \fIprefix\fR for files generated by \fBpgen\fR, which are then created in the current working directory. Default is '_SubProofs/'.
209
.ie n .IP """\-f""" 4
210
.el .IP "\f(CW\-f\fR" 4
212
Overwrite working directory if it already exists. Default 'off'.
213
.ie n .IP """\-o""" 4
214
.el .IP "\f(CW\-o\fR" 4
216
Use \fB\s-1SPASS\s0\fR as proof checker instead of \s-1OTTER\s0. This option is
217
especially useful when checking proofs generated by a different prover.
219
.ie n .IP """\-p \f(CIpath\f(CW""" 4
220
.el .IP "\f(CW\-p \f(CIpath\f(CW\fR" 4
222
Location of \fB\s-1DFG\s0\fR prover to be used instead of the default one. If \-o is
223
specified, then it overrides this option, and \fB\s-1SPASS\s0\fR is used
224
instead. If a \fB\s-1DFG\s0\fR converter is specified, then a prover must be
225
specified as well. Default is \s-1OTTER\s0.
226
.ie n .IP """\-q""" 4
227
.el .IP "\f(CW\-q\fR" 4
229
Be quiet and do not print program paths. This option is especially useful inside \fBcheckstat\fR. Default is 'off'.
230
.ie n .IP """\-r""" 4
231
.el .IP "\f(CW\-r\fR" 4
233
Clean up all generated files at the end, even if the proof is not valid.
235
.ie n .IP """\-s \f(CIsuffix\f(CW""" 4
236
.el .IP "\f(CW\-s \f(CIsuffix\f(CW\fR" 4
238
Suffix of files generated by \fBpgen\fR. Default is '.dfg'.
239
.ie n .IP """\-t \f(CIlimit\f(CW """ 4
240
.el .IP "\f(CW\-t \f(CIlimit\f(CW \fR" 4
242
Number of seconds for each proof attempt
243
for each proof step. Default is 3 seconds.
244
.ie n .IP """\-v""" 4
245
.el .IP "\f(CW\-v\fR" 4
247
(verbose) Give some progress information. Default is 'off'.
248
.ie n .IP """\-w \f(CIpath\f(CW""" 4
249
.el .IP "\f(CW\-w \f(CIpath\f(CW\fR" 4
251
Location of \fB\s-1DFG\s0\fR converter to be used instead of the default one.
252
If a \fB\s-1DFG\s0\fR converter is specified, then a prover must be
253
specified as well. Default is \fBdfg2otter.pl\fR.
255
.IX Header "SEE ALSO"
256
\&\fIcheckstat\fR\|(1), \fIfilestat\fR\|(1), \fIpgen\fR\|(1), \fIrescmp\fR\|(1), \fItpform\fR\|(1), \fItpget\fR\|(1), \fIdeprose\fR\|(1), \fIdfg2otter\fR\|(1), \fIdfg2otterpl\fR\|(1), \s-1\fISPASS\s0\fR\|(1)
259
Thorsten Engel and Christian Theobalt.
261
Contact : Thomas Hillenbrand <hillen@mpi\-sb.mpg.de>
262
Christoph Weidenbach <weidenb@mpi\-sb.mpg.de>