The associator #
Basic API for the associator ⁅x, y, z⁆ = (x * y) * z - x * (y * z) on a non-unital,
non-associative ring: additivity in each argument, behaviour under negation and zero.
⚠ associator is mathlib's, not ours. Mathlib already defines the ring-theoretic associator;
we import it and only add the multilinearity API. Do not redefine it. (If a future mathlib bump
moves or renames it, fix the import — do not introduce a local copy. See overview §0.)
Main results #
associator_add_left,associator_add_mid,associator_add_right: additivity in each slot.associator_neg_left,associator_neg_mid,associator_neg_right: behaviour under negation.associator_zero_left,associator_zero_mid,associator_zero_right: vanishing.
TODO #
- The nucleus (
LeftNucleus,MiddleNucleus,RightNucleus,Nucleus), as associative sub-structures. This is not decoration: the nucleus is the tool used to prove the hard direction of Artin's theorem (Alternative/Artin.lean). The centre needs no local definition: mathlib'sNonUnitalSubring.center(andSubring.center,NonUnitalSubalgebra.center) is built onSet.center, whoseIsMulCentralalready asks for associativity as well as commutativity, and mathlib makes it aNonUnitalCommRing. - Bundle the associator
R-trilinearly (associatorₗ) once a base ring is in play.
References #
- [GPR] Garibaldi, Petersson, Racine, Albert Algebras over Commutative Rings, Ch. 13.
- Schafer, An Introduction to Nonassociative Algebras, §3.
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
The associator vanishes exactly when the two bracketings agree.