@@ -76,34 +76,33 @@ lemma mul_def {f g : monoid_algebra k G} :
76
76
f * g = (f.sum $ λa₁ b₁, g.sum $ λa₂ b₂, single (a₁ * a₂) (b₁ * b₂)) :=
77
77
rfl
78
78
79
- instance : distrib (monoid_algebra k G) :=
80
- { mul := (*),
79
+ instance : non_unital_non_assoc_semiring (monoid_algebra k G) :=
80
+ { zero := 0 ,
81
+ mul := (*),
81
82
add := (+),
82
83
left_distrib := assume f g h, by simp only [mul_def, sum_add_index, mul_add, mul_zero,
83
84
single_zero, single_add, eq_self_iff_true, forall_true_iff, forall_3_true_iff, sum_add],
84
85
right_distrib := assume f g h, by simp only [mul_def, sum_add_index, add_mul, mul_zero, zero_mul,
85
86
single_zero, single_add, eq_self_iff_true, forall_true_iff, forall_3_true_iff, sum_zero,
86
87
sum_add],
87
- .. finsupp.add_comm_monoid }
88
-
89
- instance : mul_zero_class (monoid_algebra k G) :=
90
- { zero := 0 ,
91
- mul := (*),
92
88
zero_mul := assume f, by simp only [mul_def, sum_zero_index],
93
- mul_zero := assume f, by simp only [mul_def, sum_zero_index, sum_zero] }
89
+ mul_zero := assume f, by simp only [mul_def, sum_zero_index, sum_zero],
90
+ .. finsupp.add_comm_monoid }
94
91
95
92
end has_mul
96
93
97
94
section semigroup
98
95
99
96
variables [semiring k] [semigroup G]
100
97
101
- instance : semigroup_with_zero (monoid_algebra k G) :=
102
- { mul := (*),
98
+ instance : non_unital_semiring (monoid_algebra k G) :=
99
+ { zero := 0 ,
100
+ mul := (*),
101
+ add := (+),
103
102
mul_assoc := assume f g h, by simp only [mul_def, sum_sum_index, sum_zero_index, sum_add_index,
104
103
sum_single_index, single_zero, single_add, eq_self_iff_true, forall_true_iff, forall_3_true_iff,
105
104
add_mul, mul_add, add_assoc, mul_assoc, zero_mul, mul_zero, sum_zero, sum_add],
106
- .. monoid_algebra.mul_zero_class }
105
+ .. monoid_algebra.non_unital_non_assoc_semiring }
107
106
108
107
end semigroup
109
108
@@ -125,14 +124,16 @@ section mul_one_class
125
124
126
125
variables [semiring k] [mul_one_class G]
127
126
128
- instance : mul_zero_one_class (monoid_algebra k G) :=
127
+ instance : non_assoc_semiring (monoid_algebra k G) :=
129
128
{ one := 1 ,
130
129
mul := (*),
130
+ zero := 0 ,
131
+ add := (+),
131
132
one_mul := assume f, by simp only [mul_def, one_def, sum_single_index, zero_mul,
132
133
single_zero, sum_zero, zero_add, one_mul, sum_single],
133
134
mul_one := assume f, by simp only [mul_def, one_def, sum_single_index, mul_zero,
134
135
single_zero, sum_zero, add_zero, mul_one, sum_single],
135
- ..monoid_algebra.mul_zero_class }
136
+ ..monoid_algebra.non_unital_non_assoc_semiring }
136
137
137
138
variables {R : Type *} [semiring R]
138
139
@@ -175,10 +176,8 @@ instance : semiring (monoid_algebra k G) :=
175
176
mul := (*),
176
177
zero := 0 ,
177
178
add := (+),
178
- .. monoid_algebra.mul_zero_one_class,
179
- .. monoid_algebra.semigroup_with_zero,
180
- .. monoid_algebra.distrib,
181
- .. finsupp.add_comm_monoid }
179
+ .. monoid_algebra.non_unital_semiring,
180
+ .. monoid_algebra.non_assoc_semiring }
182
181
183
182
variables {R : Type *} [semiring R]
184
183
@@ -658,20 +657,21 @@ lemma mul_def {f g : add_monoid_algebra k G} :
658
657
f * g = (f.sum $ λa₁ b₁, g.sum $ λa₂ b₂, single (a₁ + a₂) (b₁ * b₂)) :=
659
658
rfl
660
659
661
- instance : distrib (add_monoid_algebra k G) :=
662
- { mul := (*),
660
+ instance : non_unital_non_assoc_semiring (add_monoid_algebra k G) :=
661
+ { zero := 0 ,
662
+ mul := (*),
663
663
add := (+),
664
664
left_distrib := assume f g h, by simp only [mul_def, sum_add_index, mul_add, mul_zero,
665
665
single_zero, single_add, eq_self_iff_true, forall_true_iff, forall_3_true_iff, sum_add],
666
666
right_distrib := assume f g h, by simp only [mul_def, sum_add_index, add_mul, mul_zero, zero_mul,
667
667
single_zero, single_add, eq_self_iff_true, forall_true_iff, forall_3_true_iff, sum_zero,
668
- sum_add], }
669
-
670
- instance : mul_zero_class (add_monoid_algebra k G) :=
671
- { zero := 0 ,
672
- mul := (*),
668
+ sum_add],
673
669
zero_mul := assume f, by simp only [mul_def, sum_zero_index],
674
- mul_zero := assume f, by simp only [mul_def, sum_zero_index, sum_zero] }
670
+ mul_zero := assume f, by simp only [mul_def, sum_zero_index, sum_zero],
671
+ nsmul := λ n f, n • f,
672
+ nsmul_zero' := by { intros, ext, simp [-nsmul_eq_mul, add_smul] },
673
+ nsmul_succ' := by { intros, ext, simp [-nsmul_eq_mul, nat.succ_eq_one_add, add_smul] },
674
+ .. finsupp.add_comm_monoid }
675
675
676
676
end has_mul
677
677
@@ -693,27 +693,31 @@ section semigroup
693
693
694
694
variables [semiring k] [add_semigroup G]
695
695
696
- instance : semigroup_with_zero (add_monoid_algebra k G) :=
697
- { mul := (*),
696
+ instance : non_unital_semiring (add_monoid_algebra k G) :=
697
+ { zero := 0 ,
698
+ mul := (*),
699
+ add := (+),
698
700
mul_assoc := assume f g h, by simp only [mul_def, sum_sum_index, sum_zero_index, sum_add_index,
699
701
sum_single_index, single_zero, single_add, eq_self_iff_true, forall_true_iff, forall_3_true_iff,
700
702
add_mul, mul_add, add_assoc, mul_assoc, zero_mul, mul_zero, sum_zero, sum_add],
701
- .. add_monoid_algebra.mul_zero_class }
703
+ .. add_monoid_algebra.non_unital_non_assoc_semiring }
702
704
703
705
end semigroup
704
706
705
707
section mul_one_class
706
708
707
709
variables [semiring k] [add_zero_class G]
708
710
709
- instance : mul_zero_one_class (add_monoid_algebra k G) :=
711
+ instance : non_assoc_semiring (add_monoid_algebra k G) :=
710
712
{ one := 1 ,
711
713
mul := (*),
714
+ zero := 0 ,
715
+ add := (+),
712
716
one_mul := assume f, by simp only [mul_def, one_def, sum_single_index, zero_mul,
713
717
single_zero, sum_zero, zero_add, one_mul, sum_single],
714
718
mul_one := assume f, by simp only [mul_def, one_def, sum_single_index, mul_zero,
715
719
single_zero, sum_zero, add_zero, mul_one, sum_single],
716
- .. add_monoid_algebra.mul_zero_class }
720
+ .. add_monoid_algebra.non_unital_non_assoc_semiring }
717
721
718
722
variables {R : Type *} [semiring R]
719
723
@@ -755,13 +759,8 @@ instance : semiring (add_monoid_algebra k G) :=
755
759
mul := (*),
756
760
zero := 0 ,
757
761
add := (+),
758
- nsmul := λ n f, n • f,
759
- nsmul_zero' := by { intros, ext, simp [-nsmul_eq_mul, add_smul] },
760
- nsmul_succ' := by { intros, ext, simp [-nsmul_eq_mul, nat.succ_eq_one_add, add_smul] },
761
- .. add_monoid_algebra.mul_zero_one_class,
762
- .. add_monoid_algebra.semigroup_with_zero,
763
- .. add_monoid_algebra.distrib,
764
- .. finsupp.add_comm_monoid }
762
+ .. add_monoid_algebra.non_unital_semiring,
763
+ .. add_monoid_algebra.non_assoc_semiring, }
765
764
766
765
variables {R : Type *} [semiring R]
767
766
0 commit comments