Prover9 Manual Version June-2006

Automatic Modes

Prover9's automatic mode is set by default. Otter's automatic mode must be explicitly set.

If you simply give Prover9 a set of clauses and/or formulas, Prover9 will look at the clauses and decide which inference rules to use. In addition, it will use two default limits (max_weight and sos_limit) that, although good in practice, can prevent proofs from being found.

If don't like the inference rules that Prover9 selects, you can clear the flag auto_inference and select your own rules. If you wish to remove the limits max_weight and sos_limit, you can clear the flag auto_limits. If you wish to do both, you can clear the flag auto. Prover9 output files show the effects of changing these flags.

set(auto).    % default set
clear(auto).
This is the basic automatic mode of Prover9.
set(auto_inference).    % default set
clear(auto_inference).
If this flag is set, the input clauses are checked for several syntactic properties such as the presence of equality and non-Horn clauses. Based on the results of the checks, Prover9 decides which inference rules to use. In addition, changing this flag causes the following changes.
  set(auto_inference) -> set(predicate_elim).
  set(auto_inference) -> assign(eq_defs, unfold).
  clear(auto_inference) -> clear(predicate_elim).
  clear(auto_inference) -> assign(eq_defs, pass).
set(auto_limits).    % default set
clear(auto_limits).
The only effect of changing this flag is that two parameters are changed in the following ways.
  set(auto_limits) -> assign(max_weight, 100).
  set(auto_limits) -> assign(sos_limit, 10000).
  clear(auto_limits) -> assign(max_weight, INT_MAX).
  clear(auto_limits) -> assign(sos_limit, -1).

An Experimental Automatic Mode

set(auto2).
clear(auto2).    % default clear
This is an enhanced automatic mode, developed in preparation for CASC-2005. The only direct effect of changing this option is that it causes several other options to be changed. See an output file to see the effects of setting this flag.

Automatically Adjusting the sos List

assign(lrs_ticks, n).  % default n=-1, range [-1 .. INT_MAX]
assign(lrs_interval, n).  % default n=50, range [1 .. INT_MAX]
assign(min_sos_limit, n).  % default n=0, range [0 .. INT_MAX]
These three parameters work together and are used to automatically adjust the parameter sos_limit by means of a "limited resource strategy" [RV-lrs]. If lrs_ticks ≥ 0, the method is applied.

This is an experimental feature and is not recommended for general use.