Documentation

LeanPool.CompositionAlgebrasOverRings.Conic.Doubling

Doubling inside an ambient conic algebra (GPR 18.1) #

Let A be a conic alternative algebra, B ⊆ A a unital subalgebra, and v ∈ A an element orthogonal to B — n(b, v) = 0 for every b ∈ B — whose norm is a unit. Then the three identities

x(yv) = (yx)v, (xv)y = (x (conj y))v, (xv)(yv) = -n(v) ((conj y) x) (x, y ∈ B)

hold. They are exactly the three clauses of the Cayley–Dickson multiplication (u₁ + v₁j)(u₂ + v₂j) = (u₁u₂ + μ (conj v₂)v₁) + (v₂u₁ + v₁(conj u₂)) j with μ = -n(v), so B + Bv is a copy of Cay(B, μ) sitting inside A. Conic/CayleyDickson.lean builds Cay(B, μ) externally; this file is the internal counterpart, and the comparison between the two is ConicAlgebra.cayToAlgebra.

The mechanism #

Everything rests on one unconditional observation. The linearized degree-two identity xy + yx = t(x)y + t(y)x - n(x,y)·1 (ConicAlgebra.mul_add_mul, valid in every conic algebra) collapses, for x ∈ B and v ⊥ B, to

xv = v (conj x), vx = (conj x) v

(ConicAlgebra.mul_eq_mul_conj, ConicAlgebra.mul_eq_conj_mul): orthogonality to B turns multiplication by v into a twisted commutation rule. Note 1 ∈ B, so t(v) = n(1, v) = 0 and hence conj v = -v and v² = -n(v)·1.

Given that rule, the three identities follow from the alternative laws alone — the alternating property of the associator, the middle Moufang identity (ab)(ca) = a(bc)a, and flexibility — together with n(v) being a unit, which lets right multiplication by v be cancelled: (zv)v = -n(v)z.

Why no regularity hypothesis #

GPR 19.3 produces alternativity of a composition algebra from the vanishing of the radical of its norm, which over a general commutative ring is not implied by non-singularity (see Composition/Basic.lean). Alternativity is therefore assumed here rather than derived, as an honest hypothesis on a conic algebra. For a composition algebra it is automatic over every commutative ring (ConicAlgebra.IsComposition.isAlternative_general, Composition/Alternative.lean, which this layer may not import).

What is not assumed is any regularity of the norm — not on A, not on B. The three identities below are cancellation statements proved by multiplying by v and using n(v) ∈ kˣ, so no non-degeneracy of the ambient norm is used anywhere. Nor is B assumed associative, nor multiplicativity of the norm; those enter only when the norm of the doubled algebra is computed.

Main definitions #

Main results #

References #

An element of trace zero #

theorem ConicAlgebra.conj_eq_neg_of_trace_eq_zero {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] {C : ConicAlgebra k A} {v : A} (htv : C.trace v = 0) :
C.conj v = -v

An element of trace zero is the negative of its conjugate.

theorem ConicAlgebra.mul_self_of_trace_eq_zero {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] {C : ConicAlgebra k A} {v : A} (htv : C.trace v = 0) :
v * v = -(C.norm v • 1)

The degree-two identity for an element of trace zero: v² = -n(v)·1.

theorem ConicAlgebra.mul_mul_self_of_trace_eq_zero {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] {C : ConicAlgebra k A} {v : A} (htv : C.trace v = 0) [IsAlternative A] (z : A) :
z * v * v = -(C.norm v • z)

Right multiplication by v squares to -n(v): (zv)v = -n(v)·z, for v of trace zero and any z. This is the cancellation device of the whole file; it consumes right alternativity and nothing else.

theorem ConicAlgebra.eq_zero_of_mul_eq_zero {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] {C : ConicAlgebra k A} {v : A} (htv : C.trace v = 0) [IsAlternative A] (hu : IsUnit (C.norm v)) {d : A} (hd : d * v = 0) :
d = 0

Cancelling v. If n(v) is a unit then right multiplication by v is injective, so an element killed by v is zero.

An element orthogonal to a subalgebra #

theorem ConicAlgebra.conj_mem {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] {C : ConicAlgebra k A} {B : NonAssocSubalgebra k A} {b : A} (hb : b ∈ B) :
C.conj b ∈ B

