Documentation

LeanPool.CompositionAlgebrasOverRings.Composition.Reduced.TwistedZorn

Twisted Zorn vector matrices (GPR 22.14) #

For M a k-module equipped with a pair of associated vector products (Module.VectorProductPair), the twisted Zorn vector matrices are the formal matrices

[ρ₁ u*] [v ρ₂], ρᵢ ∈ k, u* ∈ M*, v ∈ M,

multiplied by GPR (22.14.3)

[ρ₁ v*] [σ₁ w*] [ρ₁σ₁ - ⟨v*, w⟩ ρ₁w* + σ₂v* + v × w] [v ρ₂] [w σ₂] = [σ₁v + ρ₂w + v* × w* ρ₂σ₂ - ⟨w*, v⟩ ],

Its norm is ρ₁ρ₂ + ⟨u*, v⟩ and its trace is ρ₁ + ρ₂. With the usual conjugation, it is the octonion analogue of Conic/../TwistedMatrix.lean: there the off-diagonal entries multiply through the canonical pairing alone, here they also multiply through the two vector products.

GPR 22.14 builds the pair of vector products from an orientation θ : ⋀³ M ≅ k of a projective module of rank three, and calls the result Zor(M, θ). By GPR 22.15 (Petersson) every reduced octonion algebra is one of these, and Zor(M, θ) is split when M is free (GPR asserts only this implication).

What is proved here #

Combined with Module.VectorProductPair.ofBasis, this produces a composition algebra of rank eight over any commutative ring out of any free module of rank three — the split case, and the case GPR 22.14's localization argument reduces to. The coordinate isomorphism isomorphic_twistedZor_ofBasis proves that this free case is exactly Zor(k) from GPR 21.18.

Main definitions #

Main results #

Implementation notes #

⚠ The sign of the norm. GPR (22.14.4) prints n = ρ₁ρ₂ - ⟨u*, v⟩, but the norm of these algebras is ρ₁ρ₂ + ⟨u*, v⟩, which is used here. The two cannot both be right: the multiplication GPR (22.14.3) specializes, for M = k³ with the standard orientation, to the multiplication GPR (21.18.4) of ordinary Zorn vector matrices, whose norm is ρ₁ρ₂ + u₁ᵀu₂ by GPR (21.18.6) — the sign difference from the quaternion case GPR (22.12.1) is already present in GPR, and comes from the diagonal entries of (22.14.3) carrying a minus sign where those of (22.12.1) carry a plus. The + sign is also what the Peirce norm formula ConicAlgebra.IsElementaryIdempotent.norm_peirceElement gives, under the identification of C₁₂ with M* by the positive polar duality that GPR 22.15's own proof uses.

The multiplication is not the componentwise one, so TwistedZor is a type synonym; it is indexed by the vector product pair P, not merely by M, because the multiplication depends on P. This is the same device as ConicAlgebra.Cay, which is indexed by the conic structure and the scalar.

Orientation and converse #

Composition/Reduced/Orientation.lean constructs the pair from an orientation of a constant-rank-three finite projective module over any commutative ring, by the unbased local exterior-power duality argument in GPR 21.7. The converse GPR 22.15 is proved in Composition/Reduced/RankEight.lean.

References #

def ConicAlgebra.TwistedZor {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] (_P : Module.VectorProductPair k M) :
Type (max u v)

The k-module of twisted Zorn vector matrices attached to a vector product pair (GPR 22.14), as a type synonym for (k × M*) × (k × M): the element x is the matrix

[x.1.1 x.1.2] [x.2.2 x.2.1]

whose top row is x.1 = (ρ₁, u*) and whose bottom row is (x.2.2, x.2.1) = (v, ρ₂). The grouping puts the two diagonal entries first in their pairs, so that the norm is visibly the pairing of x.1 against x.2.

