1
@setfilename SPASS.info
2
@settitle automated theorem prover for full first-order logic with equality
5
@node SPASS, checkstat, Top, Top
6
@comment node-name, next, previous, up
13
SPASS - an automated theorem prover for full first-order logic with equality
18
SPASS [@option{options}] [@var{inputfile}]
23
@c man begin DESCRIPTION
24
SPASS is an automated theorem prover for full sorted first-order logic with equality
25
that extends superposition by sorts and a splitting rule for case analysis.
26
SPASS can also be used as a modal logic and description logic theorem prover.
32
Command line options in SPASS are implemented via modifications to the GNU command
33
line option package for C. Just giving the option sets its value to 1 and means enabling
34
the option. In order to disable
35
an option the value has to be set to 0 by declaring -@i{Option}=0.
36
The following options are currently supported by SPASS:
40
@*Enables/disables the auto mode where SPASS configures itself automatically.
41
The inference/reduction rules, the sort technology, the ordering and precedence
42
as well as the splitting and selection strategy are set.
43
In auto mode SPASS is complete. Mixing the auto mode with user defined options
44
may destroy completeness.
47
Enables/disables input in SPASS via stdin. The file argument is ignored. Default is 0.
49
Enables/disables the interactive mode. First, SPASS is given a set of axioms and then
50
the prover accepts subsequent proof tasks. Default is 0.
52
Enables/disables the CNF translation mode of SPASS. If the option is set, SPASS only
53
performs a clause normal form translation. If no output file argument is given
54
SPASS prints the CNF to stdout. Default is 0.
56
Enables/disables the set of support strategy. Default is 0.
58
Sets the number of possible splitting applications to @i{n}. If @i{n}=-1 then
59
the number of splits is not limited. Default is 0.
61
Sets the amount of memory available to SPASS for the proof search to @i{n} bytes.
62
The memory needed to startup SPASS cannot be restricted.
63
Default is -1 meaning that memory allocations is only restricted by available memory.
64
@item -TimeLimit=@i{n}
65
Sets a time limit for the proof search to @i{n} seconds. Default is -1 meaning that
66
SPASS may run forever. The time limit is polled when SPASS selects a new clause for
67
inferences. If a single inference step causes an explosion to the number of generated
68
clauses it may therefore happen that a given time limit is significantly exceeded.
70
Enables/disables documentation output for static soft typing.
71
The used sort theory as well as the (failed) proof attempt for
72
the sort constraint is printed.
75
Enables/disables proof documentation. If SPASS finds a proof it is eventually
76
printed. If SPASS finds a saturation, the saturated set of clauses is eventually printed.
77
Enabling proof documentation may significantly decrease SPASS's performance, because
78
the prover must store clauses that can be thrown away otherwise. Default is 0.
80
Sets the documentation of split backtracking steps. If set to 1, the
81
current backtracking level is printed. If set to 2, it also prints in case
82
of a split backtrack the backtracked clauese.
85
Sets the maximal number of mainloop iterations for SPASS.
88
Enables/disables printing of subsumed clauses.
91
Enables/disables printing of simple rewrite applications.
94
Enables/disables printing of condensation applications.
97
Enables/disables printing of tautology deletion applications.
100
Enables/disables printing of obvious reduction applications.
103
Enables/disables printing of sort simplification applications.
106
Enables/disables printing of static soft typing applications.
107
All deleted clauses are printed.
110
Enables/disables printing of matching replacement resolution applications.
113
Enables/disables printing of unit conflict applications.
116
Enables/disables printing of clauses where redundant
117
equations have been removed (assignment equation deletion).
119
Enables/disables printing of clauses derived by inferences.
122
Enables/disables printing of the given clause, selected
123
to perform inferences.
126
Enables/disables printing of labels. If the -DocProof is
127
set and no labels for formulae are provided by the input,
128
SPASS generates generic labels that are then printed by enabling this option.
131
Enables/disables printing of kept clauses. These are clauses
132
generated by inferences (backtracking) that are not redundant.
133
Clauses derived during input reduction/saturation are not printed.
136
Enables/disables printing of the input clause set.
139
Enables/disables printing of derived empty clauses.
142
Enables/disables printing of a final statistics on derived/backtracked/kept clauses, performed splits,
143
used time and used space.
146
Enables/disables the output of an eventually found model to a file. If set
147
to 1, all clauses in the final set are printed. If set to 2, only
148
potentially productive clauses are printed, that are clauses with no selected
149
negative literal and a maximal positive one. If <problemfile> is the name
150
of the input problem and the eventually generated set is saturated, the
151
saturation is printed to the file <problemfile>.model, for otherwise
152
to <problemfile>.clauses. The latter case may, e.g., be caused by a time limit.
155
Enables/disables the output of an eventually found proof to a file. Using this
156
option requires to set the option -DocProof. If <problemfile> is the name
157
of the input problem the proof is printed to <problemfile>.prf.
160
Enables/disables the output of all flag values. The flag settings are
161
printed at the end of a SPASS run in form of a DFG-Syntax input section.
164
Enables/disables the output of optimized Skolemization applications.
167
Enables/disables the output of strong Skolemization applications.
170
Enables/disables the output of clauses deleted because of
174
Enables/disables the output of bound restriction changes.
177
Enables/disables printing of expansions of atom definitions.
180
Sets the selection strategy for SPASS. If set to 0 no selection
181
of negative literals is done. If set to any other value, at most
182
one negative literal in a clause is selected. If set to 1 negative
183
literals in clauses with more than one maximal literal are selected.
184
Either a negative literal with a predicate from the selection list (see below) is chosen
185
or if no such negative literal is available, a negative literal with maximal weight is chosen.
186
If set to 2 negative literals are always selected. Again,
187
either a negative literal with a predicate from the selection list (see below) is chosen
188
or if no such negative literal is available, a negative literal with maximal weight is chosen.
189
The latter case results
190
in an ordered hyperresolution like behavior of ordered resolution.
191
If set to 3 any negative literal with a predicate specified by the selection list (see below)
195
Enables/disables the reduction of the initial clause set.
198
Determines the monadic literals that built the sort constraint
199
for the initial clause set.
200
If set to 0, no sort constraint is built. If set to 1, all negative
201
monadic literals with a variable as argument form the sort constraint.
202
If set to 2, all negative monadic literals form the sort constraint.
203
Setting -Sorts to 2 may harm completeness, since sort constraints are
204
subject to the basic strategy and to static soft typing.
207
Enables/disables input saturation. The saturation is incomplete
208
but is guaranteed to terminate.
211
Sets the ratio between given clauses selected by
212
weight or the depth in the search space. The weight is the
213
sum of all symbol weights determined by the -FuncWeight and
214
-VarWeight options. The depth of all initial clauses is 0 and
215
clauses generated by inferences get the maximal depth of a parent
217
Default is 5, meaning
218
that 4 clauses are selected by weight and the fifth clause is
221
Sets the ratio to compute the weight for conjecture clauses
222
and therefore allows to prefer those. Default is 0 meaning that
223
the weight computation for conjecture clauses is not changed.
225
Enables/disables full reduction. If set to 0, only the set of worked
226
off clauses is completely inter-reduced. If set to 1, all currently
227
hold clauses (worked off and usable) are completely inter-reduced.
230
Sets the weight of function/predicate symbols. The weight of
231
clauses is the sum of all symbol weights. This weight is considered
232
for the selection of the given clause. Default is 1.
234
Sets the weight of variable symbols (see -FuncWeight).
237
Enables/disables the preference for clauses with many variables.
238
While clauses are selected by weight, if this option is set and
239
two clauses have the same weight, the clause with more variable
240
occurrences is preferred.
243
Selects the mode for bound restrictions. Mode 0 means no
244
restriction, if set to 1 all newly generated clauses are restricted by weight
245
(see -BoundStart) and if set to 2 clauses are restricted
246
by depth. Default is 0.
248
The start restriction of the selected bound mode. For example,
249
if bound mode is 1 and bound start set to 5, all clauses with
250
a weight larger than 5 are deleted until the set is saturated.
251
This causes an increase of the used bound value that is
252
determined by the minimal increase saving a before deleted
253
clause. Default is -1 meaning no bound restriction.
255
The number of loops applying the actions restrictions/increasing bound.
256
If the number of loops is exceeded all bound restrictions are
257
cancelled. Default is 1.
259
Sets the maximal number of applications of atom definitions to input formulae.
260
Default is 0, meaning no applications at all.
262
Sets the term ordering. If 0 then KBO is selected,
263
if 1 the RPOS is selected. Default is 0.
265
If set, non-constant Skolem terms in the clausal form of the
266
conjecture are replaced by constants.
267
Will automatically be set for the optimized functional translation of
268
modal or description logic formulae.
271
Enables/disables optimized Skolemization.
274
Enables/disables Strong Skolemization.
277
Sets the maximal number of proof steps
278
in an optimized Skolemization proof attempt.
281
Enables/disables subsumption on the clauses generated by the CNF procedure.
284
Enables/disables condensing on the clauses generated by the CNF procedure.
287
Sets the overall amount of time in seconds to be spend on reduction during
288
CNF transformation. Affected reductions are optimized Skolemization, condensing,
289
and subsumption. Default is -1 meaning that the reduction time is not limited
292
Enables/disables formula renaming.
293
If set to 1 optimized renaming is enabled that minimizes
294
the number of eventually generated clauses.
295
If set to 2 complex renaming is enabled that introduces a
296
new Skolem predicate for every complex formula, i.e., any
297
formula that is not a literal.
298
If set to 3 quantification renaming is enabled that introduces
299
a new Skolem predicate for every subformula starting with
303
If set, renaming variant subformulae are replaced by the same
307
Enables/disables the printing of formula renaming applications.
310
Enables/disables certain equality reduction techniques
311
on the formula level. Default is 1.
313
Enables/disables the inference rule Empty Sort.
316
Enables/disables the inference rule Sort Resolution.
319
Enables/disables the inference rule Equality Resolution.
322
Enables/disables the inference rule Reflexivity Resolution.
325
Enables/disables the inference rule Equality Factoring.
328
Enables/disables the inference rule Merging Paramodulation.
331
Enables/disables the inference rule Superposition Right.
334
Enables/disables the inference rule Ordered Paramodulation.
337
Enables/disables the inference rule Standard Paramodulation.
340
Enables/disables the inference rule Superposition Left.
343
Enables/disables the inference rule Ordered Resolution.
344
If set to 1, Ordered Resolution is enabled but no resolution
345
inferences with equations are generated. If set to 2, equations
346
are considered for Ordered Resolution steps as well.
349
Enables/disables the inference rule Standard Resolution.
350
If set to 1, Standard Resolution is enabled but no resolution
351
inferences with equations are generated. If set to 2, equations
352
are considered for Standard Resolution steps as well.
355
Enables/disables the inference rule Standard Hyper-Resolution.
358
Enables/disables the inference rule Ordered Hyper-Resolution.
361
Enables/disables the inference rule Unit Resulting Resolution.
364
Enables/disables the inference rule Ordered Factoring.
365
If set to 1, Ordered Factoring is enabled but only factoring
366
inferences with positive literals are generated. If set to 2,
367
negative literals are considered for inferences as well.
370
Enables/disables the inference rule Standard Factoring.
373
Enables/disables the inference rule Unit Resolution.
376
Enables/disables the inference rule Bounded Depth Unit Resolution.
379
Enables/disables the inference rule Apply Definitions.
380
Currently not supported.
383
Enables/disables the reduction rule Forward Rewriting.
384
If set to 1 unit rewriting and non-unit rewriting based on
385
a subsumption test is activated.
386
If set to 2 in addition to unit and non-unit rewriting
387
local contextual rewriting is activated.
388
If set to 3 in addition to unit and non-unit rewriting
389
subterm contextual rewriting is activiated. Subterm contextual
390
rewriting subsumes local contextual rewriting.
391
If set to 4 in addition of the rewriting rules of 3, subterm
392
contextual rewriting also tests for negative literal elimination.
395
Enables/disables the reduction rule Backward Rewriting.
396
Same values and meaning as for flag -RFRew but used in backward direction.
399
Enables/disables the reduction rule Forward Matching Replacement Resolution.
402
Enables/disables the reduction rule Backward Matching Replacement Resolution.
405
Enables/disables the reduction rule Obvious Reduction.
408
Enables/disables the reduction rule Unit Conflict.
411
Enables/disables the terminator by setting the maximal number
412
of non-unit clauses to be used during the search.
415
Enables/disables the reduction rule Tautology Deletion. If
416
set to 1, only syntactic tautologies are detected and
418
set to 2, additionally semantic tautologies are removed.
421
Enables/disables the reduction rule Static Soft Typing.
424
Enables/disables the reduction rule Sort Simplification.
427
Enables/disables the reduction rule Forward Subsumption Deletion.
430
Enables/disables the reduction rule Backward Subsumption Deletion.
433
Enables/disables the reduction rule Assignment Equation Deletion.
434
This rule removes particular occurrences of equations from clauses.
435
If set to 1, the reduction is guaranteed to be sound.
436
If set to 2, the reduction is only sound if any potential model
437
of the considered problem has a non-trivial domain.
440
Enables/disables the reduction rule Condensation.
442
@item -TDfg2OtterOptions
443
Enables/disables the inclusion of an Otter options
444
header. This option only applies to dfg2otter. If
445
set to 1 it includes a setting that makes Otter nearly
446
complete. If set to 2 it activates auto modus and if
447
set to 3 it activates the auto2 modus.
450
A special EML flag for modal logic or description logic formulae.
451
Never needs to be set explicitly. Is set during parsing.
453
Intended for EML Autonomous mode, as yet not functional.
455
@item -EMLTranslation
456
Determines the translation method used
457
for modal logic or description logic formulae.
458
If set to 0, the standard relational translation method (which
459
is determined by the usual Kripke semantics) is used.
460
If set to 1, the functional translation method is used.
461
If set to 2, the optimised functional translation method is used.
462
If set to 3, the semi-functional translation method is used.
463
A variation of the optimised functional translation method is used, when
464
the following settings are specified: -EMLTranslation=2 -EMLFuncNary=1.
465
The translation will be in terms of n-ary predicates instead of unary
466
predicates and paths.
467
In the current implementation the standard relational translation method
468
is most general. Some
469
restrictions apply to the other methods. The functional translation
470
method and semi-functional translation methods are available only for
471
the basic multi-modal logic K(m) possibly with serial (total) modalities
472
(-EMLTheory=1), plus nominals (ABox statements), terminological axioms
473
and general inclusion and equivalence axioms. The optimised functional
474
translation methods are implemented only for K(m), possibly with serial
478
If set, propositional/Boolean-type formulae are converted to relational formulae
479
before they are translated to first-order logic.
482
Determines which background theory is assumed.
483
If set to 0, the background theory is empty.
484
If set to 1, then seriality (the background theory for KD) is added for
486
If set to 2, then reflexivity (the background theory for KT) is added for
488
If set to 3, then symmetry (the background theory for KB) is added for
490
If set to 4, then transitivity (the background theory for K4) is added for
492
If set to 5, then Euclideanness (the background theory for K5) is added for
494
If set to 6, then transitivity and Euclideanness (the background theory
495
for S4) is added for all modalities.
496
If set to 7, then reflexivity, transitivity and Euclideanness (the
497
background theory for S5) is added for all modalities.
500
If set, diamond formulae are translated according to
501
tr(dia(phi),s) = nde(s) /\ exists x tr(phi,[s x])
502
(a nde / quantifier formula),
503
otherwise the translation is in accordance with
504
tr(dia(phi),s) = exists x nde(s) /\ tr(phi,[s x])
505
(a quantifier / nde formula).
506
The transltion for box formulae is defined dually.
507
Setting this flag is only meaningful when the flag for the functional or
508
semi functional translation method is set.
511
If set, the functional translation into fluted logic is used.
512
This means n-ary predicate symbols are used instead of unary predicate
514
Setting this flag is only meaningful for testing local
515
satisfiability/validity in multi-modal K.
518
If set, sorts for terms are used.
521
If set, try to eliminate relational composition in modal parameters.
524
If set, the EML to first-order logic translation is documented.
527
If set, SPASS expects an input file in TPTP syntax.
530
If set, SPASS deletes the input file before termination.
538
You can also specify options for SPASS in the input problem.
539
In the DFG syntax, you would use
541
list_of_settings(SPASS).
543
set_flag(DocProof,1).
547
to set the DocProof flag.
549
There are three types of options you can set in the input:
552
@item set_flag(<flag>,<value>).
553
Sets a flag to a value. Valid flags and values are described
554
in the OPTIONS section.
555
@item set_precedence(<comma-separated list of function and/or predicate symbols>).
556
Sets the precedence for the listed symbols. The precedence is
557
decreasing from left to right, i.e. the leftmost symbol has
558
the highest precedence.
560
Every entry in the list has the form
562
SYMBOL | (SYMBOL, WEIGHT [, @{l, r, m@}])
564
You can use the second form to assign weights to symbols (for KBO) or a
565
status (for RPOS). Status is either @t{l} for left-to-right, @t{m} for
566
multiset, or @t{r} for right-to-left. Weight is given as an integer.
568
@item set_DomPred(<comma-separated list of predicate symbols>).
569
Listed predicate (@emph{DomPred} for dominant predicate) symbols are
570
first ordered according to their precedence, not according to
571
their argument lists. Only in case of equal predicates, the
572
arguments are examined. For example, if we add the option
578
-> R(f(x,y),a), P(x,a).
580
the atom @i{P(x,a)} is strictly maximal.
581
Predicates listed by the @i{set_DomPred} option are
582
compared according to the precedence.
584
@item set_selection(<comma-separated list of predicate symbols>).
585
Sets the selection list that can be employed by the Select flag (see above).
587
@item set_ClauseFormulaRelation(<comma separated list auf tuples (<clause number>, sequence of axiom name strings)).
588
This list is in particular set by FLOTTER and enables SPASS for an eventually found proof to show
589
the relation between the clauses used in the proof and the input formulas.
590
If combined with option DocProof, then there needs to be an entry for every clause number.
591
Otherwise an error is reported.
593
set_ClauseFormulaRelation((1,ax2),(2,ax1),(3,ax3,ax1)).
601
@c man begin EXAMPLES
602
To run SPASS on a single file without options:
607
To disable all SPASS output except for the final result:
609
SPASS -PGiven=0 -PProblem=0 @i{filename}
616
Contact : spass@@mpi-inf.mpg.de
623
checkstat(1), filestat(1), pcs(1), pgen(1), rescmp(1), tpform(1), tpget(1), deprose(1), dfg2otter(1), dfg2otterpl(1), dfg2dfg(1)