src/ZF/AC/Cardinal_aux.ML
changeset 2496 40efb87985b5
parent 2493 bdeb5024353a
child 2873 5f0599e15448
equal deleted inserted replaced
2495:82ec47e0a8d3 2496:40efb87985b5
    73 val double_Diff_sing = result();
    73 val double_Diff_sing = result();
    74 
    74 
    75 goal upair.thy "if({y,z}-{z}=0, z, THE w. {y,z}-{z}={w}) = y";
    75 goal upair.thy "if({y,z}-{z}=0, z, THE w. {y,z}-{z}={w}) = y";
    76 by (split_tac [expand_if] 1);
    76 by (split_tac [expand_if] 1);
    77 by (asm_full_simp_tac (!simpset addsimps [double_Diff_sing, Diff_eq_0_iff]) 1);
    77 by (asm_full_simp_tac (!simpset addsimps [double_Diff_sing, Diff_eq_0_iff]) 1);
    78 by (fast_tac (!claset addSIs [the_equality, equalityI, equals0I]
    78 by (fast_tac (!claset addSIs [the_equality] addEs [equalityE]) 1);
    79                 addEs [equalityE]) 1);
       
    80 val paired_bij_lemma = result();
    79 val paired_bij_lemma = result();
    81 
    80 
    82 goal thy "(lam y:{{y,z}. y:x}. if(y-{z}=0, z, THE w. y-{z}={w}))  \
    81 goal thy "(lam y:{{y,z}. y:x}. if(y-{z}=0, z, THE w. y-{z}={w}))  \
    83 \               : bij({{y,z}. y:x}, x)";
    82 \               : bij({{y,z}. y:x}, x)";
    84 by (res_inst_tac [("d","%a. {a,z}")] lam_bijective 1);
    83 by (res_inst_tac [("d","%a. {a,z}")] lam_bijective 1);
   118 \       ==> y-{THE b. first(b,y,r)} lepoll n";
   117 \       ==> y-{THE b. first(b,y,r)} lepoll n";
   119 by (res_inst_tac [("Q","y=0")] (excluded_middle RS disjE) 1);
   118 by (res_inst_tac [("Q","y=0")] (excluded_middle RS disjE) 1);
   120 by (fast_tac (!claset addSIs [Diff_sing_lepoll, the_first_in]) 1);
   119 by (fast_tac (!claset addSIs [Diff_sing_lepoll, the_first_in]) 1);
   121 by (res_inst_tac [("b","y-{THE b. first(b, y, r)}")] subst 1);
   120 by (res_inst_tac [("b","y-{THE b. first(b, y, r)}")] subst 1);
   122 by (rtac empty_lepollI 2);
   121 by (rtac empty_lepollI 2);
   123 by (fast_tac (!claset addSIs [equalityI]) 1);
   122 by (Fast_tac 1);
   124 val Diff_first_lepoll = result();
   123 val Diff_first_lepoll = result();
   125 
   124 
   126 goal thy "(UN x:X. P(x)) <= (UN x:X. P(x)-Q(x)) Un (UN x:X. Q(x))";
   125 goal thy "(UN x:X. P(x)) <= (UN x:X. P(x)-Q(x)) Un (UN x:X. Q(x))";
   127 by (Fast_tac 1);
   126 by (Fast_tac 1);
   128 val UN_subset_split = result();
   127 val UN_subset_split = result();