Local Open Scope logic_base.
Local Open Scope syntax.
Local Open Scope kripke_model.
Section partial_soundness.
Existing Instance unit_kMD.
Context {P: ProgrammingLanguage}
{iP: ImperativeProgrammingLanguage P}
{MD: Model}
{R: Relation model}
{po_R: PreOrder Krelation}
{BSS: BigStepSemantics P model}
{iBSS: ImpBigStepSemantics 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} {kminSM: KripkeMinimunSemantics L MD tt SM} {kpSM: KripkePropositionalSemantics L MD tt SM}.

Lemma hoare_while_partial_sound: forall b c B P,
(forall s, s |= B <-> eval_bool s b) ->
triple_partial_valid (P && B) c P ->
triple_partial_valid P (Swhile b c) (P && ~~ B).