fun strip :: "acom \ com"where "strip SKIP = SKIP" | "strip (x ::= a) = (x ::= a)" | "strip (C\<^sub>1;; C\<^sub>2) = (strip C\<^sub>1;; strip C\<^sub>2)" | "strip (IF b THEN C\<^sub>1 ELSE C\<^sub>2) = (IF b THEN strip C\<^sub>1 ELSE strip C\<^sub>2)" | "strip ({_} WHILE b DO C) = (WHILE b DO strip C)"
text‹Weakest precondition from annotated commands:›
funpre :: "acom \ assn \ assn"where "pre SKIP Q = Q" | "pre (x ::= a) Q = (\s. Q(s(x := aval a s)))" | "pre (C\<^sub>1;; C\<^sub>2) Q = pre C\<^sub>1 (pre C\<^sub>2 Q)" | "pre (IF b THEN C\<^sub>1 ELSE C\<^sub>2) Q =
(λs. if bval b s thenpre C🚫1 Q s else pre C🚫2 Q s)" | "pre ({I} WHILE b DO C) Q = (\s. \n. I n s)"
text‹Verification condition:›
fun vc :: "acom \ assn \ bool"where "vc SKIP Q = True" | "vc (x ::= a) Q = True" | "vc (C\<^sub>1;; C\<^sub>2) Q = (vc C\<^sub>1 (pre C\<^sub>2 Q) \ vc C\<^sub>2 Q)" | "vc (IF b THEN C\<^sub>1 ELSE C\<^sub>2) Q = (vc C\<^sub>1 Q \ vc C\<^sub>2 Q)" | "vc ({I} WHILE b DO C) Q =
(∀s n. (I (Suc n) s ⟶pre C (I n) s) ∧
(I (Suc n) s ⟶ bval b s) ∧
(I 0 s ⟶¬ bval b s ∧ Q s) ∧
vc C (I n))"
lemma vc_sound: "vc C Q \ \\<^sub>t {pre C Q} strip C {Q}" proof(induction C arbitrary: Q) case (Awhile I b C) show ?case proof(simp, rule conseq[OF _ While[of I]], goal_cases) case (2 n) show ?case using Awhile.IH[of "I n"] Awhile.prems by (auto intro: strengthen_pre) qed (insert Awhile.prems, auto) qed (auto intro: conseq Seq If simp: Skip Assign)
text‹When trying to extend the completeness proof of the VCG for partial correctness to total correctness one runs into the following problem. In the case of the while-rule, the universally quantified ‹n›in the first premise
means that for that premise the induction hypothesis does not yield a single
annotated command ‹C› but merely that for every ‹n› such a ‹C› exists.›
end
Messung V0.5
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet)
¤
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.