equal
deleted
inserted
replaced
185 by (etac allE 1); |
185 by (etac allE 1); |
186 by (rtac impI 1); |
186 by (rtac impI 1); |
187 by (mp_tac 1); |
187 by (mp_tac 1); |
188 by (etac exE 1); |
188 by (etac exE 1); |
189 by (res_inst_tac [("x","lam x:A. {f`x}")] exI 1); |
189 by (res_inst_tac [("x","lam x:A. {f`x}")] exI 1); |
190 by (asm_full_simp_tac (simpset() addsimps |
190 by (asm_simp_tac (simpset() addsimps |
191 [singleton_eqpoll_1 RS eqpoll_imp_lepoll, |
191 [singleton_eqpoll_1 RS eqpoll_imp_lepoll, |
192 singletonI RS not_emptyI]) 1); |
192 singletonI RS not_emptyI]) 1); |
193 by (fast_tac (claset() addSEs [apply_type]) 1); |
|
194 qed "AC1_AC13"; |
193 qed "AC1_AC13"; |
195 |
194 |
196 (* ********************************************************************** *) |
195 (* ********************************************************************** *) |
197 (* AC13(m) ==> AC13(n) for m <= n *) |
196 (* AC13(m) ==> AC13(n) for m <= n *) |
198 (* ********************************************************************** *) |
197 (* ********************************************************************** *) |
233 Goal "[| A~=0; A lepoll 1 |] ==> EX a. A={a}"; |
232 Goal "[| A~=0; A lepoll 1 |] ==> EX a. A={a}"; |
234 by (fast_tac (claset() addSEs [not_emptyE, lepoll_1_is_sing]) 1); |
233 by (fast_tac (claset() addSEs [not_emptyE, lepoll_1_is_sing]) 1); |
235 qed "lemma_aux"; |
234 qed "lemma_aux"; |
236 |
235 |
237 Goal "ALL B:A. f(B)~=0 & f(B)<=B & f(B) lepoll 1 \ |
236 Goal "ALL B:A. f(B)~=0 & f(B)<=B & f(B) lepoll 1 \ |
238 \ ==> (lam x:A. THE y. f(x)={y}) : (PROD X:A. X)"; |
237 \ ==> (lam x:A. THE y. f(x)={y}) : (PROD X:A. X)"; |
239 by (rtac lam_type 1); |
238 by (rtac lam_type 1); |
240 by (dtac bspec 1 THEN (assume_tac 1)); |
239 by (dtac bspec 1 THEN (assume_tac 1)); |
241 by (REPEAT (etac conjE 1)); |
240 by (REPEAT (etac conjE 1)); |
242 by (eresolve_tac [lemma_aux RS exE] 1 THEN (assume_tac 1)); |
241 by (eresolve_tac [lemma_aux RS exE] 1 THEN (assume_tac 1)); |
243 by (asm_full_simp_tac (simpset() addsimps [the_element]) 1); |
242 by (asm_full_simp_tac (simpset() addsimps [the_element]) 1); |
244 by (fast_tac (claset() addEs [ssubst]) 1); |
|
245 val lemma = result(); |
243 val lemma = result(); |
246 |
244 |
247 Goalw AC_defs "AC13(1) ==> AC1"; |
245 Goalw AC_defs "AC13(1) ==> AC1"; |
248 by (fast_tac (claset() addSEs [lemma]) 1); |
246 by (fast_tac (claset() addSEs [lemma]) 1); |
249 qed "AC13_AC1"; |
247 qed "AC13_AC1"; |