src/HOL/ex/Numeral.thy
changeset 29667 53103fc8ffa3
parent 28823 dcbef866c9e2
child 29934 5d81dd706206
child 29941 b951d80774d5
equal deleted inserted replaced
29549:7187373c6cb1 29667:53103fc8ffa3
   697 
   697 
   698 context ring_1
   698 context ring_1
   699 begin
   699 begin
   700 
   700 
   701 subclass semiring_1_minus
   701 subclass semiring_1_minus
   702   proof qed (simp_all add: ring_simps)
   702   proof qed (simp_all add: algebra_simps)
   703 
   703 
   704 lemma Dig_zero_minus_of_num [numeral]:
   704 lemma Dig_zero_minus_of_num [numeral]:
   705   "0 - of_num n = - of_num n"
   705   "0 - of_num n = - of_num n"
   706   by simp
   706   by simp
   707 
   707 
   781   "sub 1 (Dig1 n) = - of_num (Dig0 n)"
   781   "sub 1 (Dig1 n) = - of_num (Dig0 n)"
   782   "sub (Dig0 m) (Dig0 n) = dup (sub m n)"
   782   "sub (Dig0 m) (Dig0 n) = dup (sub m n)"
   783   "sub (Dig1 m) (Dig1 n) = dup (sub m n)"
   783   "sub (Dig1 m) (Dig1 n) = dup (sub m n)"
   784   "sub (Dig1 m) (Dig0 n) = dup (sub m n) + 1"
   784   "sub (Dig1 m) (Dig0 n) = dup (sub m n) + 1"
   785   "sub (Dig0 m) (Dig1 n) = dup (sub m n) - 1"
   785   "sub (Dig0 m) (Dig1 n) = dup (sub m n) - 1"
   786   apply (simp_all add: dup_def ring_simps)
   786   apply (simp_all add: dup_def algebra_simps)
   787   apply (simp_all add: of_num_plus Dig_one_plus_dec)[4]
   787   apply (simp_all add: of_num_plus Dig_one_plus_dec)[4]
   788   apply (simp_all add: of_num.simps)
   788   apply (simp_all add: of_num.simps)
   789   done
   789   done
   790 
   790 
   791 lemma dup_code [code]:
   791 lemma dup_code [code]: