src/HOL/Real.thy
changeset 57514 bdc2c6b40bf2
parent 57512 cc97b347b301
child 58040 9a867afaab5a
equal deleted inserted replaced
57513:55b2afc5ddfc 57514:bdc2c6b40bf2
   472   unfolding cr_real_eq rel_fun_def by (simp split: split_if_asm, metis)
   472   unfolding cr_real_eq rel_fun_def by (simp split: split_if_asm, metis)
   473 
   473 
   474 instance proof
   474 instance proof
   475   fix a b c :: real
   475   fix a b c :: real
   476   show "a + b = b + a"
   476   show "a + b = b + a"
   477     by transfer (simp add: add_ac realrel_def)
   477     by transfer (simp add: ac_simps realrel_def)
   478   show "(a + b) + c = a + (b + c)"
   478   show "(a + b) + c = a + (b + c)"
   479     by transfer (simp add: add_ac realrel_def)
   479     by transfer (simp add: ac_simps realrel_def)
   480   show "0 + a = a"
   480   show "0 + a = a"
   481     by transfer (simp add: realrel_def)
   481     by transfer (simp add: realrel_def)
   482   show "- a + a = 0"
   482   show "- a + a = 0"
   483     by transfer (simp add: realrel_def)
   483     by transfer (simp add: realrel_def)
   484   show "a - b = a + - b"
   484   show "a - b = a + - b"
   485     by (rule minus_real_def)
   485     by (rule minus_real_def)
   486   show "(a * b) * c = a * (b * c)"
   486   show "(a * b) * c = a * (b * c)"
   487     by transfer (simp add: mult_ac realrel_def)
   487     by transfer (simp add: ac_simps realrel_def)
   488   show "a * b = b * a"
   488   show "a * b = b * a"
   489     by transfer (simp add: mult_ac realrel_def)
   489     by transfer (simp add: ac_simps realrel_def)
   490   show "1 * a = a"
   490   show "1 * a = a"
   491     by transfer (simp add: mult_ac realrel_def)
   491     by transfer (simp add: ac_simps realrel_def)
   492   show "(a + b) * c = a * c + b * c"
   492   show "(a + b) * c = a * c + b * c"
   493     by transfer (simp add: distrib_right realrel_def)
   493     by transfer (simp add: distrib_right realrel_def)
   494   show "(0\<Colon>real) \<noteq> (1\<Colon>real)"
   494   show "(0\<Colon>real) \<noteq> (1\<Colon>real)"
   495     by transfer (simp add: realrel_def)
   495     by transfer (simp add: realrel_def)
   496   show "a \<noteq> 0 \<Longrightarrow> inverse a * a = 1"
   496   show "a \<noteq> 0 \<Longrightarrow> inverse a * a = 1"
   705 lemma le_Real:
   705 lemma le_Real:
   706   assumes X: "cauchy X" and Y: "cauchy Y"
   706   assumes X: "cauchy X" and Y: "cauchy Y"
   707   shows "Real X \<le> Real Y = (\<forall>r>0. \<exists>k. \<forall>n\<ge>k. X n \<le> Y n + r)"
   707   shows "Real X \<le> Real Y = (\<forall>r>0. \<exists>k. \<forall>n\<ge>k. X n \<le> Y n + r)"
   708 unfolding not_less [symmetric, where 'a=real] less_real_def
   708 unfolding not_less [symmetric, where 'a=real] less_real_def
   709 apply (simp add: diff_Real not_positive_Real X Y)
   709 apply (simp add: diff_Real not_positive_Real X Y)
   710 apply (simp add: diff_le_eq add_ac)
   710 apply (simp add: diff_le_eq ac_simps)
   711 done
   711 done
   712 
   712 
   713 lemma le_RealI:
   713 lemma le_RealI:
   714   assumes Y: "cauchy Y"
   714   assumes Y: "cauchy Y"
   715   shows "\<forall>n. x \<le> of_rat (Y n) \<Longrightarrow> x \<le> Real Y"
   715   shows "\<forall>n. x \<le> of_rat (Y n) \<Longrightarrow> x \<le> Real Y"