# HG changeset patch # User traytel # Date 1379513342 -7200 # Node ID a66d211ab34eb294670b514ca1b6fb64d65887a0 # Parent 7b453b619b5f2fe8d7f24a5b6ad5dae2af1cd642 tuned proofs diff -r 7b453b619b5f -r a66d211ab34e src/HOL/BNF/BNF_GFP.thy --- a/src/HOL/BNF/BNF_GFP.thy Wed Sep 18 15:56:15 2013 +0200 +++ b/src/HOL/BNF/BNF_GFP.thy Wed Sep 18 16:09:02 2013 +0200 @@ -23,24 +23,14 @@ lemma converse_Times: "(A \ B) ^-1 = B \ A" by auto -lemma equiv_triv1: -assumes "equiv A R" and "(a, b) \ R" and "(a, c) \ R" -shows "(b, c) \ R" -using assms unfolding equiv_def sym_def trans_def by blast - -lemma equiv_triv2: -assumes "equiv A R" and "(a, b) \ R" and "(b, c) \ R" -shows "(a, c) \ R" -using assms unfolding equiv_def trans_def by blast - lemma equiv_proj: assumes e: "equiv A R" and "z \ R" shows "(proj R o fst) z = (proj R o snd) z" proof - from assms(2) have z: "(fst z, snd z) \ R" by auto - have P: "\x. (fst z, x) \ R \ (snd z, x) \ R" by (erule equiv_triv1[OF e z]) - have "\x. (snd z, x) \ R \ (fst z, x) \ R" by (erule equiv_triv2[OF e z]) - with P show ?thesis unfolding proj_def[abs_def] by auto + with e have "\x. (fst z, x) \ R \ (snd z, x) \ R" "\x. (snd z, x) \ R \ (fst z, x) \ R" + unfolding equiv_def sym_def trans_def by blast+ + then show ?thesis unfolding proj_def[abs_def] by auto qed (* Operators: *) diff -r 7b453b619b5f -r a66d211ab34e src/HOL/BNF/BNF_LFP.thy --- a/src/HOL/BNF/BNF_LFP.thy Wed Sep 18 15:56:15 2013 +0200 +++ b/src/HOL/BNF/BNF_LFP.thy Wed Sep 18 16:09:02 2013 +0200 @@ -136,10 +136,7 @@ "\\x y. \x \ X; y \ X\ \ (f x = f y) = (x = y); \x. x \ X \ f x \ Y; \y. y \ Y \ \x \ X. y = f x\ \ bij_betw f X Y" -unfolding bij_betw_def inj_on_def -apply (rule conjI) - apply blast -by (erule thin_rl) blast +unfolding bij_betw_def inj_on_def by blast lemma surj_fun_eq: assumes surj_on: "f ` X = UNIV" and eq_on: "\x \ X. (g1 o f) x = (g2 o f) x"