Centroid homomorphisms #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Let A
be a (non unital, non associative) algebra. The centroid of A
is the set of linear maps
T
on A
such that T
commutes with left and right multiplication, that is to say, for all a
and b
in A
,
$$
T(ab) = (Ta)b, T(ab) = a(Tb).
$$
In mathlib we call elements of the centroid "centroid homomorphisms" (centroid_hom
) in keeping
with add_monoid_hom
etc.
We use the fun_like
design, so each type of morphisms has a companion typeclass which is meant to
be satisfied by itself and all stricter types.
Types of morphisms #
centroid_hom
: Maps which preserve left and right multiplication.
Typeclasses #
References #
Tags #
centroid
- to_fun : α → α
- map_zero' : self.to_fun 0 = 0
- map_add' : ∀ (x y : α), self.to_fun (x + y) = self.to_fun x + self.to_fun y
- map_mul_left' : ∀ (a b : α), self.to_fun (a * b) = a * self.to_fun b
- map_mul_right' : ∀ (a b : α), self.to_fun (a * b) = self.to_fun a * b
The type of centroid homomorphisms from α
to α
.
Instances for centroid_hom
- centroid_hom.has_sizeof_inst
- centroid_hom.has_coe_t
- centroid_hom.centroid_hom_class
- centroid_hom.has_coe_to_fun
- centroid_hom.inhabited
- centroid_hom.has_zero
- centroid_hom.has_one
- centroid_hom.has_add
- centroid_hom.has_mul
- centroid_hom.has_nsmul
- centroid_hom.has_npow_nat
- centroid_hom.add_comm_monoid
- centroid_hom.has_nat_cast
- centroid_hom.semiring
- centroid_hom.has_neg
- centroid_hom.has_sub
- centroid_hom.has_zsmul
- centroid_hom.has_int_cast
- centroid_hom.add_comm_group
- centroid_hom.ring
- coe : F → Π (a : α), (λ (_x : α), α) a
- coe_injective' : function.injective centroid_hom_class.coe
- map_add : ∀ (f : F) (x y : α), ⇑f (x + y) = ⇑f x + ⇑f y
- map_zero : ∀ (f : F), ⇑f 0 = 0
- map_mul_left : ∀ (f : F) (a b : α), ⇑f (a * b) = a * ⇑f b
- map_mul_right : ∀ (f : F) (a b : α), ⇑f (a * b) = ⇑f a * b
centroid_hom_class F α
states that F
is a type of centroid homomorphisms.
You should extend this class when you extend centroid_hom
.
Instances of this typeclass
Instances of other typeclasses for centroid_hom_class
- centroid_hom_class.has_sizeof_inst
Equations
- centroid_hom.has_coe_t = {coe := λ (f : F), {to_fun := ⇑f, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}}
Centroid homomorphisms #
Equations
- centroid_hom.centroid_hom_class = {coe := λ (f : centroid_hom α), f.to_fun, coe_injective' := _, map_add := _, map_zero := _, map_mul_left := _, map_mul_right := _}
Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun
directly.
Turn a centroid homomorphism into an additive monoid endomorphism.
Copy of a centroid_hom
with a new to_fun
equal to the old one. Useful to fix
definitional equalities.
Equations
- f.copy f' h = {to_fun := f', map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}
id
as a centroid_hom
.
Equations
- centroid_hom.id α = {to_fun := (add_monoid_hom.id α).to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}
Equations
- centroid_hom.inhabited α = {default := centroid_hom.id α _inst_1}
Composition of centroid_hom
s as a centroid_hom
.
Equations
- g.comp f = {to_fun := (g.to_add_monoid_hom.comp f.to_add_monoid_hom).to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}
Equations
- centroid_hom.has_zero = {zero := {to_fun := 0.to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}}
Equations
- centroid_hom.has_one = {one := centroid_hom.id α _inst_1}
Equations
- centroid_hom.has_add = {add := λ (f g : centroid_hom α), {to_fun := (↑f + ↑g).to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}}
Equations
- centroid_hom.has_mul = {mul := centroid_hom.comp _inst_1}
Equations
- centroid_hom.has_nsmul = {smul := λ (n : ℕ) (f : centroid_hom α), {to_fun := (n • ↑f).to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}}
Equations
- centroid_hom.has_npow_nat = {pow := λ (f : centroid_hom α) (n : ℕ), {to_fun := (f.to_End ^ n).to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}}
Negation of centroid_hom
s as a centroid_hom
.
Equations
- centroid_hom.has_neg = {neg := λ (f : centroid_hom α), {to_fun := (-↑f).to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}}
Equations
- centroid_hom.has_sub = {sub := λ (f g : centroid_hom α), {to_fun := (↑f - ↑g).to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}}
Equations
- centroid_hom.has_zsmul = {smul := λ (n : ℤ) (f : centroid_hom α), {to_fun := (n • ↑f).to_fun, map_zero' := _, map_add' := _, map_mul_left' := _, map_mul_right' := _}}
Equations
- centroid_hom.add_comm_group = function.injective.add_comm_group centroid_hom.to_End centroid_hom.add_comm_group._proof_1 centroid_hom.add_comm_group._proof_2 centroid_hom.add_comm_group._proof_3 centroid_hom.to_End_neg centroid_hom.to_End_sub centroid_hom.add_comm_group._proof_4 centroid_hom.to_End_zsmul
Equations
- centroid_hom.ring = function.injective.ring centroid_hom.to_End centroid_hom.ring._proof_1 centroid_hom.ring._proof_2 centroid_hom.ring._proof_3 centroid_hom.ring._proof_4 centroid_hom.ring._proof_5 centroid_hom.to_End_neg centroid_hom.to_End_sub centroid_hom.ring._proof_6 centroid_hom.to_End_zsmul centroid_hom.ring._proof_7 centroid_hom.ring._proof_8 centroid_hom.to_End_int_cast
A prime associative ring has commutative centroid.
Equations
- centroid_hom.comm_ring h = {add := ring.add centroid_hom.ring, add_assoc := _, zero := ring.zero centroid_hom.ring, zero_add := _, add_zero := _, nsmul := ring.nsmul centroid_hom.ring, nsmul_zero' := _, nsmul_succ' := _, neg := ring.neg centroid_hom.ring, sub := ring.sub centroid_hom.ring, sub_eq_add_neg := _, zsmul := ring.zsmul centroid_hom.ring, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, int_cast := ring.int_cast centroid_hom.ring, nat_cast := ring.nat_cast centroid_hom.ring, one := ring.one centroid_hom.ring, nat_cast_zero := _, nat_cast_succ := _, int_cast_of_nat := _, int_cast_neg_succ_of_nat := _, mul := ring.mul centroid_hom.ring, mul_assoc := _, one_mul := _, mul_one := _, npow := ring.npow centroid_hom.ring, npow_zero' := _, npow_succ' := _, left_distrib := _, right_distrib := _, mul_comm := _}