module Formula:sig..end
type comparator =
| |
Eq |
(* | equality ( | *) |
| |
Neq |
(* | disequality ( | *) |
| |
Le |
(* | inequality ( | *) |
| |
Lt |
(* | strict inequality ( | *) |
The type of comparators:
type combinator =
| |
And |
(* | conjunction | *) |
| |
Or |
(* | disjunction | *) |
| |
Imp |
(* | implication | *) |
| |
Not |
(* | negation | *) |
The type of operators
type literal
The type of literals
type t
The type of ground formulas
val f_true : tThe formula which represents true
val f_false : tThe formula which represents false
val make_lit : comparator -> Smt_sig.S.Term.t list -> tmake_lit cmp [t1; t2] creates the literal (t1 <cmp> t2).
val make : combinator ->
t list -> tmake cmb [f_1; ...; f_n] creates the formula
(f_1 <cmb> ... <cmb> f_n).
val make_cnf : t -> literal 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
literals.
val print : Format.formatter -> t -> unitprint fmt f prints the formula on the formatter fmt.