equal
deleted
inserted
replaced
497 |
497 |
498 instantiation rat :: number_ring |
498 instantiation rat :: number_ring |
499 begin |
499 begin |
500 |
500 |
501 definition |
501 definition |
502 rat_number_of_def: "number_of w = (of_int w \<Colon> rat)" |
502 rat_number_of_def [code func del]: "number_of w = (of_int w \<Colon> rat)" |
503 |
503 |
504 instance |
504 instance |
505 by default (simp add: rat_number_of_def) |
505 by default (simp add: rat_number_of_def) |
506 |
506 |
507 end |
507 end |
638 lemma Rational_lit [simp]: "Rational i\<^sub>N = rat_of_int i" |
638 lemma Rational_lit [simp]: "Rational i\<^sub>N = rat_of_int i" |
639 by (simp add: Rational_simp) |
639 by (simp add: Rational_simp) |
640 |
640 |
641 lemma zero_rat_code [code, code unfold]: |
641 lemma zero_rat_code [code, code unfold]: |
642 "0 = Rational 0\<^sub>N" by simp |
642 "0 = Rational 0\<^sub>N" by simp |
643 |
643 declare zero_rat_code [symmetric, code post] |
644 lemma zero_rat_code [code, code unfold]: |
644 |
|
645 lemma one_rat_code [code, code unfold]: |
645 "1 = Rational 1\<^sub>N" by simp |
646 "1 = Rational 1\<^sub>N" by simp |
646 |
647 declare one_rat_code [symmetric, code post] |
647 lemma [code, code unfold]: |
648 |
|
649 lemma [code unfold, symmetric, code post]: |
648 "number_of k = rat_of_int (number_of k)" |
650 "number_of k = rat_of_int (number_of k)" |
649 by (simp add: number_of_is_id rat_number_of_def) |
651 by (simp add: number_of_is_id rat_number_of_def) |
650 |
652 |
651 definition |
653 definition |
652 [code func del]: "Fract' (b\<Colon>bool) k l = Fract k l" |
654 [code func del]: "Fract' (b\<Colon>bool) k l = Fract k l" |