Centroid homomorphisms #
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" (CentroidHom
) in keeping
with AddMonoidHom
etc.
We use the DFunLike
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 #
CentroidHom
: Maps which preserve left and right multiplication.
Typeclasses #
References #
- [Jacobson, Structure of Rings][Jacobson1956]
- [McCrimmon, A taste of Jordan algebras][mccrimmon2004]
Tags #
centroid
The type of centroid homomorphisms from α
to α
.
- toFun : α → α
- map_zero' : self.toFun 0 = 0
Commutativity of centroid homomorphims with left multiplication.
Commutativity of centroid homomorphims with right multiplication.
Instances For
CentroidHomClass F α
states that F
is a type of centroid homomorphisms.
You should extend this class when you extend CentroidHom
.
- map_zero : ∀ (f : F), f 0 = 0
Commutativity of centroid homomorphims with left multiplication.
Commutativity of centroid homomorphims with right multiplication.
Instances
Equations
- One or more equations did not get rendered due to their size.
Centroid homomorphisms #
Equations
- CentroidHom.instFunLikeCentroidHom = { coe := fun (f : CentroidHom α) => f.toFun, coe_injective' := ⋯ }
Equations
- ⋯ = ⋯
Helper instance for when there's too many metavariables to apply DFunLike.CoeFun
directly.
Equations
- CentroidHom.instCoeFunCentroidHomForAll = inferInstanceAs (CoeFun (CentroidHom α) fun (x : CentroidHom α) => α → α)
Turn a centroid homomorphism into an additive monoid endomorphism.
Equations
- CentroidHom.toEnd f = ↑f
Instances For
Copy of a CentroidHom
with a new toFun
equal to the old one. Useful to fix
definitional equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
id
as a CentroidHom
.
Equations
- CentroidHom.id α = let __src := AddMonoidHom.id α; { toAddMonoidHom := __src, map_mul_left' := ⋯, map_mul_right' := ⋯ }
Instances For
Equations
- CentroidHom.instInhabitedCentroidHom α = { default := CentroidHom.id α }
Composition of CentroidHom
s as a CentroidHom
.
Equations
- CentroidHom.comp g f = let __src := AddMonoidHom.comp g.toAddMonoidHom f.toAddMonoidHom; { toAddMonoidHom := __src, map_mul_left' := ⋯, map_mul_right' := ⋯ }
Instances For
Equations
- CentroidHom.instZeroCentroidHom = { zero := let __src := 0; { toAddMonoidHom := __src, map_mul_left' := ⋯, map_mul_right' := ⋯ } }
Equations
- CentroidHom.instOneCentroidHom = { one := CentroidHom.id α }
Equations
- CentroidHom.instAddCentroidHom = { add := fun (f g : CentroidHom α) => let __src := ↑f + ↑g; { toAddMonoidHom := __src, map_mul_left' := ⋯, map_mul_right' := ⋯ } }
Equations
- CentroidHom.instMulCentroidHom = { mul := CentroidHom.comp }
Equations
- CentroidHom.instSMul = { smul := fun (n : M) (f : CentroidHom α) => let __src := n • ↑f; { toAddMonoidHom := __src, map_mul_left' := ⋯, map_mul_right' := ⋯ } }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- CentroidHom.hasNPowNat = { pow := fun (f : CentroidHom α) (n : ℕ) => { toAddMonoidHom := CentroidHom.toEnd f ^ n, map_mul_left' := ⋯, map_mul_right' := ⋯ } }
Equations
- CentroidHom.instAddCommMonoidCentroidHom = Function.Injective.addCommMonoid AddMonoidHomClass.toAddMonoidHom ⋯ ⋯ ⋯ ⋯
Equations
- CentroidHom.instSemiringCentroidHom = Function.Injective.semiring CentroidHom.toEnd ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
CentroidHom.toEnd
as a RingHom
.
Equations
- CentroidHom.toEndRingHom α = { toMonoidHom := { toOneHom := { toFun := CentroidHom.toEnd, map_one' := ⋯ }, map_mul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- CentroidHom.instModuleCentroidHomInstAddCommMonoidCentroidHom = Function.Injective.module R (RingHom.toAddMonoidHom (CentroidHom.toEndRingHom α)) ⋯ ⋯
The following instances show that α
is a non-unital and non-associative algebra over
CentroidHom α
.
The tautological action by CentroidHom α
on α
.
This generalizes Function.End.applyMulAction
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Let α
be an algebra over R
, such that the canonical ring homomorphism of R
into
CentroidHom α
lies in the center of CentroidHom α
. Then CentroidHom α
is an algebra over R
The natural ring homomorphism from R
into CentroidHom α
.
This is a stronger version of Module.toAddMonoidEnd
.
Equations
- Module.toCentroidHom = RingHom.smulOneHom
Instances For
The canonical homomorphism from the center into the centroid
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism from the center of a (non-associative) semiring onto its centroid.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Negation of CentroidHom
s as a CentroidHom
.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- CentroidHom.instAddCommGroupCentroidHomToNonUnitalNonAssocSemiring = Function.Injective.addCommGroup CentroidHom.toEnd ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- CentroidHom.instRing = Function.Injective.ring CentroidHom.toEnd ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
A prime associative ring has commutative centroid.
Equations
- CentroidHom.commRing h = let __src := CentroidHom.instRing; CommRing.mk ⋯