src/HOL/Library/Nat_Infinity.thy
changeset 29012 9140227dc8c5
parent 28562 4e74209f113e
child 29014 e515f42d1db7
equal deleted inserted replaced
29011:a47003001699 29012:9140227dc8c5
   144   "0 + (q\<Colon>inat) = q"
   144   "0 + (q\<Colon>inat) = q"
   145   "(q\<Colon>inat) + 0 = q"
   145   "(q\<Colon>inat) + 0 = q"
   146   by (simp_all add: plus_inat_def zero_inat_def split: inat.splits)
   146   by (simp_all add: plus_inat_def zero_inat_def split: inat.splits)
   147 
   147 
   148 lemma plus_inat_number [simp]:
   148 lemma plus_inat_number [simp]:
   149   "(number_of k \<Colon> inat) + number_of l = (if neg (number_of k \<Colon> int) then number_of l
   149   "(number_of k \<Colon> inat) + number_of l = (if k < Int.Pls then number_of l
   150     else if neg (number_of l \<Colon> int) then number_of k else number_of (k + l))"
   150     else if l < Int.Pls then number_of k else number_of (k + l))"
   151   unfolding number_of_inat_def plus_inat_simps nat_arith(1) if_distrib [symmetric, of _ Fin] ..
   151   unfolding number_of_inat_def plus_inat_simps nat_arith(1) if_distrib [symmetric, of _ Fin] ..
   152 
   152 
   153 lemma iSuc_number [simp]:
   153 lemma iSuc_number [simp]:
   154   "iSuc (number_of k) = (if neg (number_of k \<Colon> int) then 1 else number_of (Int.succ k))"
   154   "iSuc (number_of k) = (if neg (number_of k \<Colon> int) then 1 else number_of (Int.succ k))"
   155   unfolding iSuc_number_of
   155   unfolding iSuc_number_of