A unital subalgebra is closed under conjugation, since conj b = t(b)·1 - b.

theorem ConicAlgebra.trace_eq_zero_of_orthogonal {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) :
C.trace v = 0

An element orthogonal to a unital subalgebra has trace zero: the unit lies in the subalgebra, and t(v) = n(1, v).

theorem ConicAlgebra.mul_eq_mul_conj {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) {x : A} (hx : x ∈ B) :
x * v = v * C.conj x

The commutation rule, first form: xv = v (conj x) for x ∈ B and v ⊥ B.

This holds in every conic algebra — no alternativity, no regularity, no hypothesis on 2. It is the linearized degree-two identity xy + yx = t(x)y + t(y)x - n(x,y)·1 with y = v, where both t(v) and n(x, v) vanish.

theorem ConicAlgebra.mul_eq_conj_mul {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) {x : A} (hx : x ∈ B) :
v * x = C.conj x * v

The commutation rule, second form: vx = (conj x) v for x ∈ B and v ⊥ B.

theorem ConicAlgebra.mul_mul_eq_neg_smul_conj {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) [IsAlternative A] {c : A} (hc : c ∈ B) :
v * c * v = -(C.norm v • C.conj c)

Conjugating by v: (vc)v = -n(v) (conj c) for c ∈ B.

theorem ConicAlgebra.conj_mul_orthogonal {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) (hconj : C.ConjIsInvolution) {x : A} (hx : x ∈ B) :
C.conj (x * v) = -(x * v)

xv has trace zero for x ∈ B: conjugation negates it.

theorem ConicAlgebra.mul_orthogonal_mul_orthogonal_mul {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) [IsAlternative A] (hconj : C.ConjIsInvolution) {x y : A} (hx : x ∈ B) (hy : y ∈ B) :
x * v * (v * y) = -(C.norm v • (y * x))

(xv)(vy) = -n(v)(yx) for x, y ∈ B.

The two commutation rules put the product in the shape (vb)(cv) of the middle Moufang identity (ab)(ca) = a(bc)a, and flexibility then turns v(bc)v into a single conjugation by v.

theorem ConicAlgebra.mul_orthogonal_mul_mul_orthogonal {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) [IsAlternative A] (hconj : C.ConjIsInvolution) {x y : A} (hx : x ∈ B) (hy : y ∈ B) :
x * v * (y * v) = -(C.norm v • (C.conj y * x))

GPR 18.1(3): (xv)(yv) = -n(v)((conj y)x) for x, y ∈ B.

This is the first component of the Cayley–Dickson product (0 + v₁j)(0 + v₂j) = μ (conj v₂)v₁, with μ = -n(v).

theorem ConicAlgebra.mul_mul_orthogonal {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) [IsAlternative A] (hconj : C.ConjIsInvolution) (hu : IsUnit (C.norm v)) {x y : A} (hx : x ∈ B) (hy : y ∈ B) :
x * (y * v) = y * x * v

GPR 18.1(1): x(yv) = (yx)v for x, y ∈ B.

Both sides are cancelled against v on the right: ((yx)v)v = -n(v)(yx) at once, while (x(yv))v is unwound by moving the associator ⁅x, yv, v⁆ around its cyclic orbit to ⁅yv, v, x⁆, whose two terms are -n(v)(yx) and -n(v)(xy). The xy terms cancel.

theorem ConicAlgebra.mul_orthogonal_mul {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) [IsAlternative A] (hconj : C.ConjIsInvolution) (hu : IsUnit (C.norm v)) {x y : A} (hx : x ∈ B) (hy : y ∈ B) :
x * v * y = x * C.conj y * v

GPR 18.1(2): (xv)y = (x (conj y))v for x, y ∈ B.

Conjugating GPR 18.1(1) at the pair (conj y, x) turns it into this, because conjugation is an anti-homomorphism and negates every element of Bv.

The comparison with the external double #

