Ccx.Main
type r = Shostak.Combine.r
val empty : unit -> t
val empty_facts : unit -> r Sig_rel.facts
val add_fact : r Sig_rel.facts -> r Sig_rel.fact -> unit
val add_term :
t ->
r Sig_rel.facts ->
Expr.t ->
Explanation.t ->
t * r Sig_rel.facts
val add :
t ->
r Sig_rel.facts ->
Expr.t ->
Explanation.t ->
t * r Sig_rel.facts
val assume_literals :
t ->
(r Sig_rel.literal * Explanation.t * Th_util.lit_origin) list ->
r Sig_rel.facts ->
t * (r Sig_rel.literal * Explanation.t * Th_util.lit_origin) list
val case_split :
t ->
for_model:bool ->
(r Xliteral.view * bool * Th_util.lit_origin) list * t
val query : t -> Expr.t -> Th_util.answer
val new_terms : t -> AltErgoLib.Expr.Set.t
val are_equal : t -> Expr.t -> Expr.t -> init_terms:bool -> Th_util.answer
val are_distinct : t -> Expr.t -> Expr.t -> Th_util.answer
val cl_extract : t -> AltErgoLib.Expr.Set.t list
val assume_th_elt : t -> Expr.th_elt -> Explanation.t -> t
val theories_instances :
do_syntactic_matching:bool ->
(Matching_types.info AltErgoLib.Expr.Map.t
* Expr.t list AltErgoLib.Expr.Map.t Symbols.Map.t) ->
t ->
(Expr.t -> Expr.t -> bool) ->
t * Sig_rel.instances
val output_concrete_model :
Stdlib.Format.formatter ->
prop_model:AltErgoLib.Expr.Set.t ->
t ->
unit