Sidekick_base.FormFormulas (boolean terms).
This module defines function symbols, constants, and views to manipulate boolean formulas in Sidekick_base. This is useful to have the ability to use boolean connectives instead of being limited to clauses; by using Sidekick_th_bool_static, the formulas are turned into clauses automatically for you.
type term = Types_.Term.ttype 'a view = 'a Sidekick_core.Bool_view.t = | B_bool of bool |
| B_not of 'a |
| B_and of 'a list |
| B_or of 'a list |
| B_imply of 'a * 'a |
| B_equiv of 'a * 'a |
| B_xor of 'a * 'a |
| B_eq of 'a * 'a |
| B_neq of 'a * 'a |
| B_ite of 'a * 'a * 'a |
| B_atom of 'a |
val bool : Types_.Term.store -> bool -> termval not_ : Types_.Term.store -> term -> termval and_ : Types_.Term.store -> term -> term -> termval or_ : Types_.Term.store -> term -> term -> termval eq : Types_.Term.store -> term -> term -> termval neq : Types_.Term.store -> term -> term -> termval imply : Types_.Term.store -> term -> term -> termval equiv : Types_.Term.store -> term -> term -> termval xor : Types_.Term.store -> term -> term -> termval ite : Types_.Term.store -> term -> term -> term -> termval distinct_l : Types_.Term.store -> term list -> termval and_l : Types_.Term.store -> term list -> termval or_l : Types_.Term.store -> term list -> termval imply_l : Types_.Term.store -> term list -> term -> termval mk_of_view : Types_.Term.store -> term view -> term