equal
deleted
inserted
replaced
26 (rtac (monofun_Isfst RS ch2ch_monofun) 1), |
26 (rtac (monofun_Isfst RS ch2ch_monofun) 1), |
27 (rtac ch2ch_fun 1), |
27 (rtac ch2ch_fun 1), |
28 (rtac (monofun_Ispair1 RS ch2ch_monofun) 1), |
28 (rtac (monofun_Ispair1 RS ch2ch_monofun) 1), |
29 (atac 1), |
29 (atac 1), |
30 (rtac allI 1), |
30 (rtac allI 1), |
31 (asm_simp_tac Sprod_ss 1), |
31 (Asm_simp_tac 1), |
32 (rtac sym 1), |
32 (rtac sym 1), |
33 (rtac lub_chain_maxelem 1), |
33 (rtac lub_chain_maxelem 1), |
34 (res_inst_tac [("P","%j.~Y(j)=UU")] exE 1), |
34 (res_inst_tac [("P","%j.~Y(j)=UU")] exE 1), |
35 (rtac (notall2ex RS iffD1) 1), |
35 (rtac (notall2ex RS iffD1) 1), |
36 (res_inst_tac [("Q","lub(range(Y)) = UU")] contrapos 1), |
36 (res_inst_tac [("Q","lub(range(Y)) = UU")] contrapos 1), |
39 (atac 1), |
39 (atac 1), |
40 (rtac exI 1), |
40 (rtac exI 1), |
41 (etac Issnd2 1), |
41 (etac Issnd2 1), |
42 (rtac allI 1), |
42 (rtac allI 1), |
43 (res_inst_tac [("Q","Y(i)=UU")] (excluded_middle RS disjE) 1), |
43 (res_inst_tac [("Q","Y(i)=UU")] (excluded_middle RS disjE) 1), |
44 (asm_simp_tac Sprod_ss 1), |
44 (Asm_simp_tac 1), |
45 (rtac refl_less 1), |
|
46 (res_inst_tac [("s","UU"),("t","Y(i)")] subst 1), |
45 (res_inst_tac [("s","UU"),("t","Y(i)")] subst 1), |
47 (etac sym 1), |
46 (etac sym 1), |
48 (asm_simp_tac Sprod_ss 1), |
47 (Asm_simp_tac 1) |
49 (rtac minimal 1) |
|
50 ]); |
48 ]); |
51 |
49 |
52 qed_goal "sprod3_lemma2" Sprod3.thy |
50 qed_goal "sprod3_lemma2" Sprod3.thy |
53 "[| is_chain(Y); x ~= UU; lub(range(Y)) = UU |] ==>\ |
51 "[| is_chain(Y); x ~= UU; lub(range(Y)) = UU |] ==>\ |
54 \ Ispair (lub(range Y)) x =\ |
52 \ Ispair (lub(range Y)) x =\ |
63 (rtac strict_Ispair1 1), |
61 (rtac strict_Ispair1 1), |
64 (rtac (strict_Ispair RS sym) 1), |
62 (rtac (strict_Ispair RS sym) 1), |
65 (rtac disjI1 1), |
63 (rtac disjI1 1), |
66 (rtac chain_UU_I_inverse 1), |
64 (rtac chain_UU_I_inverse 1), |
67 (rtac allI 1), |
65 (rtac allI 1), |
68 (asm_simp_tac Sprod_ss 1), |
66 (Asm_simp_tac 1), |
69 (etac (chain_UU_I RS spec) 1), |
67 (etac (chain_UU_I RS spec) 1), |
70 (atac 1) |
68 (atac 1) |
71 ]); |
69 ]); |
72 |
70 |
73 |
71 |
85 (rtac strict_Ispair2 1), |
83 (rtac strict_Ispair2 1), |
86 (rtac (strict_Ispair RS sym) 1), |
84 (rtac (strict_Ispair RS sym) 1), |
87 (rtac disjI1 1), |
85 (rtac disjI1 1), |
88 (rtac chain_UU_I_inverse 1), |
86 (rtac chain_UU_I_inverse 1), |
89 (rtac allI 1), |
87 (rtac allI 1), |
90 (simp_tac Sprod_ss 1) |
88 (Simp_tac 1) |
91 ]); |
89 ]); |
92 |
90 |
93 |
91 |
94 qed_goal "contlub_Ispair1" Sprod3.thy "contlub(Ispair)" |
92 qed_goal "contlub_Ispair1" Sprod3.thy "contlub(Ispair)" |
95 (fn prems => |
93 (fn prems => |
136 (atac 1), |
134 (atac 1), |
137 (rtac exI 1), |
135 (rtac exI 1), |
138 (etac Isfst2 1), |
136 (etac Isfst2 1), |
139 (rtac allI 1), |
137 (rtac allI 1), |
140 (res_inst_tac [("Q","Y(i)=UU")] (excluded_middle RS disjE) 1), |
138 (res_inst_tac [("Q","Y(i)=UU")] (excluded_middle RS disjE) 1), |
141 (asm_simp_tac Sprod_ss 1), |
139 (Asm_simp_tac 1), |
142 (rtac refl_less 1), |
|
143 (res_inst_tac [("s","UU"),("t","Y(i)")] subst 1), |
140 (res_inst_tac [("s","UU"),("t","Y(i)")] subst 1), |
144 (etac sym 1), |
141 (etac sym 1), |
145 (asm_simp_tac Sprod_ss 1), |
142 (Asm_simp_tac 1), |
146 (rtac minimal 1), |
|
147 (rtac lub_equal 1), |
143 (rtac lub_equal 1), |
148 (atac 1), |
144 (atac 1), |
149 (rtac (monofun_Issnd RS ch2ch_monofun) 1), |
145 (rtac (monofun_Issnd RS ch2ch_monofun) 1), |
150 (rtac (monofun_Ispair2 RS ch2ch_monofun) 1), |
146 (rtac (monofun_Ispair2 RS ch2ch_monofun) 1), |
151 (atac 1), |
147 (atac 1), |
152 (rtac allI 1), |
148 (rtac allI 1), |
153 (asm_simp_tac Sprod_ss 1) |
149 (Asm_simp_tac 1) |
154 ]); |
150 ]); |
155 |
151 |
156 qed_goal "sprod3_lemma5" Sprod3.thy |
152 qed_goal "sprod3_lemma5" Sprod3.thy |
157 "[| is_chain(Y); x ~= UU; lub(range(Y)) = UU |] ==>\ |
153 "[| is_chain(Y); x ~= UU; lub(range(Y)) = UU |] ==>\ |
158 \ Ispair x (lub(range Y)) =\ |
154 \ Ispair x (lub(range Y)) =\ |
167 (rtac strict_Ispair2 1), |
163 (rtac strict_Ispair2 1), |
168 (rtac (strict_Ispair RS sym) 1), |
164 (rtac (strict_Ispair RS sym) 1), |
169 (rtac disjI2 1), |
165 (rtac disjI2 1), |
170 (rtac chain_UU_I_inverse 1), |
166 (rtac chain_UU_I_inverse 1), |
171 (rtac allI 1), |
167 (rtac allI 1), |
172 (asm_simp_tac Sprod_ss 1), |
168 (Asm_simp_tac 1), |
173 (etac (chain_UU_I RS spec) 1), |
169 (etac (chain_UU_I RS spec) 1), |
174 (atac 1) |
170 (atac 1) |
175 ]); |
171 ]); |
176 |
172 |
177 qed_goal "sprod3_lemma6" Sprod3.thy |
173 qed_goal "sprod3_lemma6" Sprod3.thy |
188 (rtac strict_Ispair1 1), |
184 (rtac strict_Ispair1 1), |
189 (rtac (strict_Ispair RS sym) 1), |
185 (rtac (strict_Ispair RS sym) 1), |
190 (rtac disjI1 1), |
186 (rtac disjI1 1), |
191 (rtac chain_UU_I_inverse 1), |
187 (rtac chain_UU_I_inverse 1), |
192 (rtac allI 1), |
188 (rtac allI 1), |
193 (simp_tac Sprod_ss 1) |
189 (Simp_tac 1) |
194 ]); |
190 ]); |
195 |
191 |
196 qed_goal "contlub_Ispair2" Sprod3.thy "contlub(Ispair(x))" |
192 qed_goal "contlub_Ispair2" Sprod3.thy "contlub(Ispair(x))" |
197 (fn prems => |
193 (fn prems => |
198 [ |
194 [ |
239 (strip_tac 1), |
235 (strip_tac 1), |
240 (rtac (lub_sprod RS thelubI RS ssubst) 1), |
236 (rtac (lub_sprod RS thelubI RS ssubst) 1), |
241 (atac 1), |
237 (atac 1), |
242 (res_inst_tac [("Q","lub(range(%i. Issnd(Y(i))))=UU")] |
238 (res_inst_tac [("Q","lub(range(%i. Issnd(Y(i))))=UU")] |
243 (excluded_middle RS disjE) 1), |
239 (excluded_middle RS disjE) 1), |
244 (asm_simp_tac Sprod_ss 1), |
240 (Asm_simp_tac 1), |
245 (res_inst_tac [("s","UU"),("t","lub(range(%i. Issnd(Y(i))))")] |
241 (res_inst_tac [("s","UU"),("t","lub(range(%i. Issnd(Y(i))))")] |
246 ssubst 1), |
242 ssubst 1), |
247 (atac 1), |
243 (atac 1), |
248 (rtac trans 1), |
244 (rtac trans 1), |
249 (asm_simp_tac Sprod_ss 1), |
245 (Asm_simp_tac 1), |
250 (rtac sym 1), |
246 (rtac sym 1), |
251 (rtac chain_UU_I_inverse 1), |
247 (rtac chain_UU_I_inverse 1), |
252 (rtac allI 1), |
248 (rtac allI 1), |
253 (rtac strict_Isfst 1), |
249 (rtac strict_Isfst 1), |
254 (rtac swap 1), |
250 (rtac swap 1), |
268 (strip_tac 1), |
264 (strip_tac 1), |
269 (rtac (lub_sprod RS thelubI RS ssubst) 1), |
265 (rtac (lub_sprod RS thelubI RS ssubst) 1), |
270 (atac 1), |
266 (atac 1), |
271 (res_inst_tac [("Q","lub(range(%i. Isfst(Y(i))))=UU")] |
267 (res_inst_tac [("Q","lub(range(%i. Isfst(Y(i))))=UU")] |
272 (excluded_middle RS disjE) 1), |
268 (excluded_middle RS disjE) 1), |
273 (asm_simp_tac Sprod_ss 1), |
269 (Asm_simp_tac 1), |
274 (res_inst_tac [("s","UU"),("t","lub(range(%i. Isfst(Y(i))))")] |
270 (res_inst_tac [("s","UU"),("t","lub(range(%i. Isfst(Y(i))))")] |
275 ssubst 1), |
271 ssubst 1), |
276 (atac 1), |
272 (atac 1), |
277 (asm_simp_tac Sprod_ss 1), |
273 (Asm_simp_tac 1), |
278 (rtac sym 1), |
274 (rtac sym 1), |
279 (rtac chain_UU_I_inverse 1), |
275 (rtac chain_UU_I_inverse 1), |
280 (rtac allI 1), |
276 (rtac allI 1), |
281 (rtac strict_Issnd 1), |
277 (rtac strict_Issnd 1), |
282 (rtac swap 1), |
278 (rtac swap 1), |
677 |
673 |
678 (* ------------------------------------------------------------------------ *) |
674 (* ------------------------------------------------------------------------ *) |
679 (* install simplifier for Sprod *) |
675 (* install simplifier for Sprod *) |
680 (* ------------------------------------------------------------------------ *) |
676 (* ------------------------------------------------------------------------ *) |
681 |
677 |
682 val Sprod_rews = [strict_spair1,strict_spair2,strict_sfst1,strict_sfst2, |
678 Addsimps [strict_spair1,strict_spair2,strict_sfst1,strict_sfst2, |
683 strict_ssnd1,strict_ssnd2,sfst2,ssnd2, |
679 strict_ssnd1,strict_ssnd2,sfst2,ssnd2, |
684 ssplit1,ssplit2]; |
680 ssplit1,ssplit2]; |
685 |
681 |
686 val Sprod_ss = Cfun_ss addsimps Sprod_rews; |
682 |
687 |
|
688 |
|