equal
deleted
inserted
replaced
16 by (rtac lam_type 1); |
16 by (rtac lam_type 1); |
17 by (dtac apply_type 1); |
17 by (dtac apply_type 1); |
18 by (rtac RepFunI 1 THEN (assume_tac 1)); |
18 by (rtac RepFunI 1 THEN (assume_tac 1)); |
19 by (dtac bspec 1 THEN (assume_tac 1)); |
19 by (dtac bspec 1 THEN (assume_tac 1)); |
20 by (etac subsetD 1 THEN (assume_tac 1)); |
20 by (etac subsetD 1 THEN (assume_tac 1)); |
21 val PROD_subsets = result(); |
21 qed "PROD_subsets"; |
22 |
22 |
23 goal thy "!!X. [| ALL A. 0 ~: A --> (EX f. f : (PROD X:A. X)); A ~= 0 |] ==> \ |
23 goal thy "!!X. [| ALL A. 0 ~: A --> (EX f. f : (PROD X:A. X)); A ~= 0 |] ==> \ |
24 \ (INT a:A. UN b:B(a). X(a, b)) <= (UN f:PROD a:A. B(a). INT a:A. X(a, f`a))"; |
24 \ (INT a:A. UN b:B(a). X(a, b)) <= (UN f:PROD a:A. B(a). INT a:A. X(a, f`a))"; |
25 by (rtac subsetI 1); |
25 by (rtac subsetI 1); |
26 by (eres_inst_tac [("x","{{b:B(a). x:X(a,b)}. a:A}")] allE 1); |
26 by (eres_inst_tac [("x","{{b:B(a). x:X(a,b)}. a:A}")] allE 1); |
31 by (rtac UN_I 1); |
31 by (rtac UN_I 1); |
32 by (fast_tac (!claset addSEs [PROD_subsets]) 1); |
32 by (fast_tac (!claset addSEs [PROD_subsets]) 1); |
33 by (Simp_tac 1); |
33 by (Simp_tac 1); |
34 by (fast_tac (!claset addSEs [not_emptyE] addDs [RepFunI RSN (2, apply_type)] |
34 by (fast_tac (!claset addSEs [not_emptyE] addDs [RepFunI RSN (2, apply_type)] |
35 addEs [CollectD2] addSIs [INT_I]) 1); |
35 addEs [CollectD2] addSIs [INT_I]) 1); |
36 val lemma_AC18 = result(); |
36 qed "lemma_AC18"; |
37 |
37 |
38 val [prem] = goalw thy (AC18_def::AC_defs) "AC1 ==> AC18"; |
38 val [prem] = goalw thy (AC18_def::AC_defs) "AC1 ==> AC18"; |
39 by (resolve_tac [prem RS revcut_rl] 1); |
39 by (resolve_tac [prem RS revcut_rl] 1); |
40 by (fast_tac (!claset addSEs [lemma_AC18, not_emptyE, apply_type] |
40 by (fast_tac (!claset addSEs [lemma_AC18, not_emptyE, apply_type] |
41 addSIs [equalityI, INT_I, UN_I]) 1); |
41 addSIs [equalityI, INT_I, UN_I]) 1); |
58 goalw thy [u_def] |
58 goalw thy [u_def] |
59 "!!A. [| A ~= 0; 0 ~: A |] ==> {u_(a). a:A} ~= 0 & 0 ~: {u_(a). a:A}"; |
59 "!!A. [| A ~= 0; 0 ~: A |] ==> {u_(a). a:A} ~= 0 & 0 ~: {u_(a). a:A}"; |
60 by (fast_tac (!claset addSIs [not_emptyI, RepFunI] |
60 by (fast_tac (!claset addSIs [not_emptyI, RepFunI] |
61 addSEs [not_emptyE, RepFunE] |
61 addSEs [not_emptyE, RepFunE] |
62 addSDs [sym RS (RepFun_eq_0_iff RS iffD1)]) 1); |
62 addSDs [sym RS (RepFun_eq_0_iff RS iffD1)]) 1); |
63 val RepRep_conj = result(); |
63 qed "RepRep_conj"; |
64 |
64 |
65 goal thy "!!c. [|c : a; x = c Un {0}; x ~: a |] ==> x - {0} : a"; |
65 goal thy "!!c. [|c : a; x = c Un {0}; x ~: a |] ==> x - {0} : a"; |
66 by (hyp_subst_tac 1); |
66 by (hyp_subst_tac 1); |
67 by (rtac subst_elem 1 THEN (assume_tac 1)); |
67 by (rtac subst_elem 1 THEN (assume_tac 1)); |
68 by (rtac equalityI 1); |
68 by (rtac equalityI 1); |