equal
deleted
inserted
replaced
578 end |
578 end |
579 |
579 |
580 instantiation finite_1 :: |
580 instantiation finite_1 :: |
581 "{linordered_ring_strict, linordered_comm_semiring_strict, ordered_comm_ring, |
581 "{linordered_ring_strict, linordered_comm_semiring_strict, ordered_comm_ring, |
582 ordered_cancel_comm_monoid_diff, comm_monoid_mult, ordered_ring_abs, |
582 ordered_cancel_comm_monoid_diff, comm_monoid_mult, ordered_ring_abs, |
583 one, Divides.div, sgn_if, inverse}" |
583 one, modulo, sgn_if, inverse}" |
584 begin |
584 begin |
585 definition [simp]: "Groups.zero = a\<^sub>1" |
585 definition [simp]: "Groups.zero = a\<^sub>1" |
586 definition [simp]: "Groups.one = a\<^sub>1" |
586 definition [simp]: "Groups.one = a\<^sub>1" |
587 definition [simp]: "op + = (\<lambda>_ _. a\<^sub>1)" |
587 definition [simp]: "op + = (\<lambda>_ _. a\<^sub>1)" |
588 definition [simp]: "op * = (\<lambda>_ _. a\<^sub>1)" |
588 definition [simp]: "op * = (\<lambda>_ _. a\<^sub>1)" |
696 definition "x mod y = (case (x, y) of (a\<^sub>2, a\<^sub>1) \<Rightarrow> a\<^sub>2 | _ \<Rightarrow> a\<^sub>1)" |
696 definition "x mod y = (case (x, y) of (a\<^sub>2, a\<^sub>1) \<Rightarrow> a\<^sub>2 | _ \<Rightarrow> a\<^sub>1)" |
697 definition "sgn = (\<lambda>x :: finite_2. x)" |
697 definition "sgn = (\<lambda>x :: finite_2. x)" |
698 instance |
698 instance |
699 by intro_classes |
699 by intro_classes |
700 (simp_all add: plus_finite_2_def uminus_finite_2_def minus_finite_2_def times_finite_2_def |
700 (simp_all add: plus_finite_2_def uminus_finite_2_def minus_finite_2_def times_finite_2_def |
701 inverse_finite_2_def divide_finite_2_def abs_finite_2_def mod_finite_2_def sgn_finite_2_def |
701 inverse_finite_2_def divide_finite_2_def abs_finite_2_def modulo_finite_2_def sgn_finite_2_def |
702 split: finite_2.splits) |
702 split: finite_2.splits) |
703 end |
703 end |
704 |
704 |
705 lemma two_finite_2 [simp]: |
705 lemma two_finite_2 [simp]: |
706 "2 = a\<^sub>1" |
706 "2 = a\<^sub>1" |
823 definition "x mod y = (case (x, y) of (a\<^sub>2, a\<^sub>1) \<Rightarrow> a\<^sub>2 | (a\<^sub>3, a\<^sub>1) \<Rightarrow> a\<^sub>3 | _ \<Rightarrow> a\<^sub>1)" |
823 definition "x mod y = (case (x, y) of (a\<^sub>2, a\<^sub>1) \<Rightarrow> a\<^sub>2 | (a\<^sub>3, a\<^sub>1) \<Rightarrow> a\<^sub>3 | _ \<Rightarrow> a\<^sub>1)" |
824 definition "sgn = (\<lambda>x. case x of a\<^sub>1 \<Rightarrow> a\<^sub>1 | _ \<Rightarrow> a\<^sub>2)" |
824 definition "sgn = (\<lambda>x. case x of a\<^sub>1 \<Rightarrow> a\<^sub>1 | _ \<Rightarrow> a\<^sub>2)" |
825 instance |
825 instance |
826 by intro_classes |
826 by intro_classes |
827 (simp_all add: plus_finite_3_def uminus_finite_3_def minus_finite_3_def times_finite_3_def |
827 (simp_all add: plus_finite_3_def uminus_finite_3_def minus_finite_3_def times_finite_3_def |
828 inverse_finite_3_def divide_finite_3_def abs_finite_3_def mod_finite_3_def sgn_finite_3_def |
828 inverse_finite_3_def divide_finite_3_def abs_finite_3_def modulo_finite_3_def sgn_finite_3_def |
829 less_finite_3_def |
829 less_finite_3_def |
830 split: finite_3.splits) |
830 split: finite_3.splits) |
831 end |
831 end |
832 |
832 |
833 |
833 |