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 #
Real.instCompositionAlgebraโN x = xยฒ.Complex.instCompositionAlgebraโN z = |z|ยฒ; the composition law is the Diophantus two-square identity.Quaternion.instCompositionAlgebraโN q = โqโยฒ; Euler's four-square identity, taken fromMathlib'sQuaternion.normSqas aMonoidWithZeroHom.Octonion.instCompositionAlgebraโ Degen's eight-square identity, taken from the tree'sOctonion.norm_multiplicative.
โ
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.
โ #
โ is a Euclidean composition algebra with N x = xยฒ.
Equations
- One or more equations did not get rendered due to their size.
โ #
The real inner product on โ.
Equations
- Complex.ipBilin = LinearMap.mkโ โ (fun (x y : โ) => x.re * y.re + x.im * y.im) Complex.ipBilin._proof_1 Complex.ipBilin._proof_2 Complex.ipBilin._proof_3 Complex.ipBilin._proof_4
Instances For
โ 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
โ 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.
๐ #
The unit of ๐. Octonions.lean has only a def one.
Equations
- Octonion.instOne = { one := Octonion.one }
Equations
- One or more equations did not get rendered due to their size.
The Euclidean inner product on ๐, as a bilinear map.
Equations
Instances For
๐ 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
- Octonion.instCompositionAlgebra = { B := Octonion.ipBilin, B_symm := โฏ, B_pos := Octonion.instCompositionAlgebra._proof_1, B_comp := Octonion.instCompositionAlgebra._proof_2 }
The four dimensions #
1, 2, 4, 8. Hurwitz's theorem is the statement that these are the only ones.