# HG changeset patch # User haftmann # Date 1313599887 -7200 # Node ID 567fb5f5c639e7d245b31d40557482870288d95a # Parent 85e9dad3c187c3a0a26850cd0c35662904409abd# Parent d58864221eef68c13622f9d77aabb8494353724c merged diff -r 85e9dad3c187 -r 567fb5f5c639 src/HOL/Quotient.thy --- a/src/HOL/Quotient.thy Wed Aug 17 10:03:58 2011 +0200 +++ b/src/HOL/Quotient.thy Wed Aug 17 18:51:27 2011 +0200 @@ -643,10 +643,18 @@ have "Collect (R (SOME x. x \ Rep a)) = (Rep a)" by (metis some_collect rep_prop) then show "Abs (Collect (R (SOME x. x \ Rep a))) = a" using rep_inverse by auto have "R r r \ R s s \ Abs (Collect (R r)) = Abs (Collect (R s)) \ R r = R s" - by (metis Collect_def abs_inverse) + proof - + assume "R r r" and "R s s" + then have "Abs (Collect (R r)) = Abs (Collect (R s)) \ Collect (R r) = Collect (R s)" + by (metis abs_inverse) + also have "Collect (R r) = Collect (R s) \ (\A x. x \ A) (Collect (R r)) = (\A x. x \ A) (Collect (R s))" + by rule simp_all + finally show "Abs (Collect (R r)) = Abs (Collect (R s)) \ R r = R s" by simp + qed then show "R r s \ R r r \ R s s \ (Abs (Collect (R r)) = Abs (Collect (R s)))" using equivp[simplified part_equivp_def] by metis qed + end subsection {* ML setup *}