module type S = Tseitin_intf.S
This modules allows to convert arbitrary boolean formulas
into CNF.
type atom
type t
val f_true : ttrue formula, i.e a formula that is always satisfied.val f_false : tfalse formula, i.e a formula that cannot be satisfied.val make_atom : atom -> tmake_atom p builds the boolean formula equivalent to the atomic formula p.val make_not : t -> tval make_and : t list -> tval make_or : t list -> tval make_xor : t -> t -> tmake_xor p q creates the boolean formula "p xor q".val make_imply : t -> t -> tmake_imply p q creates the boolean formula "p implies q".val make_equiv : t -> t -> tmake_equiv p q creates the boolena formula "p is equivalent to q".val make_cnf : t -> atom list listmake_cnf f returns a conjunctive normal form of f under the form: a
list (which is a conjunction) of lists (which are disjunctions) of
atomic formulas.val print : Format.formatter -> t -> unitprint fmt f prints the formula on the formatter fmt.