The output from current ATP systems varies widely in quantity, quality,
and meaning.
At the low end of the scale, systems that search for a refutation of a
set of clauses may output only an assurance that a refutation exists
(the wonderful "yes" output).
At the high end of the scale a system may output a natural deduction
proof of a problem expressed in FOF.
In some cases the output is misleading, e.g., when a CNF based system
claims that a FOF input problem is "unsatisfiable" it typically means that
the negated CNF of the problem is unsatisfiable.
In order to use ATP systems' results, e.g., as input to other tools, it
is necessary that the ATP systems correctly and precisely specify what
has been established.
To this end a hierarchy of result status values has been established.
The hierarchy was based on initial work done to establish
communication protocols for systems on the MathWeb Software Bus.
The hierarchy is shown below:
Result
|
--------------------------+--------------------------
/ | | | \
Satisfiability | Vacuous | Counter satisfiability
preserving | theorem | preserving
| | | |
Satisfiability Satisfiable Counter Counter satisfiability
partial mapping | \ satisfiable partial mapping
| | \ & / | |
Satisfiability Theorem Neither Counter Counter satisfiability
mapping | theorem mapping
| | | |
Satisfiability Tautologies Unsatisfiable Counter satisfiability
bijection bijection
Error
|
--------------------------+--------------------------
/ | | \
Input error Gave up Resource out Unknown
/ \
Timeout Other
Let F be a formula in classical first order logic, of the form
Ax => C.
- If Ax is empty, i.e., F is a monolithic formula
(e.g., a set of clauses), that's the same as Ax being
TRUE.
- If C is empty, e.g., testing the satisfiability of a set
of axioms, that's the same as C being TRUE.
By showing that F is valid, an ATP system shows that C is a
theorem (a logical consequence) of Ax, i.e., Ax |= C
where |= is the standard first order entailment.
If F is not valid, there are several other possible relationships
between Ax and C, as shown in the hierarchy and
enumerated below
Associated with each possible status are the possible outputs from the
ATP system.
The status values and possible outputs are ordered as follows:
- Every interpretation is a model of Ax and a model of C
- F is valid,
~F is unsatisfiable,
C is a tautology
- Existing status
- Ax TRUE status "tautology"
- C TRUE status "tautology"
- MathWeb status "valid"
- TSTP status "Tautologies"
- Expected output
- Assurance
- Proof of F
- Refutation of ~F
- Every model of Ax (and there are some) is a model of C,
but not case "Tautologies"
- F is valid,
C is a theorem of Ax
- Existing status
- Ax TRUE status not possible (that's "Tautologies")
- C TRUE status "satisfiable"
- MathWeb status "valid"
- TSTP status "Theorem"
- Expected output
- Assurance
- Proof of C from Ax
- Refutation of Ax U {~C}
- Refutation of CNF(Ax U {~C})
- Some models of Ax (and there are some) are models of C
- F is satisfiable,
~F is not valid,
C is not a theorem of Ax
- Existing status
- Ax TRUE status "satisfiable"
- C TRUE status "satisfiable"
- MathWeb status "satisfiable"
- TSTP status "Satisfiable"
- Expected output
- Assurance
- Model
- Saturation
- There is a bijection between the models of Ax
(and there are some)
and models of C
- F is ???
- Example: Skolemization, splitting by new predicates
- Existing status
- Ax TRUE status "satisfiable"
- C TRUE status "satisfiable"
- TSTP status "Satisfiability bijection"
- Expected output
- There is a mapping from the models of Ax (and there are some)
to models of C
- F is ???
- Example:
- Existing status
- Ax TRUE status "satisfiable"
- C TRUE status "satisfiable"
- TSTP status "Satisfiability mapping"
- Expected output
- There is a partial mapping from the models of Ax
(and there are some)
to models of C
- F is ???
- Example: Ax = {p \/ q}, C = p /\ r
- Existing status
- Ax TRUE status "satisfiable"
- C TRUE status
not possible (must be "Satisfiability mapping")
- TSTP status "Satisfiability partial mapping"
- Expected output
- Assurance
- Pairs of models
- Pairs of saturations
- If there exists a model of Ax then there exists a model of
C
- F is ???
- Existing status
- Ax TRUE status "satisfiable"
- C TRUE status "satisfiable" if there
exists a model of Ax, "unsatisfiable" otherwise
- TSTP status "Satisfiability preserving"
- Expected output
- There are no models of Ax
- F is valid,
Anything is a theorem of Ax
- Existing status
- Ax TRUE status not possible
(Ax is TRUE)
- C TRUE status "trivial"
- MathWeb status "valid"
- TSTP status "Vacuous theorem"
- Expected output
- Assurance
- Refutation of Ax
- Refutation of CNF(Ax U {~C})
- Some models of Ax (and there are some) are models of C,
and some are models of ~C.
- F is not valid,
F is satisfiable,
~F is not valid,
~F is satisfiable,
C is not a theorem of Ax
- Existing status
- Ax TRUE status "satisfiable" and
"counter satisfiable"
- C TRUE status not possible
(~C is FALSE)
- TSTP status "Neither"
- Expected output
- Assurance
- Pair of models
- Pair of saturations
- If there exists a model of Ax then there exists a model of
~C
- F is ???
- Existing status
- Ax TRUE status "counter satisfiable"
- C TRUE status not possible
- TSTP status "Counter satisfiability preserving"
- Expected output
- There is a partial mapping from the models of Ax
(and there are some)
to models of ~C
- F is ???
- Existing status
- Ax TRUE status "counter satisfiable"
- C TRUE status not possible
- TSTP status "Counter satisfiability partial mapping"
- Expected output
- Assurance
- Pairs of models
- There is a mapping from the models of Ax (and there are some)
to models of ~C
- F is ???
- Existing status
- Ax TRUE status "counter satisfiable"
- C TRUE status not possible
- TSTP status "Counter satisfiability mapping"
- Expected output
- There is a bijection between the models of Ax
(and there are some)
and models of ~C
- F is ???
- Existing status
- Ax TRUE status "counter satisfiable"
- C TRUE status not possible
- TSTP status "Counter satisfiability bijection"
- Expected output
- Some models of Ax (and there are some) are models of ~C
- F is not valid,
~F is satisfiable,
C is not a theorem of Ax
- Existing status
- Ax TRUE status "counter satisfiable"
- C TRUE status not possible
(~C is FALSE)
- MathWeb status "counter satisfiable"
- TSTP status "Counter satisfiable" (previously "Dissatisfiable")
- Expected output
- Assurance
- Model
- Saturation
- Every model of Ax (and there are some) is a model of ~C,
but not "Unsatisfiable"
- F is not valid,
~C is a theorem of Ax
C cannot be made into a theorem by extending Ax,
- Existing status
- Ax TRUE status "counter theorem"
- C TRUE status not possible
(~C is FALSE)
- MathWeb status not given
- TSTP status "Counter theorem"
- Expected output
- Assurance
- Proof of ~C from Ax
- Refutation of Ax U {C}
- Refutation of CNF(Ax U {C})
- Every interpretation is a model of Ax and a model of ~C
- F is unsatisfiable,
~F is valid,
~C is a tautology
- Existing status
- Ax TRUE status "counter theorem"
- C TRUE status not possible
(~C is FALSE)
- MathWeb status "unsatisfiable"
- TSTP status "Unsatisfiable"
- Expected output
- Assurance
- Refutation of F
- Proof of ~F