src/HOL/Nat.thy
changeset 14740 c8e1937110c2
parent 14738 83f1a514dcb4
child 15131 c69542757a4d
equal deleted inserted replaced
14739:86c6f272ef79 14740:c8e1937110c2
   710 text {* Associative law for multiplication *}
   710 text {* Associative law for multiplication *}
   711 lemma nat_mult_assoc: "(m * n) * k = m * ((n * k)::nat)"
   711 lemma nat_mult_assoc: "(m * n) * k = m * ((n * k)::nat)"
   712   by (induct m) (simp_all add: add_mult_distrib)
   712   by (induct m) (simp_all add: add_mult_distrib)
   713 
   713 
   714 
   714 
   715 text{*The Naturals Form A comm_semiring_1_cancel*}
   715 text{*The naturals form a @{text comm_semiring_1_cancel}*}
   716 instance nat :: comm_semiring_1_cancel
   716 instance nat :: comm_semiring_1_cancel
   717 proof
   717 proof
   718   fix i j k :: nat
   718   fix i j k :: nat
   719   show "(i + j) + k = i + (j + k)" by (rule nat_add_assoc)
   719   show "(i + j) + k = i + (j + k)" by (rule nat_add_assoc)
   720   show "i + j = j + i" by (rule nat_add_commute)
   720   show "i + j = j + i" by (rule nat_add_commute)
   758   apply (induct_tac x) 
   758   apply (induct_tac x) 
   759   apply (simp_all add: add_less_mono)
   759   apply (simp_all add: add_less_mono)
   760   done
   760   done
   761 
   761 
   762 
   762 
   763 text{*The Naturals Form an Ordered comm_semiring_1_cancel*}
   763 text{*The naturals form an ordered @{text comm_semiring_1_cancel}*}
   764 instance nat :: ordered_semidom
   764 instance nat :: ordered_semidom
   765 proof
   765 proof
   766   fix i j k :: nat
   766   fix i j k :: nat
   767   show "0 < (1::nat)" by simp
   767   show "0 < (1::nat)" by simp
   768   show "i \<le> j ==> k + i \<le> k + j" by simp
   768   show "i \<le> j ==> k + i \<le> k + j" by simp