lemma strengthen_pre: "[∀s. P' s ⟶ P s; ⊨ {P} c {Q} ]==>⊨ {P'} c {Q}" by (blast intro: conseq)
lemma weaken_post: "[⊨ {P} c {Q}; ∀s. Q s ⟶ Q' s ]==>⊨ {P} c {Q'}" by (blast intro: conseq)
text‹The assignment and While rule are awkward to use in actual proofs because their pre and postcondition are of a very special form and the actual goal would have to match this form exactly. Therefore we derive two variants with arbitrary pre and postconditions.›
lemma Assign': "∀s. P s ⟶ Q(s[a/x]) ==>⊨ {P} x ::= a {Q}" by (simp add: strengthen_pre[OF _ Assign])
lemma While': assumes"⊨ {λs. P s ∧ bval b s} c {P}"and"∀s. P s ∧¬ bval b s ⟶ Q s" shows"⊨ {P} WHILE b DO c {Q}" by(rule weaken_post[OF While[OF assms(1)] assms(2)])
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-04-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.