equal
deleted
inserted
replaced
22 A}-avoiding path: |
22 A}-avoiding path: |
23 % Second proof of opposite direction, directly by well-founded induction |
23 % Second proof of opposite direction, directly by well-founded induction |
24 % on the initial segment of M that avoids A. |
24 % on the initial segment of M that avoids A. |
25 *} |
25 *} |
26 |
26 |
27 consts Avoid :: "state \<Rightarrow> state set \<Rightarrow> state set"; |
27 inductive_set |
28 inductive "Avoid s A" |
28 Avoid :: "state \<Rightarrow> state set \<Rightarrow> state set" |
29 intros "s \<in> Avoid s A" |
29 for s :: state and A :: "state set" |
30 "\<lbrakk> t \<in> Avoid s A; t \<notin> A; (t,u) \<in> M \<rbrakk> \<Longrightarrow> u \<in> Avoid s A"; |
30 where |
|
31 "s \<in> Avoid s A" |
|
32 | "\<lbrakk> t \<in> Avoid s A; t \<notin> A; (t,u) \<in> M \<rbrakk> \<Longrightarrow> u \<in> Avoid s A"; |
31 |
33 |
32 text{* |
34 text{* |
33 It is easy to see that for any infinite @{term A}-avoiding path @{term f} |
35 It is easy to see that for any infinite @{term A}-avoiding path @{term f} |
34 with @{prop"f(0::nat) \<in> Avoid s A"} there is an infinite @{term A}-avoiding path |
36 with @{prop"f(0::nat) \<in> Avoid s A"} there is an infinite @{term A}-avoiding path |
35 starting with @{term s} because (by definition of @{const Avoid}) there is a |
37 starting with @{term s} because (by definition of @{const Avoid}) there is a |