equal
deleted
inserted
replaced
25 (rtac (monofun_fst RS ch2ch_monofun) 1), |
25 (rtac (monofun_fst RS ch2ch_monofun) 1), |
26 (rtac ch2ch_fun 1), |
26 (rtac ch2ch_fun 1), |
27 (rtac (monofun_pair1 RS ch2ch_monofun) 1), |
27 (rtac (monofun_pair1 RS ch2ch_monofun) 1), |
28 (atac 1), |
28 (atac 1), |
29 (rtac allI 1), |
29 (rtac allI 1), |
30 (simp_tac pair_ss 1), |
30 (simp_tac prod_ss 1), |
31 (rtac sym 1), |
31 (rtac sym 1), |
32 (simp_tac pair_ss 1), |
32 (simp_tac prod_ss 1), |
33 (rtac (lub_const RS thelubI) 1) |
33 (rtac (lub_const RS thelubI) 1) |
34 ]); |
34 ]); |
35 |
35 |
36 qed_goal "contlub_pair1" Cprod3.thy "contlub(Pair)" |
36 qed_goal "contlub_pair1" Cprod3.thy "contlub(Pair)" |
37 (fn prems => |
37 (fn prems => |
56 (fn prems => |
56 (fn prems => |
57 [ |
57 [ |
58 (cut_facts_tac prems 1), |
58 (cut_facts_tac prems 1), |
59 (res_inst_tac [("f1","Pair")] (arg_cong RS cong) 1), |
59 (res_inst_tac [("f1","Pair")] (arg_cong RS cong) 1), |
60 (rtac sym 1), |
60 (rtac sym 1), |
61 (simp_tac pair_ss 1), |
61 (simp_tac prod_ss 1), |
62 (rtac (lub_const RS thelubI) 1), |
62 (rtac (lub_const RS thelubI) 1), |
63 (rtac lub_equal 1), |
63 (rtac lub_equal 1), |
64 (atac 1), |
64 (atac 1), |
65 (rtac (monofun_snd RS ch2ch_monofun) 1), |
65 (rtac (monofun_snd RS ch2ch_monofun) 1), |
66 (rtac (monofun_pair2 RS ch2ch_monofun) 1), |
66 (rtac (monofun_pair2 RS ch2ch_monofun) 1), |
67 (atac 1), |
67 (atac 1), |
68 (rtac allI 1), |
68 (rtac allI 1), |
69 (simp_tac pair_ss 1) |
69 (simp_tac prod_ss 1) |
70 ]); |
70 ]); |
71 |
71 |
72 qed_goal "contlub_pair2" Cprod3.thy "contlub(Pair(x))" |
72 qed_goal "contlub_pair2" Cprod3.thy "contlub(Pair(x))" |
73 (fn prems => |
73 (fn prems => |
74 [ |
74 [ |
101 [ |
101 [ |
102 (rtac contlubI 1), |
102 (rtac contlubI 1), |
103 (strip_tac 1), |
103 (strip_tac 1), |
104 (rtac (lub_cprod RS thelubI RS ssubst) 1), |
104 (rtac (lub_cprod RS thelubI RS ssubst) 1), |
105 (atac 1), |
105 (atac 1), |
106 (simp_tac pair_ss 1) |
106 (simp_tac prod_ss 1) |
107 ]); |
107 ]); |
108 |
108 |
109 qed_goal "contlub_snd" Cprod3.thy "contlub(snd)" |
109 qed_goal "contlub_snd" Cprod3.thy "contlub(snd)" |
110 (fn prems => |
110 (fn prems => |
111 [ |
111 [ |
112 (rtac contlubI 1), |
112 (rtac contlubI 1), |
113 (strip_tac 1), |
113 (strip_tac 1), |
114 (rtac (lub_cprod RS thelubI RS ssubst) 1), |
114 (rtac (lub_cprod RS thelubI RS ssubst) 1), |
115 (atac 1), |
115 (atac 1), |
116 (simp_tac pair_ss 1) |
116 (simp_tac prod_ss 1) |
117 ]); |
117 ]); |
118 |
118 |
119 qed_goal "contX_fst" Cprod3.thy "contX(fst)" |
119 qed_goal "contX_fst" Cprod3.thy "contX(fst)" |
120 (fn prems => |
120 (fn prems => |
121 [ |
121 [ |
212 [ |
212 [ |
213 (cut_facts_tac prems 1), |
213 (cut_facts_tac prems 1), |
214 (rtac (beta_cfun_cprod RS ssubst) 1), |
214 (rtac (beta_cfun_cprod RS ssubst) 1), |
215 (rtac (beta_cfun RS ssubst) 1), |
215 (rtac (beta_cfun RS ssubst) 1), |
216 (rtac contX_fst 1), |
216 (rtac contX_fst 1), |
217 (simp_tac pair_ss 1) |
217 (simp_tac prod_ss 1) |
218 ]); |
218 ]); |
219 |
219 |
220 qed_goalw "csnd2" Cprod3.thy [csnd_def,cpair_def] |
220 qed_goalw "csnd2" Cprod3.thy [csnd_def,cpair_def] |
221 "csnd[x#y]=y" |
221 "csnd[x#y]=y" |
222 (fn prems => |
222 (fn prems => |
223 [ |
223 [ |
224 (cut_facts_tac prems 1), |
224 (cut_facts_tac prems 1), |
225 (rtac (beta_cfun_cprod RS ssubst) 1), |
225 (rtac (beta_cfun_cprod RS ssubst) 1), |
226 (rtac (beta_cfun RS ssubst) 1), |
226 (rtac (beta_cfun RS ssubst) 1), |
227 (rtac contX_snd 1), |
227 (rtac contX_snd 1), |
228 (simp_tac pair_ss 1) |
228 (simp_tac prod_ss 1) |
229 ]); |
229 ]); |
230 |
230 |
231 qed_goalw "surjective_pairing_Cprod2" Cprod3.thy |
231 qed_goalw "surjective_pairing_Cprod2" Cprod3.thy |
232 [cfst_def,csnd_def,cpair_def] "(cfst[p] # csnd[p]) = p" |
232 [cfst_def,csnd_def,cpair_def] "(cfst[p] # csnd[p]) = p" |
233 (fn prems => |
233 (fn prems => |