Documentation

LeanPool.CompositionAlgebrasOverRings.Nonassociative.Alternative.Defs

Alternative rings and algebras #

An alternative multiplication satisfies the two alternative laws

Every associative multiplication is alternative; the octonions are the standard non-associative example. Alternativity is the structural hypothesis under which composition algebras live (GPR 19.3: every composition algebra is alternative).

Implementation notes #

IsAlternative is a Prop-valued mixin on [Mul α], following IsJordan in Mathlib.Algebra.Jordan.Basic. It deliberately does not bundle the ring structure:

One instance (Semigroup.isAlternative) covers every associative case, mirroring CommSemigroup.isCommJordan.

The associator characterizations live below [NonUnitalNonAssocRing α], where subtraction exists.

⚠ The linearizations are proved using additivity only — no Invertible 2 — so they hold in characteristic 2. Do not "simplify" them by halving.

Main results #

References #

class IsAlternative (α : Type u) [Mul α] :

An alternative multiplication: the associator vanishes whenever two adjacent arguments coincide. Stated on [Mul α] as a Prop mixin, following IsJordan.

  • left_alt (a b : α) : a * (a * b) = a * a * b

    Left alternative law: a * (a * b) = (a * a) * b.

  • right_alt (a b : α) : b * a * a = b * (a * a)

    Right alternative law: (b * a) * a = b * (a * a).

Instances
    theorem IsAlternative.mul_mul_self_left {α : Type u} [Mul α] [IsAlternative α] (a b : α) :
    a * (a * b) = a * a * b
    theorem IsAlternative.mul_self_mul_right {α : Type u} [Mul α] [IsAlternative α] (a b : α) :
    b * a * a = b * (a * a)
    @[instance 100]

    Every associative multiplication is alternative. This single instance replaces what a bundled hierarchy would need four instances for.

    The associator vanishes when the first two arguments coincide.

    The associator vanishes when the last two arguments coincide.

    The associator is alternating #

    Linearizations of the two alternative laws. Additivity only — valid in characteristic 2.

    Linearized left alternative law: ⁅a, b, c⁆ + ⁅b, a, c⁆ = 0.

    Swapping the first two arguments negates the associator.

    Linearized right alternative law: ⁅a, b, c⁆ + ⁅a, c, b⁆ = 0.

    Swapping the last two arguments negates the associator.

    The associator vanishes when the first and third arguments coincide.

    theorem IsAlternative.flexible {α : Type u} [NonUnitalNonAssocRing α] [IsAlternative α] (a b : α) :
    a * b * a = a * (b * a)

    Flexible law: (a * b) * a = a * (b * a).

    Linearized alternative laws, multiplicative form #

    theorem IsAlternative.left_alt_linearized {α : Type u} [NonUnitalNonAssocRing α] [IsAlternative α] (a b x : α) :
    a * (b * x) + b * (a * x) = a * b * x + b * a * x

    a * (b * x) + b * (a * x) = (a * b) * x + (b * a) * x.

    theorem IsAlternative.right_alt_linearized {α : Type u} [NonUnitalNonAssocRing α] [IsAlternative α] (x a b : α) :
    x * a * b + x * b * a = x * (a * b) + x * (b * a)

    (x * a) * b + (x * b) * a = x * (a * b) + x * (b * a).

    The opposite of an alternative multiplication is alternative: the two laws swap.