Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file Msat.ml
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576(** Main API *)moduleSolver_intf=Solver_intfmoduletypeS=Solver_intf.SmoduletypeFORMULA=Solver_intf.FORMULAmoduletypeEXPR=Solver_intf.EXPRmoduletypePLUGIN_CDCL_T=Solver_intf.PLUGIN_CDCL_TmoduletypePLUGIN_MCSAT=Solver_intf.PLUGIN_MCSATmoduletypePROOF=Solver_intf.PROOF(** Empty type *)typevoid=(unit,bool)Solver_intf.gadt_eqtypelbool=Solver_intf.lbool=L_true|L_false|L_undefinedtype('term,'form,'value)sat_state=('term,'form,'value)Solver_intf.sat_state={eval:'form->bool;eval_level:'form->bool*int;iter_trail:('form->unit)->('term->unit)->unit;model:unit->('term*'value)list;}type('atom,'clause,'proof)unsat_state=('atom,'clause,'proof)Solver_intf.unsat_state={unsat_conflict:unit->'clause;get_proof:unit->'proof;unsat_assumptions:unit->'atomlist;}type'clauseexport='clauseSolver_intf.export={hyps:'clauseVec.t;history:'clauseVec.t;}type('term,'formula,'value)assumption=('term,'formula,'value)Solver_intf.assumption=|Litof'formula(** The given formula is asserted true by the solver *)|Assignof'term*'value(** The term is assigned to the value *)type('term,'formula,'proof)reason=('term,'formula,'proof)Solver_intf.reason=|Evalof'termlist|Consequenceof(unit->'formulalist*'proof)type('term,'formula,'value,'proof)acts=('term,'formula,'value,'proof)Solver_intf.acts={acts_iter_assumptions:(('term,'formula,'value)assumption->unit)->unit;acts_eval_lit:'formula->lbool;acts_mk_lit:?default_pol:bool->'formula->unit;acts_mk_term:'term->unit;acts_add_clause:?keep:bool->'formulalist->'proof->unit;acts_raise_conflict:'b.'formulalist->'proof->'b;acts_propagate:'formula->('term,'formula,'proof)reason->unit;acts_add_decision_lit:'formula->bool->unit;}typenegated=Solver_intf.negated=Negated|Same_sign(** Print {!negated} values *)letpp_negatedout=function|Negated->Format.fprintfout"negated"|Same_sign->Format.fprintfout"same-sign"(** Print {!lbool} values *)letpp_lboolout=function|L_true->Format.fprintfout"true"|L_false->Format.fprintfout"false"|L_undefined->Format.fprintfout"undefined"exceptionNo_proof=Solver_intf.No_proofmoduleMake_mcsat=Solver.Make_mcsatmoduleMake_cdcl_t=Solver.Make_cdcl_tmoduleMake_pure_sat=Solver.Make_pure_sat(**/**)moduleVec=VecmoduleLog=Log(**/**)