equal
deleted
inserted
replaced
232 by default (simp add: of_nat_eq_Fin) |
232 by default (simp add: of_nat_eq_Fin) |
233 |
233 |
234 |
234 |
235 subsection {* Ordering *} |
235 subsection {* Ordering *} |
236 |
236 |
237 instantiation inat :: ordered_ab_semigroup_add |
237 instantiation inat :: linordered_ab_semigroup_add |
238 begin |
238 begin |
239 |
239 |
240 definition |
240 definition |
241 [code del]: "m \<le> n = (case n of Fin n1 \<Rightarrow> (case m of Fin m1 \<Rightarrow> m1 \<le> n1 | \<infinity> \<Rightarrow> False) |
241 [code del]: "m \<le> n = (case n of Fin n1 \<Rightarrow> (case m of Fin m1 \<Rightarrow> m1 \<le> n1 | \<infinity> \<Rightarrow> False) |
242 | \<infinity> \<Rightarrow> True)" |
242 | \<infinity> \<Rightarrow> True)" |
266 instance by default |
266 instance by default |
267 (auto simp add: less_eq_inat_def less_inat_def plus_inat_def split: inat.splits) |
267 (auto simp add: less_eq_inat_def less_inat_def plus_inat_def split: inat.splits) |
268 |
268 |
269 end |
269 end |
270 |
270 |
271 instance inat :: pordered_comm_semiring |
271 instance inat :: ordered_comm_semiring |
272 proof |
272 proof |
273 fix a b c :: inat |
273 fix a b c :: inat |
274 assume "a \<le> b" and "0 \<le> c" |
274 assume "a \<le> b" and "0 \<le> c" |
275 thus "c * a \<le> c * b" |
275 thus "c * a \<le> c * b" |
276 unfolding times_inat_def less_eq_inat_def zero_inat_def |
276 unfolding times_inat_def less_eq_inat_def zero_inat_def |