Documentation

LeanPool.CompositionAlgebras.Composition.Instances

The four Euclidean composition algebras #

โ„, โ„‚, โ„ and ๐•† carry CompositionAlgebra structures, of real dimensions 1, 2, 4, 8. Hurwitz's theorem says there are no others.

โ˜… Why this file exists at all. Composition/Defs.lean states a class. A class with no witness proves nothing, and every theorem quantified over it is vacuously true โ€” the exact defect shape this development has been bitten by before. These four instances are what makes the class non-vacuous, and they are also the targets of the classification: the statement "C is one of the four" is only meaningful once the four are objects.

The instances #

โ˜… The octonion instance is the sharpest cross-check available on Composition/Defs.lean: norm_multiplicative was proved in Octonions.lean from the hard-coded Fano multiplication table, with no reference to composition algebras at all, and it discharges B_comp after one rewrite โ€” octIp_self_eq_norm_sq, which is โˆ‘ xแตขxแตข = โˆ‘ xแตขยฒ and nothing more. So the class field really is the composition property and not a mis-transcription of it. โ˜… An earlier draft of this paragraph said "discharges B_comp verbatim". It does not: the simp only [ipBilin_apply, octIp_self_eq_norm_sq] in front of it is load-bearing, because the class is stated on the bilinear form and Octonions.lean states the identity on normSq.

โ˜… ๐•† needs NonAssocRing Octonion, One Octonion, IsScalarTower and SMulCommClass, none of which were in the tree โ€” Octonions.lean has a bare Mul instance and a def one. They are assembled here from the distributivity and unit lemmas already proved there.

Scope #

Substrate, and the non-vacuity witness for Composition/Defs.lean's class.

โ„ #

@[instance_reducible]

โ„ is a Euclidean composition algebra with N x = xยฒ.

Equations
  • One or more equations did not get rendered due to their size.

โ„‚ #

@[simp]
theorem Complex.ipBilin_apply (x y : โ„‚) :
(ipBilin x) y = x.re * y.re + x.im * y.im
@[instance_reducible]

โ„‚ is a Euclidean composition algebra with N z = |z|ยฒ. The composition law is the two-square identity.

Equations
  • One or more equations did not get rendered due to their size.

โ„ #

โ˜… โ„ carries its own componentwise SMul โ„ โ„[โ„] (Quaternion.instSMul), which shadows Algebra.toSMul. So IsScalarTower.right and Algebra.to_smulCommClass do not apply โ€” they are stated for Algebra.toSMul โ€” and the two bilinearity classes have to be proved against the componentwise action.

The real inner product on โ„.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem Quaternion.ipBilin_apply (x y : Quaternion โ„) :
    (ipBilin x) y = x.re * y.re + x.imI * y.imI + x.imJ * y.imJ + x.imK * y.imK
    @[instance_reducible]

    โ„ is a Euclidean composition algebra. The composition law is Euler's four-square identity, which Mathlib supplies as multiplicativity of Quaternion.normSq.

    Equations
    • One or more equations did not get rendered due to their size.

    ๐•† #

    @[instance_reducible]

    The unit of ๐•†. Octonions.lean has only a def one.

    Equations
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[simp]
    theorem Octonion.ipBilin_apply (x y : Octonion) :
    (ipBilin x) y = x.octIp y
    @[instance_reducible]

    ๐•† is a Euclidean composition algebra. The composition law is Degen's eight-square identity, supplied by Octonion.norm_multiplicative โ€” proved from the Fano multiplication table with no reference to composition algebras โ€” after octIp_self_eq_norm_sq matches the bilinear form against normSq.

    Equations

    The four dimensions #

    1, 2, 4, 8. Hurwitz's theorem is the statement that these are the only ones.