Load loadpath.
veristar.list_denote veristar.heapresolve
veristar.model_type veristar.model veristar.compare.
(* clause lemmas -Interpretation of clauses under reordering, etc. *)
Module Type CL_SOUND.
Declare Module VSM : VERISTAR_MODEL. Import VSM VeriStarLogic.

(* Specifications: *)
Axiom order_eqv_sound : forall a,
pure_atom_denote a = pure_atom_denote (order_eqv_pure_atom a).
Axiom order_eqv_clause_sound : forall c s,
clause_denote (order_eqv_clause c) s <-> clause_denote c s.
Axiom clause_setd_listd : forall l b s,
listd clause_denote inter b l s ->
setd clause_denote inter b (clause_list2set l) s.
Axiom rev_cmp_eq : forall {A:Type} (f : A -> A -> comparison) (a1 a2 : A),
Eq = rev_cmp f a1 a2 -> rev_cmp f a1 a2 = f a1 a2.
Axiom in_sort_uniq : forall c l,
In c (rsort_uniq (rev_cmp compare_clause) l) -> In c l.