src/HOL/Library/Fraction_Field.thy
changeset 57512 cc97b347b301
parent 54863 82acc20ded73
child 57514 bdc2c6b40bf2
equal deleted inserted replaced
57511:de51a86fc903 57512:cc97b347b301
   250 proof
   250 proof
   251   fix q :: "'a fract"
   251   fix q :: "'a fract"
   252   assume "q \<noteq> 0"
   252   assume "q \<noteq> 0"
   253   then show "inverse q * q = 1"
   253   then show "inverse q * q = 1"
   254     by (cases q rule: Fract_cases_nonzero)
   254     by (cases q rule: Fract_cases_nonzero)
   255       (simp_all add: fract_expand eq_fract mult_commute)
   255       (simp_all add: fract_expand eq_fract mult.commute)
   256 next
   256 next
   257   fix q r :: "'a fract"
   257   fix q r :: "'a fract"
   258   show "q / r = q * inverse r" by (simp add: divide_fract_def)
   258   show "q / r = q * inverse r" by (simp add: divide_fract_def)
   259 next
   259 next
   260   show "inverse 0 = (0:: 'a fract)"
   260   show "inverse 0 = (0:: 'a fract)"
   396     by (induct q) simp
   396     by (induct q) simp
   397   show "(q < r) = (q \<le> r \<and> \<not> r \<le> q)"
   397   show "(q < r) = (q \<le> r \<and> \<not> r \<le> q)"
   398     by (simp only: less_fract_def)
   398     by (simp only: less_fract_def)
   399   show "q \<le> r \<or> r \<le> q"
   399   show "q \<le> r \<or> r \<le> q"
   400     by (induct q, induct r)
   400     by (induct q, induct r)
   401        (simp add: mult_commute, rule linorder_linear)
   401        (simp add: mult.commute, rule linorder_linear)
   402 qed
   402 qed
   403 
   403 
   404 end
   404 end
   405 
   405 
   406 instantiation fract :: (linordered_idom) "{distrib_lattice,abs_if,sgn_if}"
   406 instantiation fract :: (linordered_idom) "{distrib_lattice,abs_if,sgn_if}"