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(); |