@@ -194,42 +194,42 @@ variables (M N) [has_mul M] [has_mul N] [has_mul P]
194
194
/-- Given magmas `M`, `N`, the natural projection homomorphism from `M × N` to `M`.-/
195
195
@[to_additive " Given additive magmas `A`, `B`, the natural projection homomorphism
196
196
from `A × B` to `A`" ]
197
- def fst : mul_hom (M × N) M := ⟨prod.fst, λ _ _, rfl⟩
197
+ def fst : (M × N) →ₙ* M := ⟨prod.fst, λ _ _, rfl⟩
198
198
199
199
/-- Given magmas `M`, `N`, the natural projection homomorphism from `M × N` to `N`.-/
200
200
@[to_additive " Given additive magmas `A`, `B`, the natural projection homomorphism
201
201
from `A × B` to `B`" ]
202
- def snd : mul_hom (M × N) N := ⟨prod.snd, λ _ _, rfl⟩
202
+ def snd : (M × N) →ₙ* N := ⟨prod.snd, λ _ _, rfl⟩
203
203
204
204
variables {M N}
205
205
206
206
@[simp, to_additive] lemma coe_fst : ⇑(fst M N) = prod.fst := rfl
207
207
@[simp, to_additive] lemma coe_snd : ⇑(snd M N) = prod.snd := rfl
208
208
209
- /-- Combine two `monoid_hom`s `f : mul_hom M N`, `g : mul_hom M P` into
210
- `f.prod g : mul_hom M (N × P)` given by `(f.prod g) x = (f x, g x)`. -/
209
+ /-- Combine two `monoid_hom`s `f : M →ₙ* N`, `g : M →ₙ* P` into
210
+ `f.prod g : M →ₙ* (N × P)` given by `(f.prod g) x = (f x, g x)`. -/
211
211
@[to_additive prod " Combine two `add_monoid_hom`s `f : add_hom M N`, `g : add_hom M P` into
212
212
`f.prod g : add_hom M (N × P)` given by `(f.prod g) x = (f x, g x)`" ]
213
- protected def prod (f : mul_hom M N) (g : mul_hom M P) : mul_hom M (N × P) :=
213
+ protected def prod (f : M →ₙ* N) (g : M →ₙ* P) : M →ₙ* (N × P) :=
214
214
{ to_fun := pi.prod f g,
215
215
map_mul' := λ x y, prod.ext (f.map_mul x y) (g.map_mul x y) }
216
216
217
217
@[to_additive coe_prod]
218
- lemma coe_prod (f : mul_hom M N) (g : mul_hom M P) : ⇑(f.prod g) = pi.prod f g := rfl
218
+ lemma coe_prod (f : M →ₙ* N) (g : M →ₙ* P) : ⇑(f.prod g) = pi.prod f g := rfl
219
219
220
220
@[simp, to_additive prod_apply]
221
- lemma prod_apply (f : mul_hom M N) (g : mul_hom M P) (x) : f.prod g x = (f x, g x) := rfl
221
+ lemma prod_apply (f : M →ₙ* N) (g : M →ₙ* P) (x) : f.prod g x = (f x, g x) := rfl
222
222
223
223
@[simp, to_additive fst_comp_prod]
224
- lemma fst_comp_prod (f : mul_hom M N) (g : mul_hom M P) : (fst N P).comp (f.prod g) = f :=
224
+ lemma fst_comp_prod (f : M →ₙ* N) (g : M →ₙ* P) : (fst N P).comp (f.prod g) = f :=
225
225
ext $ λ x, rfl
226
226
227
227
@[simp, to_additive snd_comp_prod]
228
- lemma snd_comp_prod (f : mul_hom M N) (g : mul_hom M P) : (snd N P).comp (f.prod g) = g :=
228
+ lemma snd_comp_prod (f : M →ₙ* N) (g : M →ₙ* P) : (snd N P).comp (f.prod g) = g :=
229
229
ext $ λ x, rfl
230
230
231
231
@[simp, to_additive prod_unique]
232
- lemma prod_unique (f : mul_hom M (N × P)) :
232
+ lemma prod_unique (f : M →ₙ* (N × P)) :
233
233
((fst N P).comp f).prod ((snd N P).comp f) = f :=
234
234
ext $ λ x, by simp only [prod_apply, coe_fst, coe_snd, comp_apply, prod.mk.eta]
235
235
@@ -238,11 +238,11 @@ end prod
238
238
section prod_map
239
239
240
240
variables {M' : Type *} {N' : Type *} [has_mul M] [has_mul N] [has_mul M'] [has_mul N'] [has_mul P]
241
- (f : mul_hom M M') (g : mul_hom N N')
241
+ (f : M →ₙ* M') (g : N →ₙ* N')
242
242
243
243
/-- `prod.map` as a `monoid_hom`. -/
244
244
@[to_additive prod_map " `prod.map` as an `add_monoid_hom`" ]
245
- def prod_map : mul_hom (M × N) (M' × N') := (f.comp (fst M N)).prod (g.comp (snd M N))
245
+ def prod_map : (M × N) →ₙ* (M' × N') := (f.comp (fst M N)).prod (g.comp (snd M N))
246
246
247
247
@[to_additive prod_map_def]
248
248
lemma prod_map_def : prod_map f g = (f.comp (fst M N)).prod (g.comp (snd M N)) := rfl
@@ -251,29 +251,29 @@ lemma prod_map_def : prod_map f g = (f.comp (fst M N)).prod (g.comp (snd M N)) :
251
251
lemma coe_prod_map : ⇑(prod_map f g) = prod.map f g := rfl
252
252
253
253
@[to_additive prod_comp_prod_map]
254
- lemma prod_comp_prod_map (f : mul_hom P M) (g : mul_hom P N)
255
- (f' : mul_hom M M') (g' : mul_hom N N') :
254
+ lemma prod_comp_prod_map (f : P →ₙ* M) (g : P →ₙ* N)
255
+ (f' : M →ₙ* M') (g' : N →ₙ* N') :
256
256
(f'.prod_map g').comp (f.prod g) = (f'.comp f).prod (g'.comp g) :=
257
257
rfl
258
258
259
259
end prod_map
260
260
261
261
section coprod
262
262
263
- variables [has_mul M] [has_mul N] [comm_semigroup P] (f : mul_hom M P) (g : mul_hom N P)
263
+ variables [has_mul M] [has_mul N] [comm_semigroup P] (f : M →ₙ* P) (g : N →ₙ* P)
264
264
265
265
/-- Coproduct of two `mul_hom`s with the same codomain:
266
266
`f.coprod g (p : M × N) = f p.1 * g p.2`. -/
267
267
@[to_additive " Coproduct of two `add_hom`s with the same codomain:
268
268
`f.coprod g (p : M × N) = f p.1 + g p.2`." ]
269
- def coprod : mul_hom (M × N) P := f.comp (fst M N) * g.comp (snd M N)
269
+ def coprod : (M × N) →ₙ* P := f.comp (fst M N) * g.comp (snd M N)
270
270
271
271
@[simp, to_additive]
272
272
lemma coprod_apply (p : M × N) : f.coprod g p = f p.1 * g p.2 := rfl
273
273
274
274
@[to_additive]
275
275
lemma comp_coprod {Q : Type *} [comm_semigroup Q]
276
- (h : mul_hom P Q) (f : mul_hom M P) (g : mul_hom N P) :
276
+ (h : P →ₙ* Q) (f : M →ₙ* P) (g : N →ₙ* P) :
277
277
h.comp (f.coprod g) = (h.comp f).coprod (h.comp g) :=
278
278
ext $ λ x, by simp
279
279
@@ -475,7 +475,7 @@ variables {α : Type*}
475
475
476
476
/-- Multiplication as a multiplicative homomorphism. -/
477
477
@[to_additive " Addition as an additive homomorphism." , simps]
478
- def mul_mul_hom [comm_semigroup α] : mul_hom (α × α) α :=
478
+ def mul_mul_hom [comm_semigroup α] : (α × α) →ₙ* α :=
479
479
{ to_fun := λ a, a.1 * a.2 ,
480
480
map_mul' := λ a b, mul_mul_mul_comm _ _ _ _ }
481
481
0 commit comments