type var = {vid : int;pa : atom;na : atom;mutable weight : float;mutable seen : bool;mutable level : int;mutable index : int;mutable hindex : int;mutable reason : reason;mutable vpremise : premise;
}and clause = {name : string;mutable atoms : atom Vec.t;mutable activity : float;mutable removed : bool;learnt : bool;cpremise : premise;form : Expr.t;
}val pr_atom : Stdlib.Format.formatter -> atom -> unitval pr_clause : Stdlib.Format.formatter -> clause -> unitval weight : atom -> floatval is_true : atom -> boolval to_float : int -> floatval to_int : float -> intval fresh_name : unit -> stringval fresh_lname : unit -> stringval fresh_dname : unit -> stringval equal_var : var -> var -> boolval compare_var : var -> var -> intval hash_var : var -> intval hash_atom : atom -> intval tag_atom : atom -> intmodule Set : Stdlib.Set.S with type elt = atommodule Map : Stdlib.Map.S with type key = atom