Equations
Instances For
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[instance_reducible]
    Equations
    theorem ConicAlgebra.TwistedZor.ext {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} {x y : TwistedZor P} (h₁ : x.1.1 = y.1.1) (h₂ : x.1.2 = y.1.2) (h₃ : x.2.1 = y.2.1) (h₄ : x.2.2 = y.2.2) :
    x = y

    Two twisted Zorn vector matrices agree as soon as their four entries do.

    @[simp]
    theorem ConicAlgebra.TwistedZor.fst_zero {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} :
    0.1 = 0
    @[simp]
    theorem ConicAlgebra.TwistedZor.snd_zero {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} :
    0.2 = 0
    @[simp]
    theorem ConicAlgebra.TwistedZor.fst_add {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
    (x + y).1 = x.1 + y.1
    @[simp]
    theorem ConicAlgebra.TwistedZor.snd_add {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
    (x + y).2 = x.2 + y.2
    @[simp]
    theorem ConicAlgebra.TwistedZor.fst_neg {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x : TwistedZor P) :
    (-x).1 = -x.1
    @[simp]
    theorem ConicAlgebra.TwistedZor.snd_neg {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x : TwistedZor P) :
    (-x).2 = -x.2
    @[simp]
    theorem ConicAlgebra.TwistedZor.fst_sub {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
    (x - y).1 = x.1 - y.1
    @[simp]
    theorem ConicAlgebra.TwistedZor.snd_sub {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
    (x - y).2 = x.2 - y.2
    @[simp]
    theorem ConicAlgebra.TwistedZor.fst_smul {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (c : k) (x : TwistedZor P) :
    (c • x).1 = c • x.1
    @[simp]
    theorem ConicAlgebra.TwistedZor.snd_smul {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (c : k) (x : TwistedZor P) :
    (c • x).2 = c • x.2
    @[instance_reducible]

    Multiplication of twisted Zorn vector matrices, GPR (22.14.3): the entries of M* and of M multiply through the canonical pairing on the diagonal and through the two vector products off it.

    Equations
    • One or more equations did not get rendered due to their size.
    @[instance_reducible]

    The identity matrix.

    Equations
    @[simp]
    theorem ConicAlgebra.TwistedZor.mul_fst_fst {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
    (x * y).1.1 = x.1.1 * y.1.1 - x.1.2 y.2.2
    @[simp]
    theorem ConicAlgebra.TwistedZor.mul_fst_snd {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
    (x * y).1.2 = x.1.1 • y.1.2 + y.2.1 • x.1.2 + (P.cross x.2.2) y.2.2
    @[simp]
    theorem ConicAlgebra.TwistedZor.mul_snd_fst {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
    (x * y).2.1 = x.2.1 * y.2.1 - y.1.2 x.2.2
    @[simp]
    theorem ConicAlgebra.TwistedZor.mul_snd_snd {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
    (x * y).2.2 = y.1.1 • x.2.2 + x.2.1 • y.2.2 + (P.crossDual x.1.2) y.1.2
    @[simp]
    theorem ConicAlgebra.TwistedZor.one_fst_fst {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} :
    1.1.1 = 1
    @[simp]
    theorem ConicAlgebra.TwistedZor.one_fst_snd {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} :
    1.1.2 = 0
    @[simp]
    theorem ConicAlgebra.TwistedZor.one_snd_fst {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} :
    1.2.1 = 1
    @[simp]
    theorem ConicAlgebra.TwistedZor.one_snd_snd {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} :
    1.2.2 = 0
    @[instance_reducible]
    Equations
    • One or more equations did not get rendered due to their size.

    The norm #

    n = ρ₁ρ₂ + ⟨u*, v⟩ pairs the top row against the bottom row, with the bottom row read in k ⊕ M and the top row in its dual. That is what makes it hyperbolic, and it is why no rank hypothesis and no basis is needed for non-singularity.

    The linear equivalence presenting a twisted Zorn vector matrix as an element of (k ⊕ M)* ⊕ (k ⊕ M), under which the norm becomes the hyperbolic form QuadraticForm.dualProd k (k × M). The sign on the dual coordinate compensates the one built into ConicAlgebra.dualProdEquiv, which was chosen for the quaternion norm ρ₁ρ₂ - ⟨u*, v⟩ of GPR (22.12.1).

    Equations
    Instances For

      The norm of a twisted Zorn vector matrix, GPR (22.14.4): n = ρ₁ρ₂ + ⟨u*, v⟩.

      ⚠ GPR (22.14.4) prints a minus sign; see the module docstring for why it must be a plus.

      Equations
      Instances For
        @[simp]
        theorem ConicAlgebra.twistedZorNorm_apply {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x : TwistedZor P) :
        (twistedZorNorm P) x = x.1.1 * x.2.1 + x.1.2 x.2.2
        theorem ConicAlgebra.polar_twistedZorNorm {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x y : TwistedZor P) :
        QuadraticMap.polar (⇑(twistedZorNorm P)) x y = x.1.1 * y.2.1 + y.1.1 * x.2.1 + x.1.2 y.2.2 + y.1.2 x.2.2
        @[simp]
        theorem ConicAlgebra.polar_twistedZorNorm_one {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x : TwistedZor P) :
        QuadraticMap.polar (⇑(twistedZorNorm P)) 1 x = x.1.1 + x.2.1

        GPR 22.14: the twisted Zorn vector matrices form a conic algebra, with norm ρ₁ρ₂ + ⟨u*, v⟩ and trace ρ₁ + ρ₂. The degree-two identity uses only that the two products are alternating; no other axiom, no hypothesis on M, and none on 2.

        Equations
        Instances For
          @[simp]
          theorem ConicAlgebra.trace_twistedZor_apply {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x : TwistedZor P) :
          (twistedZor P).trace x = x.1.1 + x.2.1

          The trace of a twisted Zorn vector matrix is the trace of the matrix, GPR (22.14.5).

          @[simp]
          theorem ConicAlgebra.conj_twistedZor_apply {k : Type u} {M : Type v} [CommRing k] [AddCommGroup M] [Module k M] {P : Module.VectorProductPair k M} (x : TwistedZor P) :
          (twistedZor P).conj x = ((x.2.1, -x.1.2), x.1.1, -x.2.2)

          The conjugation exchanges the diagonal entries and negates the off-diagonal ones, GPR (22.14.6).

          Non-singularity, multiplicativity, and the composition algebra #

          The norm of the twisted Zorn vector matrices is non-singular for M finitely generated projective: it is the hyperbolic form of k ⊕ M. No rank hypothesis and no hypothesis on 2.

          The norm of the twisted Zorn vector matrices is regular for M finitely generated projective: it is the hyperbolic form of k ⊕ M, transported along a linear equivalence. This is stronger than the non-singularity needed for composition and requires no hypothesis on 2.

          The twisted Zorn norm has zero radical when M is finitely generated projective.

          The norm of the twisted Zorn vector matrices permits composition, n(xy) = n(x)n(y).

          This is where the vector-product axioms are consumed, and they are consumed exactly: of the nine terms of the off-diagonal pairing, four vanish by orthogonality of a product to its own arguments and one is ⟨v × w, v* × w*⟩, which Binet–Cauchy turns into the two remaining products of pairings; what is left cancels identically. No hypothesis on M.

          GPR 22.14: twisted Zorn vector matrices are alternative when M is finitely generated projective. The hyperbolic norm is regular, hence has zero radical, so Kirmse's theorem applies to the multiplicative conic structure. No hypothesis on 2 and no direct Grassmann-identity calculation is needed.

          The twisted Zorn vector matrices form a composition algebra, for M finitely generated projective carrying a vector product pair. With Module.VectorProductPair.ofBasis this gives a composition algebra of rank eight over any commutative ring, with no hypothesis on 2; by GPR 22.14 it is Zor(M, θ) whenever the pair comes from an orientation of a rank-three module.

          The twisted Zorn vector matrices are reduced. The matrix unit e₁₁ of GPR (22.14.7) has norm 0 and trace 1, so it is an elementary idempotent and GPR 22.9 applies: the norm is isotropic and the algebra contains a split quadratic étale subalgebra. No hypothesis on M.

          The free case #

          When the vector product pair comes from a basis of M, reading the two off-diagonal entries in the coordinates of that basis and its dual identifies the twisted construction with Zor(k). Thus Module.VectorProductPair.ofBasis produces exactly the split octonion algebra, independently of the chosen basis.

          The coordinate equivalence from the twisted Zorn algebra attached to a basis to the split Zorn algebra. The lower-left entry uses the coordinates of b, while the upper-right entry uses the coordinates of the dual basis.

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

            The coordinate equivalence preserves the identity matrix.

            The coordinate equivalence preserves multiplication.

            The norm isometry from the basis-built twisted Zorn algebra to the split Zorn algebra.

            Equations
            Instances For

              The free case of GPR 22.14: a twisted Zorn algebra whose vector products come from a basis is isomorphic to the split Zorn algebra Zor(k) of GPR 21.18.

              Any twisted Zorn algebra on a module admitting a basis of size three is split. Binet–Cauchy forces its vector-product pair to be the pair attached to a suitably rescaled basis.

              Any twisted Zorn algebra on a module admitting a basis of size three satisfies the rank-eight splitness clause of GPR 21.19(d).

              A basis-built twisted Zorn algebra is alternative, because its coordinate equivalence identifies its multiplication with that of the alternative algebra Zor(k). This proves the free case of the alternativity assertion in GPR 22.14 without any hypothesis on 2.

              @[simp]

              A basis-built twisted Zorn algebra has rank eight.

              The basis-built twisted Zorn algebra satisfies the rank-eight splitness clause of GPR 21.19(d).