equal
deleted
inserted
replaced
179 apply(rule ssubst[OF lfp_unfold[OF mono_af]]); |
179 apply(rule ssubst[OF lfp_unfold[OF mono_af]]); |
180 apply(simp add:af_def); |
180 apply(simp add:af_def); |
181 done; |
181 done; |
182 |
182 |
183 text{*\noindent |
183 text{*\noindent |
184 is proved by a variant of contraposition (@{thm[source]contrapos_np}: |
184 is proved by a variant of contraposition: |
185 @{thm contrapos_np[no_vars]}), i.e.\ assuming the negation of the conclusion |
185 assume the negation of the conclusion and prove @{term"s : lfp(af A)"}. |
186 and proving @{term"s : lfp(af A)"}. Unfolding @{term lfp} once and |
186 Unfolding @{term lfp} once and |
187 simplifying with the definition of @{term af} finishes the proof. |
187 simplifying with the definition of @{term af} finishes the proof. |
188 |
188 |
189 Now we iterate this process. The following construction of the desired |
189 Now we iterate this process. The following construction of the desired |
190 path is parameterized by a predicate @{term P} that should hold along the path: |
190 path is parameterized by a predicate @{term P} that should hold along the path: |
191 *}; |
191 *}; |
331 |
331 |
332 theorem AF_lemma2: |
332 theorem AF_lemma2: |
333 "{s. \<forall> p \<in> Paths s. \<exists> i. p i \<in> A} \<subseteq> lfp(af A)"; |
333 "{s. \<forall> p \<in> Paths s. \<exists> i. p i \<in> A} \<subseteq> lfp(af A)"; |
334 |
334 |
335 txt{*\noindent |
335 txt{*\noindent |
336 The proof is again pointwise and then by contraposition (@{thm[source]contrapos_pp} is the rule |
336 The proof is again pointwise and then by contraposition: |
337 @{thm contrapos_pp}): |
|
338 *}; |
337 *}; |
339 |
338 |
340 apply(rule subsetI); |
339 apply(rule subsetI); |
341 apply(erule contrapos_pp); |
340 apply(erule contrapos_pp); |
342 apply simp; |
341 apply simp; |