module type Statement = sig
.. end
type
t
The type of statements.
type
id
The type of identifiers
type
term
The type of terms used in statements.
type
location
The type of locations attached to statements.
val annot : ?loc:location ->
term ->
term list -> term
Terms as annotations for statements.
val include_ : ?loc:location ->
string -> id list -> t
Include directive. Given the filename, and a list of
names to import (an empty list means import everything).
val tpi : ?loc:location ->
?annot:term ->
id ->
string -> term -> t
val thf : ?loc:location ->
?annot:term ->
id ->
string -> term -> t
val tff : ?loc:location ->
?annot:term ->
id ->
string -> term -> t
val fof : ?loc:location ->
?annot:term ->
id ->
string -> term -> t
val cnf : ?loc:location ->
?annot:term ->
id ->
string -> term -> t
TPTP statements, used for instance as
tff ~loc ~annot name role t
.
Instructs the prover to register a new directive with the given name,
role and term. Current tptp roles are:
"axiom", "hypothesis", "definition", "lemma", "theorem"
acts
as new assertions/declartions
"assumption", "conjecture"
are proposition that need to be proved,
and then can be used to prove other propositions. They are equivalent
to the following sequence of smtlib statements:
push 1
assert (not t)
check_sat
pop 1
assert t
"negated_conjecture"
is the same as "conjecture"
, but the given proposition
is false (i.e its negation is the proposition to prove).
"type"
declares a new symbol and its type
"plain", "unknown", "fi_domain", "fi_functors", "fi_predicates"
are valid
roles with no specified semantics
- any other role is an error