package dolmen

  1. Overview
  2. Docs

Implementation requirement for the TPTP format.

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
OCaml

Innovation. Community. Security.