Parameter Make.1-A

type term = S.T.Term.t
val view_as_bool : term -> (termterm Iter.t) bool_view

Project the term into the boolean view.

Make a term from the given boolean view.

val check_congruence_classes : bool

Configuration: add final-check handler to verify if new boolean formulas are present in the congruence closure. Only enable if some theories are susceptible to create boolean formulas during the proof search.

include PROOF with type proof := S.P.t and type proof_step := S.P.proof_step and type lit := S.Lit.t and type term := S.T.Term.t
val lemma_bool_tauto : S.Lit.t Iter.t -> S.P.t -> S.P.proof_step

Boolean tautology lemma (clause)

val lemma_bool_c : string -> S.T.Term.t list -> S.P.t -> S.P.proof_step

Basic boolean logic lemma for a clause |- c. proof_bool_c b name cs is the rule designated by name.

val lemma_bool_equiv : S.T.Term.t -> S.T.Term.t -> S.P.t -> S.P.proof_step

Boolean tautology lemma (equivalence)

val lemma_ite_true : ite:S.T.Term.t -> S.P.t -> S.P.proof_step

lemma a ==> ite a b c = b

val lemma_ite_false : ite:S.T.Term.t -> S.P.t -> S.P.proof_step

lemma ¬a ==> ite a b c = c

module Gensym : sig ... end

Fresh symbol generator.