equal
deleted
inserted
replaced
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}" |