equal
deleted
inserted
replaced
682 types_code |
682 types_code |
683 rat ("(int */ int)") |
683 rat ("(int */ int)") |
684 attach (term_of) {* |
684 attach (term_of) {* |
685 fun term_of_rat (p, q) = |
685 fun term_of_rat (p, q) = |
686 let |
686 let |
687 val rT = @{typ rat} |
687 val rT = Type ("Rational.rat", []) |
688 in |
688 in |
689 if q = 1 orelse p = 0 then HOLogic.mk_number rT p |
689 if q = 1 orelse p = 0 then HOLogic.mk_number rT p |
690 else @{term "op / \<Colon> rat \<Rightarrow> rat \<Rightarrow> rat"} $ |
690 else Const ("HOL.inverse_class.divide", rT --> rT --> rT) $ |
691 HOLogic.mk_number rT p $ HOLogic.mk_number rT q |
691 HOLogic.mk_number rT p $ HOLogic.mk_number rT q |
692 end; |
692 end; |
693 *} |
693 *} |
694 attach (test) {* |
694 attach (test) {* |
695 fun gen_rat i = |
695 fun gen_rat i = |