1271 eq_equiv_class_iff [OF equiv_realrel UNIV_I UNIV_I] |
1271 eq_equiv_class_iff [OF equiv_realrel UNIV_I UNIV_I] |
1272 |
1272 |
1273 declare equiv_realrel_iff [simp] |
1273 declare equiv_realrel_iff [simp] |
1274 |
1274 |
1275 |
1275 |
1276 lemma realrel_in_real [simp]: "realrel``{(x,y)}: Real" |
1276 lemma realrel_in_real [simp]: "realrel``{(x,y)} \<in> Real" |
1277 by (simp add: Real_def realrel_def quotient_def, blast) |
1277 by (simp add: Real_def realrel_def quotient_def, blast) |
1278 |
1278 |
1279 declare Abs_Real_inject [simp] |
1279 declare Abs_Real_inject [simp] |
1280 declare Abs_Real_inverse [simp] |
1280 declare Abs_Real_inverse [simp] |
1281 |
1281 |
1282 |
1282 |
1283 text\<open>Case analysis on the representation of a real number as an equivalence |
1283 text\<open>Case analysis on the representation of a real number as an equivalence |
1284 class of pairs of positive reals.\<close> |
1284 class of pairs of positive reals.\<close> |
1285 lemma eq_Abs_Real [case_names Abs_Real, cases type: real]: |
1285 lemma eq_Abs_Real [case_names Abs_Real, cases type: real]: |
1286 "(!!x y. z = Abs_Real(realrel``{(x,y)}) ==> P) ==> P" |
1286 "(\<And>x y. z = Abs_Real(realrel``{(x,y)}) \<Longrightarrow> P) \<Longrightarrow> P" |
1287 apply (rule Rep_Real [of z, unfolded Real_def, THEN quotientE]) |
1287 apply (rule Rep_Real [of z, unfolded Real_def, THEN quotientE]) |
1288 apply (drule arg_cong [where f=Abs_Real]) |
1288 apply (drule arg_cong [where f=Abs_Real]) |
1289 apply (auto simp add: Rep_Real_inverse) |
1289 apply (auto simp add: Rep_Real_inverse) |
1290 done |
1290 done |
1291 |
1291 |