% Satallax 3.0
% Chad Brown
% July 2016

See INSTALL for installation instructions.

Satallax can be called as follows:

    SATALLAXBINARY -t %d %s

where:

* SATALLAXBINARY is the satallax executable (satallax.native [native code, preferable] or satallax.byte [bytecode], possibly with a full path),
* %d is the timeout in seconds,
* %s is the problem file (possibly with a full path).

The exit status of the satallax binary should be one of the following,
see the [SZS Ontology](http://www.cs.miami.edu/~tptp/cgi-bin/SeeTPTP?Category=Documents&File=SZSOntology):

* 1:  Error - missing arguments, problem or mode
* 2:  Error processing THF of problem (e.g., ill-typed axiom, multiple conjectures, etc.)
* 3:  Unclassified error.
* 5:  Timed out
* 10: CounterSatisfiable (Satisfiable with conjecture/theorem negated)
* 15: Satisfiable (Satisfiable where no conjecture/theorem was given)
* 20: Theorem (Unsatisfiable with conjecture/theorem negated)
* 25: Unsatisfiable (Unsatisfiable where no conjecture/theorem was given)
* 26: Theorem or Unsatisfiable, *but* a proof was requested and cannot be produced.

There are tests in the script file `test`.


Obtaining Coq proof scripts
---------------------------

Satallax can create Coq versions of the problems and (sometimes) solutions.
Satallax currently supports Coq 8.4.
The interface with Coq is via a shallow encoding of simple type theory
(see itp/coq/stt.v) and tactics corresponding to the higher order tableau calculus
(see itp/coq/stttab.v).

The option `-p` tells Satallax to give proof information if proof search is successful:

-p hocore
:   Give the higher-order core. That is, list the used axioms --
    and the conjecture if its negation was used.

-p coqscript
:   Generate a Coq proof script (using the tactics in itp/coq/stttab.v).

-p coqsrefterm
:   Generate a (refutation style) Coq proof term (using -nois and the files in
    itp/coq2/stt?.v and itp/coq2/set*.v).

-p coqspfterm
:   This is currently the same as coqsrefterm, but in the future may generate
    proof terms that try to avoid the refutation style (i.e., proof by contradiction).

-p model
:   If the problem is satisfiable, indicate which formulas it considered are true, false or undetermined.

-p modeltrue
:   If the problem is satisfiable, indicate which formulas it considered are true.

Further options are:

-c *file.v*
:   Create a Coq version of the problem and write it to *file.v*.

-C
:   The problem is given as a Coq file instead of as a THF file.

-G
:   A Coq file containing multiple conjectures is given.
    Try to prove each conjecture independently.
