Sidekick_base.Form
Formulas (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 = Sidekick_core.Term.t
type 'a view = 'a Sidekick_core.Bool_view.t =
val bool : Sidekick_core.Term.store -> bool -> term
val not_ : Sidekick_core.Term.store -> term -> term
val and_ : Sidekick_core.Term.store -> term -> term -> term
val or_ : Sidekick_core.Term.store -> term -> term -> term
val eq : Sidekick_core.Term.store -> term -> term -> term
val neq : Sidekick_core.Term.store -> term -> term -> term
val imply : Sidekick_core.Term.store -> term -> term -> term
val equiv : Sidekick_core.Term.store -> term -> term -> term
val xor : Sidekick_core.Term.store -> term -> term -> term
val ite : Sidekick_core.Term.store -> term -> term -> term -> term
val distinct_l : Sidekick_core.Term.store -> term list -> term
val const_decoders : Sidekick_core.Const.decoders
val and_l : Sidekick_core.Term.store -> term list -> term
val or_l : Sidekick_core.Term.store -> term list -> term
val imply_l : Sidekick_core.Term.store -> term list -> term -> term
val mk_of_view : Sidekick_core.Term.store -> term view -> term