Satml.Maketype th = Th.tval solve : t -> unitval compute_concrete_model :
declared_ids:Id.typed list ->
t ->
Models.t Stdlib.Lazy.t * Objective.Model.tval new_vars :
t ->
nbv:int ->
Satml_types.Atom.var list ->
(Satml_types.Atom.atom list * Satml_types.Atom.premise) list ->
(Satml_types.Atom.atom list * Satml_types.Atom.premise) list ->
(Satml_types.Atom.atom list * Satml_types.Atom.premise) list
* (Satml_types.Atom.atom list * Satml_types.Atom.premise) listval assume :
t ->
(Satml_types.Atom.atom list * Expr.Labeled.Set.t) list ->
(Satml_types.Atom.atom list * Expr.Labeled.Set.t) list ->
Satml_types.Flat_Formula.Set.t ->
dec_lvl:int ->
unitval boolean_model : t -> Satml_types.Atom.atom listval instantiation_context : t -> Satml_types.Atom.Set.tval create : Satml_types.Flat_Formula.hcons_env -> tval assume_th_elt : t -> Expr.th_elt -> Explanation.t -> unitval decision_level : t -> intval assertion_level : t -> intReturns the number of active assertion levels, that is the number of levels introduced with push that have not yet been popped.
val cancel_until : t -> int -> unitval exists_in_lazy_cnf : t -> Satml_types.Flat_Formula.t -> boolval known_lazy_formulas : t -> int Satml_types.Flat_Formula.Map.tval reason_of_deduction : Satml_types.Atom.atom -> Satml_types.Atom.Set.tval do_case_split : t -> Util.case_split_policy -> Satml_intf.conflict_originval conflict_analyze_and_fix : t -> Satml_intf.conflict_origin -> unitpush env adds a new assertion level and returns a guard g that must be used to guard all formulas asserted at this level.
val pop : t -> unitpop env pops the latest assertion level.
val optimize : t -> Objective.Function.t -> unitoptimize env fn adds the objection fn to the environment env.