src/HOL/Library/Nat_Infinity.thy
changeset 31094 7d6edb28bdbc
parent 31084 f4db921165ce
child 31998 2c7a24f74db9
equal deleted inserted replaced
31086:3e69a25b90a2 31094:7d6edb28bdbc
   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 :: linorder
       
   272 by intro_classes (auto simp add: less_eq_inat_def split: inat.splits)
       
   273 
       
   274 instance inat :: pordered_comm_semiring
   271 instance inat :: pordered_comm_semiring
   275 proof
   272 proof
   276   fix a b c :: inat
   273   fix a b c :: inat
   277   assume "a \<le> b" and "0 \<le> c"
   274   assume "a \<le> b" and "0 \<le> c"
   278   thus "c * a \<le> c * b"
   275   thus "c * a \<le> c * b"
   421 lemmas inat_defs = zero_inat_def one_inat_def number_of_inat_def iSuc_def
   418 lemmas inat_defs = zero_inat_def one_inat_def number_of_inat_def iSuc_def
   422   plus_inat_def less_eq_inat_def less_inat_def
   419   plus_inat_def less_eq_inat_def less_inat_def
   423 
   420 
   424 lemmas inat_splits = inat.splits
   421 lemmas inat_splits = inat.splits
   425 
   422 
   426 
   423 end
   427 instance inat :: linorder
       
   428 by intro_classes (auto simp add: inat_defs split: inat.splits)
       
   429 
       
   430 end