Module Msat_tseitin.Make
This functor provides an implementation of Tseitin's CNF conversion.
Parameters
Signature
type atom= F.tThe type of atomic formulas.
type tThe type of arbitrary boolean formulas. Arbitrary boolean formulas can be built using functions in this module, and then converted to a CNF, which is a list of clauses that only use atomic formulas.
val f_true : tThe
trueformula, i.e a formula that is always satisfied.
val f_false : tThe
falseformula, i.e a formula that cannot be satisfied.
val make_and : t list -> tCreates the conjunction of a list of formulas. An empty conjunction is always satisfied.
val make_or : t list -> tCreates the disjunction of a list of formulas. An empty disjunction is never satisfied.
val make_cnf : t -> atom list listmake_cnf freturns a conjunctive normal form offunder the form: a list (which is a conjunction) of lists (which are disjunctions) of atomic formulas.
val pp : Format.formatter -> t -> unitprint fmt fprints the formula on the formatterfmt.