Frontend.Make
module SAT : Sat_solver_sig.S
type sat_env = SAT.t
The SAT working environment.
type env = private {
used_context : used_context;
consistent_dep_stack : (res * Explanation.t) Stdlib.Stack.t;
sat_env : sat_env;
mutable res : res;
mutable expl : Explanation.t;
}
val init_env : ?sat_env:sat_env -> used_context -> env
Process are wrappers of calls to the SAT solver. They catch the Sat
, Unsat
and I_dont_know
exceptions to update the frontend environment, but not the Timeout
exception which is raised to the user.
val push : int process
val pop : int process
val query : (string * Expr.t * Ty.goal_sort) process
val th_assume : Expr.th_elt process
val optimize : Objective.Function.t process
val process_decl :
?hook_on_status:(sat_env status -> int -> unit) ->
env ->
Commands.sat_tdecl ->
unit
val print_model : sat_env Fmt.t