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