The Cayley–Dickson double as an external type former #
Composition/Doubling.lean doubles inside a composition algebra C: given a composition
subalgebra A ≤ C and a unit u ⊥ A, the submodule A ⊕ A u is again a composition
subalgebra. That is all Hurwitz's dimension bound needs, and it is cheap because the
composition law of C is already available.
The classification needs the other half: a functor D ↦ CD D producing a new algebra,
so that the chain of subalgebras can be identified with concrete carriers rather than merely
counted. This file builds it.
Main definitions #
CompositionAlgebra.CD D— the doubleD × Dwith(a,b)(c,d) = (a c - d* b, d a + b c*)and1 = (1,0).CompositionAlgebra.CD.bilin— the form⟪(a,b), (c,d)⟫ = ⟪a,c⟫ + ⟪b,d⟫.
Main results #
CD.instNonAssocRing,CD.instModule, and the two bilinearity classes —CD Dis a bilinear unital ring overℝwheneverDis.CD.instCompositionAlgebra—CD Dis a Euclidean composition algebra whenDis nontrivial and associative. Associativity is used exactly once, in the cross term of the composition law: expandingN((a,b)(c,d)) = N(a,b) N(c,d)leaves the residue⟪d a, b c*⟫ = ⟪a c, d* b⟫, and the two adjoint identities turn each side into⟪a, (d* b) c*⟫and⟪a, d* (b c*)⟫respectively.
★ This is the same mechanism as IsCompSubalgebra.forced_assoc, read in the other direction:
there, multiplicativity of the norm on A ⊕ A u is free (it is inherited from C) and forces
A associative; here, D associative is a hypothesis and buys multiplicativity of the norm on
the new type.
Note on the conjugation #
CD is built over CompositionAlgebra D, whose conjugation cstar is derived from the form
rather than supplied as a Star structure. An upstreamed version would take [Star D] and a
StarRing hypothesis; here the derived conjugation keeps the four concrete instantiations free
of bridging lemmas.
Scope #
Substrate for the classification. The headline declaration is the instance
CD.instCompositionAlgebra; the classification itself is
Composition/Classification.lean.
The Cayley–Dickson double of D: the module D × D with the product
(a,b)(c,d) = (a c - d* b, d a + b c*) and unit (1,0).
Kept as a type synonym rather than a structure so that the additive and ℝ-module structure
transfer from Prod verbatim; the product and the unit are the only new data.
Equations
- CompositionAlgebra.CD D = (D × D)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- CompositionAlgebra.CD.instModule = { smul := CompositionAlgebra.CD.instModule._aux_1, mul_smul := ⋯, one_smul := ⋯, smul_zero := ⋯, smul_add := ⋯, add_smul := ⋯, zero_smul := ⋯ }
Assemble an element of the double from its two components.
Equations
- CompositionAlgebra.CD.mk a b = (a, b)
Instances For
Equations
- CompositionAlgebra.CD.instOne = { one := CompositionAlgebra.CD.mk 1 0 }
Equations
- One or more equations did not get rendered due to their size.
The ring structure #
Equations
- One or more equations did not get rendered due to their size.
The form #
The form of the double: ⟪(a,b), (c,d)⟫ = ⟪a,c⟫ + ⟪b,d⟫.
Equations
- CompositionAlgebra.CD.bilin = LinearMap.mk₂ ℝ (fun (x y : CompositionAlgebra.CD D) => CompositionAlgebra.ip x.fst y.fst + CompositionAlgebra.ip x.snd y.snd) ⋯ ⋯ ⋯ ⋯
Instances For
The cross term of the composition law. This is the only step of
compositionAlgebraOfAssoc that uses associativity of D, and it is the same identity that
IsCompSubalgebra.forced_assoc reads in the opposite direction.
The Cayley–Dickson double of an associative composition algebra is a composition
algebra. Stated as a def taking associativity as an explicit hypothesis; the instance for
[Ring D] is instCompositionAlgebra below.
Equations
- CompositionAlgebra.CD.compositionAlgebraOfAssoc hassoc = { B := CompositionAlgebra.CD.bilin, B_symm := ⋯, B_pos := ⋯, B_comp := ⋯ }
Instances For
The double of an associative composition algebra #
CD D is a Euclidean composition algebra whenever D is an associative one.
The conjugation of the double negates the second component.