equal
deleted
inserted
replaced
119 (rtac ub_rangeI 1), |
119 (rtac ub_rangeI 1), |
120 (strip_tac 1), |
120 (strip_tac 1), |
121 (case_tac "x<i" 1), |
121 (case_tac "x<i" 1), |
122 (res_inst_tac [("s","Y(i)"),("t","X(i)")] subst 1), |
122 (res_inst_tac [("s","Y(i)"),("t","X(i)")] subst 1), |
123 (rtac sym 1), |
123 (rtac sym 1), |
124 (fast_tac HOL_cs 1), |
124 (Fast_tac 1), |
125 (rtac is_ub_thelub 1), |
125 (rtac is_ub_thelub 1), |
126 (resolve_tac prems 1), |
126 (resolve_tac prems 1), |
127 (res_inst_tac [("y","X(Suc(x))")] trans_less 1), |
127 (res_inst_tac [("y","X(Suc(x))")] trans_less 1), |
128 (rtac (chain_mono RS mp) 1), |
128 (rtac (chain_mono RS mp) 1), |
129 (resolve_tac prems 1), |
129 (resolve_tac prems 1), |
144 (rtac antisym_less 1), |
144 (rtac antisym_less 1), |
145 (rtac lub_mono2 1), |
145 (rtac lub_mono2 1), |
146 (REPEAT (resolve_tac prems 1)), |
146 (REPEAT (resolve_tac prems 1)), |
147 (cut_facts_tac prems 1), |
147 (cut_facts_tac prems 1), |
148 (rtac lub_mono2 1), |
148 (rtac lub_mono2 1), |
149 (safe_tac HOL_cs), |
149 Safe_tac, |
150 (step_tac HOL_cs 1), |
150 (Step_tac 1), |
151 (safe_tac HOL_cs), |
151 Safe_tac, |
152 (rtac sym 1), |
152 (rtac sym 1), |
153 (fast_tac HOL_cs 1) |
153 (Fast_tac 1) |
154 ]); |
154 ]); |
155 |
155 |
156 qed_goal "lub_mono3" thy "[|is_chain(Y::nat=>'a::cpo);is_chain(X);\ |
156 qed_goal "lub_mono3" thy "[|is_chain(Y::nat=>'a::cpo);is_chain(X);\ |
157 \! i. ? j. Y(i)<< X(j)|]==> lub(range(Y))<<lub(range(X))" |
157 \! i. ? j. Y(i)<< X(j)|]==> lub(range(Y))<<lub(range(X))" |
158 (fn prems => |
158 (fn prems => |
173 (* ------------------------------------------------------------------------ *) |
173 (* ------------------------------------------------------------------------ *) |
174 (* usefull lemmas about UU *) |
174 (* usefull lemmas about UU *) |
175 (* ------------------------------------------------------------------------ *) |
175 (* ------------------------------------------------------------------------ *) |
176 |
176 |
177 val eq_UU_sym = prove_goal thy "(UU = x) = (x = UU)" (fn _ => [ |
177 val eq_UU_sym = prove_goal thy "(UU = x) = (x = UU)" (fn _ => [ |
178 fast_tac HOL_cs 1]); |
178 Fast_tac 1]); |
179 |
179 |
180 qed_goal "eq_UU_iff" thy "(x=UU)=(x<<UU)" |
180 qed_goal "eq_UU_iff" thy "(x=UU)=(x<<UU)" |
181 (fn prems => |
181 (fn prems => |
182 [ |
182 [ |
183 (rtac iffI 1), |
183 (rtac iffI 1), |
259 "[|? j.~Y(j)=UU;is_chain(Y::nat=>'a::pcpo)|]\ |
259 "[|? j.~Y(j)=UU;is_chain(Y::nat=>'a::pcpo)|]\ |
260 \ ==> ? j.!i.j<i-->~Y(i)=UU" |
260 \ ==> ? j.!i.j<i-->~Y(i)=UU" |
261 (fn prems => |
261 (fn prems => |
262 [ |
262 [ |
263 (cut_facts_tac prems 1), |
263 (cut_facts_tac prems 1), |
264 (safe_tac HOL_cs), |
264 Safe_tac, |
265 (step_tac HOL_cs 1), |
265 (Step_tac 1), |
266 (strip_tac 1), |
266 (strip_tac 1), |
267 (rtac notUU_I 1), |
267 (rtac notUU_I 1), |
268 (atac 2), |
268 (atac 2), |
269 (etac (chain_mono RS mp) 1), |
269 (etac (chain_mono RS mp) 1), |
270 (atac 1) |
270 (atac 1) |
290 (etac exE 1), |
290 (etac exE 1), |
291 (res_inst_tac [("x","i")] exI 1), |
291 (res_inst_tac [("x","i")] exI 1), |
292 (strip_tac 1), |
292 (strip_tac 1), |
293 (dres_inst_tac [("x","i"),("y","j")] chain_mono 1), |
293 (dres_inst_tac [("x","i"),("y","j")] chain_mono 1), |
294 (etac (le_imp_less_or_eq RS disjE) 1), |
294 (etac (le_imp_less_or_eq RS disjE) 1), |
295 (safe_tac HOL_cs), |
295 Safe_tac, |
296 (dtac (ax_flat RS spec RS spec RS mp) 1), |
296 (dtac (ax_flat RS spec RS spec RS mp) 1), |
297 (fast_tac HOL_cs 1) |
297 (Fast_tac 1) |
298 ]); |
298 ]); |
299 |
299 |
300 (* flat subclass of chfin --> adm_flat not needed *) |
300 (* flat subclass of chfin --> adm_flat not needed *) |
301 |
301 |
302 qed_goal "flat_eq" thy "(a::'a::flat) ~= UU ==> a << b = (a = b)" |
302 qed_goal "flat_eq" thy "(a::'a::flat) ~= UU ==> a << b = (a = b)" |