Module Pulselib__Pudge

include Pulselib.Pudge_intf.S
type t
val pp : Pulselib.Pudge_intf.F.formatter -> t -> unit
val true_ : t
module Term : sig ... end
module Var : sig ... end
val and_eq : Term.t -> Term.t -> t -> t
val and_term : Term.t -> t -> t
val and_ : t -> t -> t
val is_unsat : t -> bool
val is_known_zero : Term.t -> t -> bool

is_known_zero phi t returns true if phi |- t = 0, false if we don't know for sure

val fold_map_variables : t -> init:'a -> f:('a -> Var.t -> 'a * Var.t) -> 'a * t
val simplify : keep:Pulselib.Pudge_intf.AbstractValue.Set.t -> t -> t

simplify ~keep phi attempts to get rid of as many variables in fv phi but not in keep as possible