expose true_at_level0 in Solver_intf

This commit is contained in:
Simon Cruanes 2016-07-29 17:07:54 +02:00
parent 9d6634d621
commit 672b5945ce
2 changed files with 10 additions and 0 deletions

View file

@ -85,6 +85,12 @@ module Make
let unsat_core = S.Proof.unsat_core
let true_at_level0 a =
try
let b, lev = S.eval_level a in
b && lev = 0
with S.UndecidedLit -> false
let get_tag cl = St.(cl.tag)
end

View file

@ -62,6 +62,10 @@ module type S = sig
val unsat_core : Proof.proof -> St.clause list
(** Returns the unsat core of a given proof. *)
val true_at_level0 : atom -> bool
(** [true_at_level0 a] returns [true] if [a] was proved at level0, i.e.
it must hold in all models *)
val get_tag : St.clause -> int option
(** Recover tag from a clause, if any *)