Module docstring
{"# Trivial Square-Zero Extension
Given a ring R together with an (R, R)-bimodule M, the trivial square-zero extension of M
over R is defined to be the R-algebra R ⊕ M with multiplication given by
(r₁ + m₁) * (r₂ + m₂) = r₁ r₂ + r₁ m₂ + m₁ r₂.
It is a square-zero extension because M^2 = 0.
Note that expressing this requires bimodules; we write these in general for a
not-necessarily-commutative R as:
lean
variable {R M : Type*} [Semiring R] [AddCommMonoid M]
variable [Module R M] [Module Rᵐᵒᵖ M] [SMulCommClass R Rᵐᵒᵖ M]
If we instead work with a commutative R' acting symmetrically on M, we write
lean
variable {R' M : Type*} [CommSemiring R'] [AddCommMonoid M]
variable [Module R' M] [Module R'ᵐᵒᵖ M] [IsCentralScalar R' M]
noting that in this context IsCentralScalar R' M implies SMulCommClass R' R'ᵐᵒᵖ M.
Many of the later results in this file are only stated for the commutative R' for simplicity.
Main definitions
TrivSqZeroExt.inl,TrivSqZeroExt.inr: the canonical inclusions intoTrivSqZeroExt R M.TrivSqZeroExt.fst,TrivSqZeroExt.snd: the canonical projections fromTrivSqZeroExt R M.triv_sq_zero_ext.algebra: the associatedR-algebra structure.TrivSqZeroExt.lift: the universal property of the trivial square-zero extension; algebra morphismsTrivSqZeroExt R M →ₐ[S] Aare uniquely defined by an algebra morphismf : R →ₐ[S] AonRand a linear mapg : M →ₗ[S] AonMsuch that:g x * g y = 0: the elements ofMcontinue to square to zero.g (r •> x) = f r * g xandg (x <• r) = g x * f r: left and right actions are preserved byg.
TrivSqZeroExt.lift: the universal property of the trivial square-zero extension; algebra morphismsTrivSqZeroExt R M →ₐ[R] Aare uniquely defined by linear mapsM →ₗ[R] Afor which the product of any two elements in the range is zero.
","### Structures inherited from Prod
Additive operators and scalar multiplication operate elementwise. ","### Multiplicative structure ","This section is heavily inspired by analogous results about matrices. "}