equal
deleted
inserted
replaced
103 section {* code names *} |
103 section {* code names *} |
104 |
104 |
105 code_modulename SML |
105 code_modulename SML |
106 ExecutableRat Rational |
106 ExecutableRat Rational |
107 |
107 |
|
108 code_modulename OCaml |
|
109 ExecutableRat Rational |
|
110 |
108 |
111 |
109 section {* rat as abstype *} |
112 section {* rat as abstype *} |
110 |
113 |
111 lemma [code func]: -- {* prevents eq constraint *} |
114 lemma [code func]: -- {* prevents eq constraint *} |
112 shows "All = All" |
115 shows "All = All" |
122 "inverse \<Colon> rat \<Rightarrow> rat" \<equiv> "inverse \<Colon> erat \<Rightarrow> erat" |
125 "inverse \<Colon> rat \<Rightarrow> rat" \<equiv> "inverse \<Colon> erat \<Rightarrow> erat" |
123 "op \<le> \<Colon> rat \<Rightarrow> rat \<Rightarrow> bool" \<equiv> "op \<le> \<Colon> erat \<Rightarrow> erat \<Rightarrow> bool" |
126 "op \<le> \<Colon> rat \<Rightarrow> rat \<Rightarrow> bool" \<equiv> "op \<le> \<Colon> erat \<Rightarrow> erat \<Rightarrow> bool" |
124 "op = \<Colon> rat \<Rightarrow> rat \<Rightarrow> bool" \<equiv> eq_erat |
127 "op = \<Colon> rat \<Rightarrow> rat \<Rightarrow> bool" \<equiv> eq_erat |
125 |
128 |
126 code_const div_zero |
129 code_const div_zero |
127 (SML "raise/ (Fail/ \"Division by zero\")") |
130 (SML "raise/ Fail/ \"Division by zero\"") |
|
131 (OCaml "failwith \"Division by zero\"") |
128 (Haskell "error/ \"Division by zero\"") |
132 (Haskell "error/ \"Division by zero\"") |
129 |
133 |
130 code_gen |
134 code_gen |
131 Fract |
135 Fract |
132 "0 \<Colon> rat" |
136 "0 \<Colon> rat" |