17 by (eresolve_tac [allE] 1); |
19 by (eresolve_tac [allE] 1); |
18 by (assume_tac 1); |
20 by (assume_tac 1); |
19 |
21 |
20 |
22 |
21 (*Example of Dyckhoff's method*) |
23 (*Example of Dyckhoff's method*) |
22 goalw Int_Rule.thy [not_def] "~ ~ ((P-->Q) | (Q-->P))"; |
24 Goalw [not_def] "~ ~ ((P-->Q) | (Q-->P))"; |
23 by (resolve_tac [impI] 1); |
25 by (resolve_tac [impI] 1); |
24 by (eresolve_tac [disj_impE] 1); |
26 by (eresolve_tac [disj_impE] 1); |
25 by (eresolve_tac [imp_impE] 1); |
27 by (eresolve_tac [imp_impE] 1); |
26 by (eresolve_tac [imp_impE] 1); |
28 by (eresolve_tac [imp_impE] 1); |
27 by (REPEAT (eresolve_tac [FalseE] 2)); |
29 by (REPEAT (eresolve_tac [FalseE] 2)); |
28 by (assume_tac 1); |
30 by (assume_tac 1); |
29 |
31 |
30 |
32 |
31 |
33 |
32 - goal Int_Rule.thy "(EX ay. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y))"; |
|
33 Level 0 |
|
34 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
35 1. (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
36 - by (resolve_tac [impI] 1); |
|
37 Level 1 |
|
38 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
39 1. EX y. ALL x. Q(x,y) ==> ALL x. EX y. Q(x,y) |
|
40 - by (resolve_tac [allI] 1); |
|
41 Level 2 |
|
42 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
43 1. !!x. EX y. ALL x. Q(x,y) ==> EX y. Q(x,y) |
|
44 - by (resolve_tac [exI] 1); |
|
45 Level 3 |
|
46 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
47 1. !!x. EX y. ALL x. Q(x,y) ==> Q(x,?y2(x)) |
|
48 - by (eresolve_tac [exE] 1); |
|
49 Level 4 |
|
50 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
51 1. !!x y. ALL x. Q(x,y) ==> Q(x,?y2(x)) |
|
52 - choplev 2; |
|
53 Level 2 |
|
54 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
55 1. !!x. EX y. ALL x. Q(x,y) ==> EX y. Q(x,y) |
|
56 - by (eresolve_tac [exE] 1); |
|
57 Level 3 |
|
58 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
59 1. !!x y. ALL x. Q(x,y) ==> EX y. Q(x,y) |
|
60 - by (resolve_tac [exI] 1); |
|
61 Level 4 |
|
62 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
63 1. !!x y. ALL x. Q(x,y) ==> Q(x,?y3(x,y)) |
|
64 - by (eresolve_tac [allE] 1); |
|
65 Level 5 |
|
66 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
67 1. !!x y. Q(?x4(x,y),y) ==> Q(x,?y3(x,y)) |
|
68 - by (assume_tac 1); |
|
69 Level 6 |
|
70 (EX y. ALL x. Q(x,y)) --> (ALL x. EX y. Q(x,y)) |
|
71 No subgoals! |
|
72 |
|
73 |
|
74 |
|
75 > goalw Int_Rule.thy [not_def] "~ ~ ((P-->Q) | (Q-->P))"; |
|
76 Level 0 |
|
77 ~ ~ ((P --> Q) | (Q --> P)) |
|
78 1. ((P --> Q) | (Q --> P) --> False) --> False |
|
79 > by (resolve_tac [impI] 1); |
|
80 Level 1 |
|
81 ~ ~ ((P --> Q) | (Q --> P)) |
|
82 1. (P --> Q) | (Q --> P) --> False ==> False |
|
83 > by (eresolve_tac [disj_impE] 1); |
|
84 Level 2 |
|
85 ~ ~ ((P --> Q) | (Q --> P)) |
|
86 1. [| (P --> Q) --> False; (Q --> P) --> False |] ==> False |
|
87 > by (eresolve_tac [imp_impE] 1); |
|
88 Level 3 |
|
89 ~ ~ ((P --> Q) | (Q --> P)) |
|
90 1. [| (Q --> P) --> False; P; Q --> False |] ==> Q |
|
91 2. [| (Q --> P) --> False; False |] ==> False |
|
92 > by (eresolve_tac [imp_impE] 1); |
|
93 Level 4 |
|
94 ~ ~ ((P --> Q) | (Q --> P)) |
|
95 1. [| P; Q --> False; Q; P --> False |] ==> P |
|
96 2. [| P; Q --> False; False |] ==> Q |
|
97 3. [| (Q --> P) --> False; False |] ==> False |
|
98 > by (REPEAT (eresolve_tac [FalseE] 2)); |
|
99 Level 5 |
|
100 ~ ~ ((P --> Q) | (Q --> P)) |
|
101 1. [| P; Q --> False; Q; P --> False |] ==> P |
|
102 > by (assume_tac 1); |
|
103 Level 6 |
|
104 ~ ~ ((P --> Q) | (Q --> P)) |
|
105 No subgoals! |
|
106 |
|
107 |
|
108 |
34 |
109 |
35 |
110 (*** Classical examples ***) |
36 (*** Classical examples ***) |
111 |
37 |
112 goal cla_thy "EX y. ALL x. P(y)-->P(x)"; |
38 context FOL.thy; |
|
39 |
|
40 Goal "EX y. ALL x. P(y)-->P(x)"; |
113 by (resolve_tac [exCI] 1); |
41 by (resolve_tac [exCI] 1); |
114 by (resolve_tac [allI] 1); |
42 by (resolve_tac [allI] 1); |
115 by (resolve_tac [impI] 1); |
43 by (resolve_tac [impI] 1); |
116 by (eresolve_tac [allE] 1); |
44 by (eresolve_tac [allE] 1); |
117 prth (allI RSN (2,swap)); |
45 prth (allI RSN (2,swap)); |
118 by (eresolve_tac [it] 1); |
46 by (eresolve_tac [it] 1); |
119 by (resolve_tac [impI] 1); |
47 by (resolve_tac [impI] 1); |
120 by (eresolve_tac [notE] 1); |
48 by (eresolve_tac [notE] 1); |
121 by (assume_tac 1); |
49 by (assume_tac 1); |
122 goal cla_thy "EX y. ALL x. P(y)-->P(x)"; |
50 Goal "EX y. ALL x. P(y)-->P(x)"; |
123 by (best_tac FOL_dup_cs 1); |
51 by (Blast_tac 1); |
124 |
52 |
125 |
53 |
126 |
54 |
127 - goal cla_thy "EX y. ALL x. P(y)-->P(x)"; |
55 - Goal "EX y. ALL x. P(y)-->P(x)"; |
128 Level 0 |
56 Level 0 |
129 EX y. ALL x. P(y) --> P(x) |
57 EX y. ALL x. P(y) --> P(x) |
130 1. EX y. ALL x. P(y) --> P(x) |
58 1. EX y. ALL x. P(y) --> P(x) |
131 - by (resolve_tac [exCI] 1); |
59 - by (resolve_tac [exCI] 1); |
132 Level 1 |
60 Level 1 |