src/ZF/AC/AC18_AC19.ML
changeset 5265 9d1d4c43c76d
parent 5241 e5129172cb2b
child 9683 f87c8c449018
equal deleted inserted replaced
5264:7538fce1fe37 5265:9d1d4c43c76d
    23 Goal "[| ALL A. 0 ~: A --> (EX f. f : (PROD X:A. X)); A ~= 0 |] ==>  \
    23 Goal "[| 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);
    27 by (etac impE 1);
    27 by (etac impE 1);
    28 by (fast_tac (claset() addEs [sym RS equals0E]) 1);
    28 by (Fast_tac 1);
    29 by (etac exE 1);
    29 by (etac exE 1);
    30 by (rtac UN_I 1);
    30 by (rtac UN_I 1);
    31 by (fast_tac (claset() addSEs [PROD_subsets]) 1);
    31 by (fast_tac (claset() addSEs [PROD_subsets]) 1);
    32 by (Simp_tac 1);
    32 by (Simp_tac 1);
    33 by (fast_tac (claset() addSEs [not_emptyE] addDs [RepFunI RSN (2, apply_type)]
    33 by (fast_tac (claset() addSEs [not_emptyE] 
    34 	      ) 1);
    34                        addDs [RepFunI RSN (2, apply_type)]) 1);
    35 qed "lemma_AC18";
    35 qed "lemma_AC18";
    36 
    36 
    37 val [prem] = goalw thy (AC18_def::AC_defs) "AC1 ==> AC18";
    37 val [prem] = goalw thy (AC18_def::AC_defs) "AC1 ==> AC18";
    38 by (resolve_tac [prem RS revcut_rl] 1);
    38 by (resolve_tac [prem RS revcut_rl] 1);
    39 by (fast_tac (claset() addSEs [lemma_AC18, not_emptyE, apply_type]
    39 by (fast_tac (claset() addSEs [lemma_AC18, not_emptyE, apply_type]