Documentation

LeanPool.CompositionAlgebras.OctonionModule

The octonions as a real vector space #

CompositionAlgebras/Octonions.lean gives Octonion bare Zero/Add/Neg/SMul โ„ and Mul instances and no bundled algebraic class (no AddCommGroup, no Module). This file supplies AddCommGroup Octonion, Module โ„ Octonion, FiniteDimensional โ„ Octonion, finrank โ„ ๐•† = 8, linearity of conjugation, and the Euclidean form octIp.

Every module data field is the pre-existing instance on the nose, so no +, โ€ข or 0 in the octonion file changes meaning and its @[simp] coordinate lemmas keep firing. They live here rather than in Octonions.lean only to keep that file untouched.

Composition/Instances.lean needs exactly this: without AddCommGroup and Module โ„ there is no Module โ„ Octonion for CompositionAlgebra Octonion to be stated over.

Main definitions #

Main results #

Octonion as an โ„-module #

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

Conjugation is additive.

@[simp]

Conjugation is โ„-homogeneous; with conj_add, conj is โ„-linear.

@[simp]
theorem Octonion.mul_zero' (x : Octonion) :
x.mul 0 = 0
@[simp]
theorem Octonion.zero_mul' (x : Octonion) :
mul 0 x = 0

The Euclidean inner product on ๐•† #

octIp x y = โˆ‘แตข xแตข yแตข is the standard positive-definite form. octIp_eq_re identifies it with the trace form re (x * conj y) of OctonionTrace.lean, which is how the cyclic identities there reach the trace form on hermitian octonionic matrices.

The Euclidean inner product on the octonions.

Equations
Instances For
    @[simp]
    theorem Octonion.octIp_add_left (x y z : Octonion) :
    (x + y).octIp z = x.octIp z + y.octIp z
    @[simp]
    theorem Octonion.octIp_smul_left (r : โ„) (x y : Octonion) :
    (r โ€ข x).octIp y = r * x.octIp y
    @[simp]
    theorem Octonion.octIp_add_right (x y z : Octonion) :
    x.octIp (y + z) = x.octIp y + x.octIp z
    @[simp]
    theorem Octonion.octIp_smul_right (r : โ„) (x y : Octonion) :
    x.octIp (r โ€ข y) = r * x.octIp y
    @[simp]
    @[simp]
    theorem Octonion.octIp_self_eq_zero {x : Octonion} (h : x.octIp x = 0) :
    x = 0
    theorem Octonion.octIp_eq_re (x y : Octonion) :
    x.octIp y = (x.mul y.conj).re

    The Euclidean inner product is the trace form: โŸจx, yโŸฉ = re (x * conj y). This is the bridge to OctonionTrace.lean.

    theorem Octonion.re_three_cyc (x y z : Octonion) :
    ((x.mul y).mul z).re = ((y.mul z).mul x).re

    Cyclic invariance of the real part of a triple product. re_mul_assoc moves the bracket, re_mul_comm rotates the factors.

    theorem Octonion.octIp_conj_cyc (a b c : Octonion) :
    (a.conj.mul b.conj).octIp c = (b.conj.mul c.conj).octIp a

    Cyclic rotation of a conjugated triple, in the octIp vocabulary the trace form on hermitian octonionic matrices is written in. This and octIp_conj_cyc' are the only octonionic input that form's Euclidean hypothesis needs.

    theorem Octonion.octIp_conj_cyc' (a b c : Octonion) :
    (a.conj.mul b.conj).octIp c = (c.conj.mul a.conj).octIp b

    Cyclic rotation the other way.

    Coordinates of an octonion, as a linear equivalence with Fin 8 โ†’ โ„.

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

      The octonions are 8-dimensional over โ„.