def ConicAlgebra.cayToAlgebra {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [IsScalarTower k A A] (C : ConicAlgebra k A) (B : NonAssocSubalgebra k A) (v : A) :
(C.restrict B).Cay (-C.norm v) →ₗ[k] A

The internal doubling map Cay(B, -n(v)) → A, u + wj ↦ u + wv (GPR 18.1).

It is defined for every v, with no orthogonality or invertibility hypothesis; those are what make it multiplicative (ConicAlgebra.cayToAlgebra_mul) and injective (ConicAlgebra.cayToAlgebra_injective). The Cayley–Dickson scalar is forced to be -n(v), which is GPR 18.1's μ.

Equations
Instances For
    @[simp]
    theorem ConicAlgebra.cayToAlgebra_apply {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (p : (C.restrict B).Cay (-C.norm v)) :
    (C.cayToAlgebra B v) p = ↑p.1 + ↑p.2 * v
    theorem ConicAlgebra.cayToAlgebra_one {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} :
    (C.cayToAlgebra B v) 1 = 1

    The internal doubling map is unital.

    theorem ConicAlgebra.polar_mul_orthogonal {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) (hmul : C.IsMultiplicative) {b w : A} (hb : b ∈ B) (hw : w ∈ B) :
    QuadraticMap.polar (⇑C.norm) b (w * v) = 0

    B ⊥ Bv. Norm-associativity moves the v across the polar form, where orthogonality to B kills it: n(b, wv) = n((conj w)b, v) = 0. This is what makes the internal doubling map an isometry onto its image, and needs the norm to be multiplicative.

    theorem ConicAlgebra.norm_cayToAlgebra {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) (hmul : C.IsMultiplicative) (p : (C.restrict B).Cay (-C.norm v)) :
    C.norm ((C.cayToAlgebra B v) p) = ((C.restrict B).cay (-C.norm v)).norm p

    The internal doubling map is an isometry: it carries the Cayley–Dickson norm n_B ⊥ ⟨n(v)⟩ n_B to the ambient norm. This is GPR 18.1's norm formula, and it uses multiplicativity (for n(wv) = n(w)n(v)) and B ⊥ Bv.

    theorem ConicAlgebra.polar_cayToAlgebra {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) (hmul : C.IsMultiplicative) (p q : (C.restrict B).Cay (-C.norm v)) :
    QuadraticMap.polar (⇑C.norm) ((C.cayToAlgebra B v) p) ((C.cayToAlgebra B v) q) = QuadraticMap.polar (⇑((C.restrict B).cay (-C.norm v)).norm) p q

    The polar form of the Cayley–Dickson norm is the ambient polar form, pulled back.

    theorem ConicAlgebra.cayToAlgebra_mul {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) [IsAlternative A] (hconj : C.ConjIsInvolution) (hu : IsUnit (C.norm v)) (p q : (C.restrict B).Cay (-C.norm v)) :
    (C.cayToAlgebra B v) (p * q) = (C.cayToAlgebra B v) p * (C.cayToAlgebra B v) q

    GPR 18.1. The internal doubling map is multiplicative: B + Bv really is a copy of Cay(B, -n(v)) inside A.

    The three components of the Cayley–Dickson product are the three identities of this file, and μ = -n(v) is forced by the last of them.

    theorem ConicAlgebra.cayToAlgebra_injective {k : Type u} {A : Type v} [CommRing k] [NonAssocRing A] [Module k A] [SMulCommClass k A A] [IsScalarTower k A A] {C : ConicAlgebra k A} {v : A} {B : NonAssocSubalgebra k A} (hBv : ∀ b ∈ B, QuadraticMap.polar (⇑C.norm) b v = 0) (hu : IsUnit (C.norm v)) (hmul : C.IsMultiplicative) (hreg : (C.restrict B).norm.IsGPRRegular) :

    The internal doubling map is injective, as soon as the radical of the restricted norm vanishes and n(v) is a unit.

    The map is an isometry, so its kernel lands in the radical of the Cayley–Dickson norm n_B ⊥ ⟨n(v)⟩ n_B, which vanishes by GN (C.8.3): the first summand has injective polar form and rescaling by a unit does not change a radical.

    ⚠ Regularity of n|_B — not merely a vanishing radical — is what GN (C.8.3) consumes, and the asymmetry is real: in characteristic 2 the non-singular form ⟨1⟩ doubles to ⟨1⟩ ⊥ ⟨1⟩, whose radical is nonzero. This is the same hypothesis ConicAlgebra.IsComposition.cay carries on the constructive side.