equal
deleted
inserted
replaced
103 |
103 |
104 lemma err_semilatDorderI [simp, intro]: |
104 lemma err_semilatDorderI [simp, intro]: |
105 "err_semilat (A,r,f) \<Longrightarrow> order r" |
105 "err_semilat (A,r,f) \<Longrightarrow> order r" |
106 apply (simp add: Err.sl_def) |
106 apply (simp add: Err.sl_def) |
107 apply (rule order_le_err [THEN iffD1]) |
107 apply (rule order_le_err [THEN iffD1]) |
108 apply (rule semilatDorderI) |
108 apply (rule semilat.orderI) |
109 apply assumption |
109 apply assumption |
110 done |
110 done |
111 |
111 |
112 lemma err_opt_semilat [simp,elim]: |
112 lemma err_opt_semilat [simp,elim]: |
113 "err_semilat (A,r,f) \<Longrightarrow> semilat (err (opt A), Err.le (Opt.le r), lift2 (Opt.sup f))" |
113 "err_semilat (A,r,f) \<Longrightarrow> semilat (err (opt A), Err.le (Opt.le r), lift2 (Opt.sup f))" |
173 (is "?merge (l#ls) x = ?merge ls ?if'") |
173 (is "?merge (l#ls) x = ?merge ls ?if'") |
174 by simp |
174 by simp |
175 also have "\<dots> = ?if ls ?if'" |
175 also have "\<dots> = ?if ls ?if'" |
176 proof - |
176 proof - |
177 from l have "s' \<in> err (opt A)" by simp |
177 from l have "s' \<in> err (opt A)" by simp |
178 with x semi have "(s' +|f x) \<in> err (opt A)" by (fast intro: closedD) |
178 with x semi have "(s' +|f x) \<in> err (opt A)" |
|
179 by (fast intro: semilat.closedI closedD) |
179 with x have "?if' \<in> err (opt A)" by auto |
180 with x have "?if' \<in> err (opt A)" by auto |
180 hence "?P ls ?if'" by (rule IH) thus ?thesis by simp |
181 hence "?P ls ?if'" by (rule IH) thus ?thesis by simp |
181 qed |
182 qed |
182 also have "\<dots> = ?if (l#ls) x" |
183 also have "\<dots> = ?if (l#ls) x" |
183 proof (cases "\<forall>(pc', s')\<in>set (l#ls). pc' \<noteq> pc + 1 \<longrightarrow> s' \<le>|r OK (cert ! pc')") |
184 proof (cases "\<forall>(pc', s')\<in>set (l#ls). pc' \<noteq> pc + 1 \<longrightarrow> s' \<le>|r OK (cert ! pc')") |