equal
deleted
inserted
replaced
28 |
28 |
29 val [major,indhyp] = goal Acc.thy |
29 val [major,indhyp] = goal Acc.thy |
30 "[| a : acc(r); \ |
30 "[| a : acc(r); \ |
31 \ !!x. [| x: acc(r); ALL y. <y,x>:r --> P(y) |] ==> P(x) \ |
31 \ !!x. [| x: acc(r); ALL y. <y,x>:r --> P(y) |] ==> P(x) \ |
32 \ |] ==> P(a)"; |
32 \ |] ==> P(a)"; |
33 br (major RS Acc.induct) 1; |
33 by (rtac (major RS Acc.induct) 1); |
34 br indhyp 1; |
34 by (rtac indhyp 1); |
35 by (fast_tac ZF_cs 2); |
35 by (fast_tac ZF_cs 2); |
36 by (resolve_tac Acc.intrs 1); |
36 by (resolve_tac Acc.intrs 1); |
37 ba 2; |
37 by (assume_tac 2); |
38 by (fast_tac ZF_cs 1); |
38 by (fast_tac ZF_cs 1); |
39 val acc_induct = result(); |
39 val acc_induct = result(); |
40 |
40 |
41 goal Acc.thy "wf[acc(r)](r)"; |
41 goal Acc.thy "wf[acc(r)](r)"; |
42 br wf_onI2 1; |
42 by (rtac wf_onI2 1); |
43 be acc_induct 1; |
43 by (etac acc_induct 1); |
44 by (fast_tac ZF_cs 1); |
44 by (fast_tac ZF_cs 1); |
45 val wf_on_acc = result(); |
45 val wf_on_acc = result(); |
46 |
46 |
47 (* field(r) <= acc(r) ==> wf(r) *) |
47 (* field(r) <= acc(r) ==> wf(r) *) |
48 val acc_wfI = wf_on_acc RS wf_on_subset_A RS wf_on_field_imp_wf; |
48 val acc_wfI = wf_on_acc RS wf_on_subset_A RS wf_on_field_imp_wf; |