Documentation

TauCeti.Algebra.CayleyDickson.Basic

The Cayley–Dickson double of a ring with involution #

For a possibly nonassociative ring A with an involution star, the Cayley–Dickson double CayleyDickson A is the set of ordered pairs ⟨a, b⟩ of elements of A, added coordinatewise and multiplied by

⟨a, b⟩ * ⟨c, d⟩ = ⟨a * c - star d * b, d * a + b * star c⟩,

with unit ⟨1, 0⟩ and the involution star ⟨a, b⟩ = ⟨star a, -b⟩. Doubling ℝ with its trivial involution gives ℂ, doubling ℂ gives the quaternions, and doubling the quaternions ℍ[ℝ] gives the octonions, the eight-dimensional real division algebra; the identities of the double of the quaternions are proved in TauCeti.Algebra.CayleyDickson.Quaternion.

The double of an associative ring is in general no longer associative, so it is a NonAssocRing and nothing more. This file builds that structure for every possibly nonassociative ring with involution: the additive and module structures, transported from A × A, the multiplication with its unit and integer casts, the involution, which reverses products, so that the double is again a ring with involution, and the two scalar towers for scalars acting on A compatibly with its product (and, for SMulCommClass, with its involution).

Main definitions #

Main results #

Implementation notes #

The double is a structure with two fields rather than the type A × A itself, so that it carries neither the coordinatewise product nor the coordinatewise involution of a product type. Several equivalent sign conventions for the product are in use; with the one chosen here the unit is ⟨1, 0⟩, the element ⟨0, 1⟩ squares to -1, and the involution is star ⟨a, b⟩ = ⟨star a, -b⟩, positive on the double of ℍ[ℝ].

References #

structure TauCeti.CayleyDickson (A : Type u_1) :
Type u_1

The Cayley–Dickson double of a ring with involution A: the ordered pairs ⟨fst, snd⟩ of elements of A, multiplied by ⟨a, b⟩ * ⟨c, d⟩ = ⟨a * c - star d * b, d * a + b * star c⟩.

  • fst : A

    The first coordinate of an element of the Cayley–Dickson double.

  • snd : A

    The second coordinate of an element of the Cayley–Dickson double.

Instances For
    theorem TauCeti.CayleyDickson.ext {A : Type u_1} {x y : CayleyDickson A} (fst : x.fst = y.fst) (snd : x.snd = y.snd) :
    x = y
    theorem TauCeti.CayleyDickson.ext_iff {A : Type u_1} {x y : CayleyDickson A} :
    x = y ↔ x.fst = y.fst ∧ x.snd = y.snd

    The additive and module structure #

    @[instance_reducible]
    @[simp]
    theorem TauCeti.CayleyDickson.zero_fst {A : Type u_2} [Zero A] :
    fst 0 = 0
    @[simp]
    theorem TauCeti.CayleyDickson.zero_snd {A : Type u_2} [Zero A] :
    snd 0 = 0
    @[instance_reducible]
    @[instance_reducible]
    @[simp]
    theorem TauCeti.CayleyDickson.one_fst {A : Type u_2} [Zero A] [One A] :
    fst 1 = 1
    @[simp]
    theorem TauCeti.CayleyDickson.one_snd {A : Type u_2} [Zero A] [One A] :
    snd 1 = 0
    @[instance_reducible]
    @[simp]
    theorem TauCeti.CayleyDickson.add_fst {A : Type u_2} [Add A] (x y : CayleyDickson A) :
    (x + y).fst = x.fst + y.fst
    @[simp]
    theorem TauCeti.CayleyDickson.add_snd {A : Type u_2} [Add A] (x y : CayleyDickson A) :
    (x + y).snd = x.snd + y.snd
    @[instance_reducible]
    @[simp]
    theorem TauCeti.CayleyDickson.neg_fst {A : Type u_2} [Neg A] (x : CayleyDickson A) :
    (-x).fst = -x.fst
    @[simp]
    theorem TauCeti.CayleyDickson.neg_snd {A : Type u_2} [Neg A] (x : CayleyDickson A) :
    (-x).snd = -x.snd
    @[instance_reducible]
    @[simp]
    theorem TauCeti.CayleyDickson.sub_fst {A : Type u_2} [Sub A] (x y : CayleyDickson A) :
    (x - y).fst = x.fst - y.fst
    @[simp]
    theorem TauCeti.CayleyDickson.sub_snd {A : Type u_2} [Sub A] (x y : CayleyDickson A) :
    (x - y).snd = x.snd - y.snd
    @[instance_reducible]
    instance TauCeti.CayleyDickson.instSMul {R : Type u_1} {A : Type u_2} [SMul R A] :
    @[simp]
    theorem TauCeti.CayleyDickson.smul_fst {R : Type u_1} {A : Type u_2} [SMul R A] (r : R) (x : CayleyDickson A) :
    (r • x).fst = r • x.fst
    @[simp]
    theorem TauCeti.CayleyDickson.smul_snd {R : Type u_1} {A : Type u_2} [SMul R A] (r : R) (x : CayleyDickson A) :
    (r • x).snd = r • x.snd
    @[instance_reducible]
    @[instance_reducible]
    @[simp]
    theorem TauCeti.CayleyDickson.natCast_fst {A : Type u_2} [Zero A] [NatCast A] (n : ℕ) :
    (↑n).fst = ↑n
    @[simp]
    theorem TauCeti.CayleyDickson.natCast_snd {A : Type u_2} [Zero A] [NatCast A] (n : ℕ) :
    (↑n).snd = 0
    @[instance_reducible]
    @[simp]
    theorem TauCeti.CayleyDickson.intCast_fst {A : Type u_2} [Zero A] [IntCast A] (z : ℤ) :
    (↑z).fst = ↑z
    @[simp]
    theorem TauCeti.CayleyDickson.intCast_snd {A : Type u_2} [Zero A] [IntCast A] (z : ℤ) :
    (↑z).snd = 0
    @[instance_reducible]

    The natural-number and integer casts of the double lie in the first coordinate.

    The coordinates of an element of the Cayley–Dickson double, as a linear isomorphism with A × A, over any semiring acting on A.

    Instances For
      @[simp]
      theorem TauCeti.CayleyDickson.linearEquivProd_symm_apply {R : Type u_1} {A : Type u_2} [Semiring R] [AddCommMonoid A] [Module R A] (p : A × A) :
      (linearEquivProd R A).symm p = { fst := p.1, snd := p.2 }

      The double has twice the dimension: an element is a pair of elements of A.

      The multiplication and the involution #

      @[instance_reducible]

      The Cayley–Dickson product ⟨a, b⟩ * ⟨c, d⟩ = ⟨a * c - star d * b, d * a + b * star c⟩.

      @[simp]
      theorem TauCeti.CayleyDickson.mul_fst {A : Type u_2} [NonAssocRing A] [StarRing A] (x y : CayleyDickson A) :
      (x * y).fst = x.fst * y.fst - star y.snd * x.snd
      @[simp]
      theorem TauCeti.CayleyDickson.mul_snd {A : Type u_2} [NonAssocRing A] [StarRing A] (x y : CayleyDickson A) :
      (x * y).snd = y.snd * x.fst + x.snd * star y.fst
      @[instance_reducible]

      The involution star ⟨a, b⟩ = ⟨star a, -b⟩ of the Cayley–Dickson double.

      @[simp]
      @[instance_reducible]

      The involution of the double reverses products, as the involution of A does, so the double is again a ring with involution.

      Scalars acting on A compatibly with its product and involution commute with left multiplication in the double.

      Scalars acting on A compatibly with its product associate with the product of the double.