src/ZF/AC/AC18_AC19.ML
changeset 2496 40efb87985b5
parent 2469 b50b8c0eec01
child 2845 b4f8df0efa6c
equal deleted inserted replaced
2495:82ec47e0a8d3 2496:40efb87985b5
    35                 addEs [CollectD2] addSIs [INT_I]) 1);
    35                 addEs [CollectD2] addSIs [INT_I]) 1);
    36 val lemma_AC18 = result();
    36 val lemma_AC18 = result();
    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, UN_E, 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);
    42 qed "AC1_AC18";
    42 qed "AC1_AC18";
    43 
    43 
    44 (* ********************************************************************** *)
    44 (* ********************************************************************** *)
    45 (* AC18 ==> AC19                                                          *)
    45 (* AC18 ==> AC19                                                          *)
    68 by (rtac equalityI 1);
    68 by (rtac equalityI 1);
    69 by (Fast_tac 1);
    69 by (Fast_tac 1);
    70 by (rtac subsetI 1);
    70 by (rtac subsetI 1);
    71 by (excluded_middle_tac "x=0" 1);
    71 by (excluded_middle_tac "x=0" 1);
    72 by (Fast_tac 1);
    72 by (Fast_tac 1);
    73 by (fast_tac (!claset addEs [notE, subst_elem] addSIs [equalityI])  1);
    73 by (fast_tac (!claset addEs [notE, subst_elem])  1);
    74 val lemma1_1 = result();
    74 val lemma1_1 = result();
    75 
    75 
    76 goalw thy [u_def]
    76 goalw thy [u_def]
    77         "!!a. [| f`(u_(a)) ~: a; f: (PROD B:{u_(a). a:A}. B); a:A |]  \
    77         "!!a. [| f`(u_(a)) ~: a; f: (PROD B:{u_(a). a:A}. B); a:A |]  \
    78 \               ==> f`(u_(a))-{0} : a";
    78 \               ==> f`(u_(a))-{0} : a";