Section soundness.
Definition sem_precise
{L: Language}
{MD: Model}
{J: Join model}
{R: Relation model}
{po_R: PreOrder Krelation}
{SM: Semantics L MD}
(x: expr): Prop :=
Kdenote_precise (fun m => KRIPKE: m |= x).
Context {P: ProgrammingLanguage}
{Res: Resource}
{CPP: ConcurrentProgrammingLanguage_Sparallel P}
{CPR: ConcurrentProgrammingLanguage_Sresource P Res}
{MD: Model} {TLBSS: ThreadLocalBigStepSemantics P model (list (resource * (model -> Prop)))} {J: Join model} {R: Relation model} {po_R: PreOrder Krelation} {R_BSS: Resource_BigStepSemantics P model TLBSS}.
Context {L: Language}
{minL: MinimumLanguage L}
{pL: PropositionalLanguage L}
{sepconL: SepconLanguage L}
{SM: Semantics L MD}
{kiSM: KripkeIntuitionisticSemantics L MD (tt: @Kmodel MD (unit_kMD _)) SM}
{fsepconSM: FlatSemantics.SepconSemantics L MD (tt: @Kmodel MD (unit_kMD _)) SM}.

Lemma hoare_resource_partial_sound: forall
(r: resource)
(I: expr)
(Inv Inv': list (resource * (model -> Prop)))
c P Q,
guarded_triple_partial_valid Inv (I * P) c (I * Q) ->
Inv_cons r (fun s: model => s |= I) Inv Inv' ->
sem_precise I ->
guarded_triple_partial_valid Inv' P (Sresource r c) Q.