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 : t
The formula which represents true
val f_false : t
The formula which represents false
val make_lit : comparator -> Smt_sig.S.Term.t list -> t
make_lit cmp [t1; t2]
creates the literal (t1 <cmp> t2)
.
val make : combinator ->
t list -> t
make cmb [f_1; ...; f_n]
creates the formula
(f_1 <cmb> ... <cmb> f_n)
.
val make_cnf : t -> literal list list
make_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 -> unit
print fmt f
prints the formula on the formatter fmt
.