Load loadpath.
(** Soundness proof of the SL theorem prover. Imports are organized into groups below, defining the main components of the system. *)
(** 1- Coq stdlibs *)
(** 2- msl axioms and basic SL predicates *)
(** 3- defns. of datatypes and clauses *)
(** 4- implementations of superposition and heap systems. *)
(*begin hide*)
(* To build the soundness proof for the model-based saturation system, replace the following line with  Require Import veristar.superpose_modelsat. *)
(*Require Import veristar.superpose.*)
(*end hide*)
(** 5- a model of generic SLs *)
(** 6- soundness proof of (4) wrt. model defined in (5) is split into the following major components:  -clausify_sound:   soundness of clausal embedding of entailments -superpose_sound:  soundness of the superposition system for proof search in the pure fragment -norm_sound:       soundness of normalization rules N1-N4 -wellformed_sound: soundness of wellformedness rules W1-W5 -unfold_sound:     soundness of unfolding rules U1-U5 and spatial resolution (rule SR) *)
veristar.wellformed_sound veristar.unfold_sound.
(*begin hide*)
(* To build the soundness proof for the model-based saturation system, replace the following line with  Require Import veristar.superpose_modelsat_sound. *)
(*end hide*)
(** 7- misc. lemmas  lemma library for reasoning about denotations folded over sequences; misc. lemmas about clauses *)
(** Signature of soundness proof *)
Module Type VERISTAR_SOUND.
Declare Module VSM : VERISTAR_MODEL.

Axiom check_entailment_sound: forall (e: entailment),
VeriStar.check_entailment e = VeriStar.Valid -> entailment_denote e.