src/HOL/ex/Dedekind_Real.thy
changeset 67613 ce654b0e6d69
parent 67443 3abf6a722518
child 69597 ff784d5a5bfb
equal deleted inserted replaced
67610:4939494ed791 67613:ce654b0e6d69
  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