equal
deleted
inserted
replaced
27 assume "(N, M0 + {#a#}) : {(N, M). ?R N M}"; |
27 assume "(N, M0 + {#a#}) : {(N, M). ?R N M}"; |
28 hence "EX a' M0' K. |
28 hence "EX a' M0' K. |
29 M0 + {#a#} = M0' + {#a'#} & N = M0' + K & ?r K a'"; by simp; |
29 M0 + {#a#} = M0' + {#a'#} & N = M0' + K & ?r K a'"; by simp; |
30 thus "?case1 | ?case2"; |
30 thus "?case1 | ?case2"; |
31 proof (elim exE conjE); |
31 proof (elim exE conjE); |
32 fix a' M0' K; assume N: "N = M0' + K" and r: "?r K a'"; |
32 fix a' M0' K; |
|
33 assume N: "N = M0' + K" and r: "?r K a'"; |
33 assume "M0 + {#a#} = M0' + {#a'#}"; |
34 assume "M0 + {#a#} = M0' + {#a'#}"; |
34 hence "M0 = M0' & a = a' | |
35 hence "M0 = M0' & a = a' | |
35 (EX K'. M0 = K' + {#a'#} & M0' = K' + {#a#})"; |
36 (EX K'. M0 = K' + {#a'#} & M0' = K' + {#a#})"; |
36 by (simp only: add_eq_conv_ex); |
37 by (simp only: add_eq_conv_ex); |
37 thus ?thesis; |
38 thus ?thesis; |
64 assume M0: "M0 : ?W" |
65 assume M0: "M0 : ?W" |
65 and wf_hyp: "ALL b. (b, a) : r --> (ALL M:?W. M + {#b#} : ?W)" |
66 and wf_hyp: "ALL b. (b, a) : r --> (ALL M:?W. M + {#b#} : ?W)" |
66 and acc_hyp: "ALL M. (M, M0) : ?R --> M + {#a#} : ?W"; |
67 and acc_hyp: "ALL M. (M, M0) : ?R --> M + {#a#} : ?W"; |
67 have "M0 + {#a#} : ?W"; |
68 have "M0 + {#a#} : ?W"; |
68 proof (rule accI [of "M0 + {#a#}"]); |
69 proof (rule accI [of "M0 + {#a#}"]); |
69 fix N; assume "(N, M0 + {#a#}) : ?R"; |
70 fix N; |
|
71 assume "(N, M0 + {#a#}) : ?R"; |
70 hence "((EX M. (M, M0) : ?R & N = M + {#a#}) | |
72 hence "((EX M. (M, M0) : ?R & N = M + {#a#}) | |
71 (EX K. (ALL b. elem K b --> (b, a) : r) & N = M0 + K))"; |
73 (EX K. (ALL b. elem K b --> (b, a) : r) & N = M0 + K))"; |
72 by (rule less_add); |
74 by (rule less_add); |
73 thus "N : ?W"; |
75 thus "N : ?W"; |
74 proof (elim exE disjE conjE); |
76 proof (elim exE disjE conjE); |