equal
deleted
inserted
replaced
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 |