Local Open Scope logic_base.
Local Open Scope syntax.
Local Open Scope kripke_model.
Section soundness.
Existing Instance unit_kMD.
Context {P: ProgrammingLanguage}
{MD: Model}
{BSS: BigStepSemantics P model}
{J: Join model}
{R: Relation model}
{po_R: PreOrder Krelation}
{SA_BSS: SABigStepSemantics P model BSS}.
Context {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {SL: SeparationLanguage L} {SM: Semantics L MD} {kiSM: KripkeIntuitionisticSemantics L MD tt SM} {fsSM: FlatSemantics.SeparatingSemantics L MD tt SM}.

Lemma hoare_frame_total_sound: forall c P Q F,
triple_total_valid P c Q ->
triple_total_valid (P * F) c (Q * F).