src/HOL/Real/PReal.thy
changeset 23389 aaca6a8e5414
parent 23287 063039db59dd
child 24422 c0b5ff9e9e4d
equal deleted inserted replaced
23388:77645da0db85 23389:aaca6a8e5414
   435     show "\<exists>y'\<in>B. z = (z/y) * y'"
   435     show "\<exists>y'\<in>B. z = (z/y) * y'"
   436     proof
   436     proof
   437       show "z = (z/y)*y"
   437       show "z = (z/y)*y"
   438 	by (simp add: divide_inverse mult_commute [of y] mult_assoc
   438 	by (simp add: divide_inverse mult_commute [of y] mult_assoc
   439 		      order_less_imp_not_eq2)
   439 		      order_less_imp_not_eq2)
   440       show "y \<in> B" .
   440       show "y \<in> B" by fact
   441     qed
   441     qed
   442   next
   442   next
   443     show "z/y \<in> A"
   443     show "z/y \<in> A"
   444     proof (rule preal_downwards_closed [OF A x])
   444     proof (rule preal_downwards_closed [OF A x])
   445       show "0 < z/y"
   445       show "0 < z/y"
   525         show "\<exists>v'\<in>A. x = (x / v) * v'"
   525         show "\<exists>v'\<in>A. x = (x / v) * v'"
   526         proof
   526         proof
   527           show "x = (x/v)*v"
   527           show "x = (x/v)*v"
   528 	    by (simp add: divide_inverse mult_assoc vpos
   528 	    by (simp add: divide_inverse mult_assoc vpos
   529                           order_less_imp_not_eq2)
   529                           order_less_imp_not_eq2)
   530           show "v \<in> A" .
   530           show "v \<in> A" by fact
   531         qed
   531         qed
   532       qed
   532       qed
   533     qed
   533     qed
   534   qed
   534   qed
   535   thus "preal_of_rat 1 * Abs_preal A = Abs_preal A"
   535   thus "preal_of_rat 1 * Abs_preal A = Abs_preal A"
  1278   hence zpos:  "0 < z" using prems by (simp add: zero_less_mult_iff)
  1278   hence zpos:  "0 < z" using prems by (simp add: zero_less_mult_iff)
  1279   have "x * z * inverse y * inverse z = x * inverse y * (z * inverse z)"
  1279   have "x * z * inverse y * inverse z = x * inverse y * (z * inverse z)"
  1280     by (simp add: mult_ac)
  1280     by (simp add: mult_ac)
  1281   also have "... = x/y" using zpos
  1281   also have "... = x/y" using zpos
  1282     by (simp add: divide_inverse)
  1282     by (simp add: divide_inverse)
  1283   also have "... < z"
  1283   also from xless have "... < z"
  1284     by (simp add: pos_divide_less_eq [OF ypos] mult_commute) 
  1284     by (simp add: pos_divide_less_eq [OF ypos] mult_commute)
  1285   finally show ?thesis .
  1285   finally show ?thesis .
  1286 qed
  1286 qed
  1287 
  1287 
  1288 lemma preal_of_rat_mult_lemma3:
  1288 lemma preal_of_rat_mult_lemma3:
  1289   assumes uless: "u < x * y"
  1289   assumes uless: "u < x * y"