1 (**** quantifier examples -- process using Doc/tout quant.txt ****)
3 Pretty.setmargin 72; (*existing macros just allow this margin*)
7 goal Int_Rule.thy "(ALL x y.P(x,y)) --> (ALL z w.P(w,z))";
8 by (resolve_tac [impI] 1);
9 by (dresolve_tac [spec] 1);
10 by (resolve_tac [allI] 1);
11 by (dresolve_tac [spec] 1);
12 by (resolve_tac [allI] 1);
15 by (resolve_tac [allI] 1);
16 by (resolve_tac [allI] 1);
17 by (dresolve_tac [spec] 1);
18 by (dresolve_tac [spec] 1);
22 by (REPEAT (assume_tac 1
23 ORELSE resolve_tac [impI,allI] 1
24 ORELSE dresolve_tac [spec] 1));
27 - goal Int_Rule.thy "(ALL x y.P(x,y)) --> (ALL z w.P(w,z))";
29 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
30 1. (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
31 val it = [] : thm list
32 - by (resolve_tac [impI] 1);
34 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
35 1. ALL x y. P(x,y) ==> ALL z w. P(w,z)
37 - by (dresolve_tac [spec] 1);
39 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
40 1. ALL y. P(?x1,y) ==> ALL z w. P(w,z)
42 - by (resolve_tac [allI] 1);
44 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
45 1. !!z. ALL y. P(?x1,y) ==> ALL w. P(w,z)
47 - by (dresolve_tac [spec] 1);
49 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
50 1. !!z. P(?x1,?y3(z)) ==> ALL w. P(w,z)
52 - by (resolve_tac [allI] 1);
54 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
55 1. !!z w. P(?x1,?y3(z)) ==> P(w,z)
58 by: tactic returned no results
60 uncaught exception ERROR
63 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
64 1. ALL x y. P(x,y) ==> ALL z w. P(w,z)
66 - by (resolve_tac [allI] 1);
68 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
69 1. !!z. ALL x y. P(x,y) ==> ALL w. P(w,z)
71 - by (resolve_tac [allI] 1);
73 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
74 1. !!z w. ALL x y. P(x,y) ==> P(w,z)
76 - by (dresolve_tac [spec] 1);
78 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
79 1. !!z w. ALL y. P(?x3(z,w),y) ==> P(w,z)
81 - by (dresolve_tac [spec] 1);
83 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
84 1. !!z w. P(?x3(z,w),?y4(z,w)) ==> P(w,z)
88 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
93 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
94 1. (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
95 > by (REPEAT (assume_tac 1
96 # ORELSE resolve_tac [impI,allI] 1
97 # ORELSE dresolve_tac [spec] 1));
99 (ALL x y. P(x,y)) --> (ALL z w. P(w,z))
104 goal FOL_thy "ALL x. EX y. x=y";
105 by (resolve_tac [allI] 1);
106 by (resolve_tac [exI] 1);
107 by (resolve_tac [refl] 1);
109 - goal Int_Rule.thy "ALL x. EX y. x=y";
112 1. ALL x. EX y. x = y
113 val it = [] : thm list
114 - by (resolve_tac [allI] 1);
119 - by (resolve_tac [exI] 1);
124 - by (resolve_tac [refl] 1);
131 goal FOL_thy "EX y. ALL x. x=y";
132 by (resolve_tac [exI] 1);
133 by (resolve_tac [allI] 1);
134 by (resolve_tac [refl] 1);
136 - goal Int_Rule.thy "EX y. ALL x. x=y";
139 1. EX y. ALL x. x = y
140 val it = [] : thm list
141 - by (resolve_tac [exI] 1);
146 - by (resolve_tac [allI] 1);
151 - by (resolve_tac [refl] 1);
152 by: tactic returned no results
154 uncaught exception ERROR
158 goal FOL_thy "EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)";
159 by (resolve_tac [exI, allI] 1);
160 by (resolve_tac [exI, allI] 1);
161 by (resolve_tac [exI, allI] 1);
162 by (resolve_tac [exI, allI] 1);
163 by (resolve_tac [exI, allI] 1);
165 - goal Int_Rule.thy "EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)";
167 EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)
168 1. EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)
169 val it = [] : thm list
170 - by (resolve_tac [exI, allI] 1);
172 EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)
173 1. ALL x. EX v. ALL y. EX w. P(?u,x,v,y,w)
175 - by (resolve_tac [exI, allI] 1);
177 EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)
178 1. !!x. EX v. ALL y. EX w. P(?u,x,v,y,w)
180 - by (resolve_tac [exI, allI] 1);
182 EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)
183 1. !!x. ALL y. EX w. P(?u,x,?v2(x),y,w)
185 - by (resolve_tac [exI, allI] 1);
187 EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)
188 1. !!x y. EX w. P(?u,x,?v2(x),y,w)
190 - by (resolve_tac [exI, allI] 1);
192 EX u. ALL x. EX v. ALL y. EX w. P(u,x,v,y,w)
193 1. !!x y. P(?u,x,?v2(x),y,?w4(x,y))
197 goal FOL_thy "(ALL x.P(x) --> Q) --> (EX x.P(x))-->Q";
198 by (REPEAT (resolve_tac [impI] 1));
199 by (eresolve_tac [exE] 1);
200 by (dresolve_tac [spec] 1);
201 by (eresolve_tac [mp] 1);
204 - goal Int_Rule.thy "(ALL x.P(x) --> Q) --> (EX x.P(x))-->Q";
206 (ALL x. P(x) --> Q) --> (EX x. P(x)) --> Q
207 1. (ALL x. P(x) --> Q) --> (EX x. P(x)) --> Q
208 val it = [] : thm list
209 - by (REPEAT (resolve_tac [impI] 1));
211 (ALL x. P(x) --> Q) --> (EX x. P(x)) --> Q
212 1. [| ALL x. P(x) --> Q; EX x. P(x) |] ==> Q
214 - by (eresolve_tac [exE] 1);
216 (ALL x. P(x) --> Q) --> (EX x. P(x)) --> Q
217 1. !!x. [| ALL x. P(x) --> Q; P(x) |] ==> Q
219 - by (dresolve_tac [spec] 1);
221 (ALL x. P(x) --> Q) --> (EX x. P(x)) --> Q
222 1. !!x. [| P(x); P(?x3(x)) --> Q |] ==> Q
224 - by (eresolve_tac [mp] 1);
226 (ALL x. P(x) --> Q) --> (EX x. P(x)) --> Q
227 1. !!x. P(x) ==> P(?x3(x))
231 (ALL x. P(x) --> Q) --> (EX x. P(x)) --> Q
235 goal FOL_thy "((EX x.P(x)) --> Q) --> (ALL x.P(x)-->Q)";
236 by (REPEAT (resolve_tac [impI] 1));
239 goal FOL_thy "(EX x.P(x) --> Q) --> (ALL x.P(x))-->Q";
240 by (REPEAT (resolve_tac [impI] 1));
241 by (eresolve_tac [exE] 1);
242 by (eresolve_tac [mp] 1);
243 by (eresolve_tac [spec] 1);