Prover9 Semantic Guidance

Using finite interpretations to help select the given clause.

How it Works


Examples

Here are some examples of semantic guidance on difficult problems.

These Prover9 jobs use set(lex_order_vars), which is risky, because it can block all proofs. See the Prover9 manual for the description of lex_order_vars.


Lattice Theory Huntington Identities

Get guiding interpretation.
mace4 -N12 -f LT-interp.in | get_interps | isofilter ignore_constants wrap > LT-interp.out
Job with guidance (1 seconds).
prover9 -f LT.in LT-interp.out > LT.out ; ### ( LT.out.xml )
Job without guidance (23 seconds).
prover9 -t 7200 -f LT.in > LT-base.out ; ### ( LT-base.out.xml )

Boolean Algebra 2-Basis

Get guiding interpretation.
mace4 -n6 -m -1 -f BA2-interp.in | get_interps | isofilter ignore_constants wrap > BA2-interp.out
Job with guidance (20 seconds).
prover9 -f BA2.in BA2-interp.out > BA2.out ; ### ( BA2.out.xml )
Job without guidance (46 seconds).
prover9 -f BA2.in > BA2-base.out ; ### ( BA2-base.out.xml )

Modular Ortholattice Single Axiom

The Prover9 jobs in this section use the flag set(lex_order_vars) (see the manual), which reduces redundancy, but it can easily block proofs. It works very well for these examples, both with and without semantic guidance.

Associativity Property

Get guiding interpretation.
mace4 -n8 -m -1 -f MOL-A-interp.in | get_interps | isofilter ignore_constants wrap > MOL-A-interp.out
Job with guidance (46 seconds).
prover9 -f MOL-A.in MOL-A-interp.out > MOL-A.out ; ### ( MOL-A.out.xml )

Modularity Property

Get guiding interpretation.
mace4 -n10 -m -1 -f MOL-M-interp.in | get_interps | isofilter ignore_constants wrap > MOL-M-interp.out
Job with guidance (649 seconds).
prover9 -f MOL-M.in MOL-M-interp.out > MOL-M.out ; ### ( MOL-M.out.xml )

Associativity and Modularity Properties Together, without Guidance

(Associativity 169 seconds, Modularity 2891 seconds.)
prover9 -f MOL-base.in > MOL-base.out ; ### ( MOL-base.out.xml )