# HG changeset patch # User wenzelm # Date 1528061453 -7200 # Node ID 6989752bba4bfed676fbae788a159ba62a122723 # Parent b00b40dc41afb992f0c8fbe617404fda8095c1cd tuned proofs; diff -r b00b40dc41af -r 6989752bba4b src/HOL/HOLCF/Bifinite.thy --- a/src/HOL/HOLCF/Bifinite.thy Sun Jun 03 22:18:27 2018 +0200 +++ b/src/HOL/HOLCF/Bifinite.thy Sun Jun 03 23:30:53 2018 +0200 @@ -112,18 +112,21 @@ by (rule chainI, simp add: monofun_cfun monofun_LAM) lemma lub_discr_approx [simp]: "(\i. discr_approx i) = ID" -apply (rule cfun_eqI) -apply (simp add: contlub_cfun_fun) -apply (simp add: discr_approx_def) -apply (case_tac x, simp) -apply (rule lub_eqI) -apply (rule is_lubI) -apply (rule ub_rangeI, simp) -apply (drule ub_rangeD) -apply (erule rev_below_trans) -apply simp -apply (rule lessI) -done + apply (rule cfun_eqI) + apply (simp add: contlub_cfun_fun) + apply (simp add: discr_approx_def) + subgoal for x + apply (cases x) + apply simp + apply (rule lub_eqI) + apply (rule is_lubI) + apply (rule ub_rangeI, simp) + apply (drule ub_rangeD) + apply (erule rev_below_trans) + apply simp + apply (rule lessI) + done + done lemma inj_on_undiscr [simp]: "inj_on undiscr A" using Discr_undiscr by (rule inj_on_inverseI) @@ -203,14 +206,21 @@ definition "decode_prod_u = (\(:up\x, up\y:). up\(x, y))" lemma decode_encode_prod_u [simp]: "decode_prod_u\(encode_prod_u\x) = x" -unfolding encode_prod_u_def decode_prod_u_def -by (case_tac x, simp, rename_tac y, case_tac y, simp) + unfolding encode_prod_u_def decode_prod_u_def + apply (cases x) + apply simp + subgoal for y by (cases y) simp + done lemma encode_decode_prod_u [simp]: "encode_prod_u\(decode_prod_u\y) = y" -unfolding encode_prod_u_def decode_prod_u_def -apply (case_tac y, simp, rename_tac a b) -apply (case_tac a, simp, case_tac b, simp, simp) -done + unfolding encode_prod_u_def decode_prod_u_def + apply (cases y) + apply simp + subgoal for a b + apply (cases a, simp) + apply (cases b, simp, simp) + done + done instance prod :: (profinite, profinite) profinite proof diff -r b00b40dc41af -r 6989752bba4b src/HOL/HOLCF/Pcpo.thy --- a/src/HOL/HOLCF/Pcpo.thy Sun Jun 03 22:18:27 2018 +0200 +++ b/src/HOL/HOLCF/Pcpo.thy Sun Jun 03 23:30:53 2018 +0200 @@ -198,16 +198,20 @@ begin subclass chfin - apply standard - apply (unfold max_in_chain_def) - apply (case_tac "\i. Y i = \") - apply simp - apply simp - apply (erule exE) - apply (rule_tac x="i" in exI) - apply clarify - apply (blast dest: chain_mono ax_flat) - done +proof + fix Y + assume *: "chain Y" + show "\n. max_in_chain n Y" + apply (unfold max_in_chain_def) + apply (cases "\i. Y i = \") + apply simp + apply simp + apply (erule exE) + apply (rule_tac x="i" in exI) + apply clarify + using * apply (blast dest: chain_mono ax_flat) + done +qed lemma flat_below_iff: "x \ y \ x = \ \ x = y" by (safe dest!: ax_flat)