section‹ Symbolic Evaluation of Relational Programs ›
theory utp_sym_eval imports utp_rel_opsem begin
text‹ The following operator applies a variable context $\Gamma$ as an assignment, and composes
it with a relation $P$ for the purposes of evaluation. ›
lemma term_symeval [symeval]: "(Γ ⊨ II) ;; P = Γ ⊨ P" by (rel_auto)
lemma if_true_symeval [symeval]: "[ Γ † b = true ]==> Γ ⊨ (P ◃ b ▹r Q) = Γ ⊨ P" by (simp add: utp_sym_eval_def usubst assigns_r_comp)
lemma if_false_symeval [symeval]: "[ Γ † b = false ]==> Γ ⊨ (P ◃ b ▹r Q) = Γ ⊨ Q" by (simp add: utp_sym_eval_def usubst assigns_r_comp)
lemma while_true_symeval [symeval]: "[ Γ † b = true ]==> Γ ⊨ while b do P od = Γ ⊨ (P ;; while b do P od)" by (subst while_unfold, simp add: symeval)
lemma while_false_symeval [symeval]: "[ Γ † b = false ]==> Γ ⊨ while b do P od = Γ ⊨II" by (subst while_unfold, simp add: symeval)
lemma while_inv_true_symeval [symeval]: "[ Γ † b = true ]==> Γ ⊨ while b invr S do P od = Γ ⊨ (P ;; while b do P od)" by (metis while_inv_def while_true_symeval)
lemma while_inv_false_symeval [symeval]: "[ Γ † b = false ]==> Γ ⊨ while b invr S do P od = Γ ⊨ II" by (metis while_false_symeval while_inv_def)
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.