Documentation

Mathlib.LinearAlgebra.CliffordAlgebra.Contraction

Contraction in Clifford Algebras #

This file contains some of the results from [grinberg_clifford_2016][]. The key result is CliffordAlgebra.equivExterior.

Main definitions #

Implementation notes #

This file somewhat follows [grinberg_clifford_2016][], although we are missing some of the induction principles needed to prove many of the results. Here, we avoid the quotient-based approach described in [grinberg_clifford_2016][], instead directly constructing our objects using the universal property.

Note that [grinberg_clifford_2016][] concludes that its contents are not novel, and are in fact just a rehash of parts of [bourbaki2007][]; we should at some point consider swapping our references to refer to the latter.

Within this file, we use the local notation

@[simp]
theorem CliffordAlgebra.contractLeftAux_apply_apply {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (d : Module.Dual R M) (a : M) (a✝ : CliffordAlgebra Q × CliffordAlgebra Q) :
((contractLeftAux Q d) a) a✝ = d a a✝.1 - (ι Q) a * a✝.2
theorem CliffordAlgebra.contractLeftAux_contractLeftAux {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (d : Module.Dual R M) (v : M) (x fx : CliffordAlgebra Q) :
((contractLeftAux Q d) v) ((ι Q) v * x, ((contractLeftAux Q d) v) (x, fx)) = Q v fx

Contract an element of the Clifford algebra with an element d : Module.Dual R M from the left.

Note that $v ⌋ x$ is spelt contractLeft (Q.associated v) x.

This includes [grinberg_clifford_2016][] Theorem 10.75

Equations
    Instances For

      Contract an element of the Clifford algebra with an element d : Module.Dual R M from the right.

      Note that $x ⌊ v$ is spelt contractRight x (Q.associated v).

      This includes [grinberg_clifford_2016][] Theorem 16.75

      Equations
        Instances For
          theorem CliffordAlgebra.contractLeft_ι_mul {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} (d : Module.Dual R M) (a : M) (b : CliffordAlgebra Q) :
          (contractLeft d) ((ι Q) a * b) = d a b - (ι Q) a * (contractLeft d) b

          This is [grinberg_clifford_2016][] Theorem 6

          theorem CliffordAlgebra.contractRight_mul_ι {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} (d : Module.Dual R M) (a : M) (b : CliffordAlgebra Q) :
          (contractRight (b * (ι Q) a)) d = d a b - (contractRight b) d * (ι Q) a

          This is [grinberg_clifford_2016][] Theorem 12

          @[simp]
          theorem CliffordAlgebra.contractLeft_ι {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (d : Module.Dual R M) (x : M) :
          (contractLeft d) ((ι Q) x) = (algebraMap R (CliffordAlgebra Q)) (d x)
          @[simp]
          theorem CliffordAlgebra.contractRight_ι {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (d : Module.Dual R M) (x : M) :
          (contractRight ((ι Q) x)) d = (algebraMap R (CliffordAlgebra Q)) (d x)
          @[simp]
          theorem CliffordAlgebra.contractLeft_algebraMap {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (d : Module.Dual R M) (r : R) :
          @[simp]
          theorem CliffordAlgebra.contractRight_algebraMap {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (d : Module.Dual R M) (r : R) :
          @[simp]
          theorem CliffordAlgebra.contractLeft_one {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (d : Module.Dual R M) :
          (contractLeft d) 1 = 0
          @[simp]
          theorem CliffordAlgebra.contractRight_one {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (d : Module.Dual R M) :
          theorem CliffordAlgebra.contractLeft_contractLeft {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} (d : Module.Dual R M) (x : CliffordAlgebra Q) :

          This is [grinberg_clifford_2016][] Theorem 7

          This is [grinberg_clifford_2016][] Theorem 13

          theorem CliffordAlgebra.contractLeft_comm {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} (d d' : Module.Dual R M) (x : CliffordAlgebra Q) :

          This is [grinberg_clifford_2016][] Theorem 8

          theorem CliffordAlgebra.contractRight_comm {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q : QuadraticForm R M} (d d' : Module.Dual R M) (x : CliffordAlgebra Q) :

          This is [grinberg_clifford_2016][] Theorem 14

          Auxiliary construction for CliffordAlgebra.changeForm

          Equations
            Instances For
              @[simp]
              theorem CliffordAlgebra.changeFormAux_apply_apply {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (B : LinearMap.BilinForm R M) (a : M) (a✝ : CliffordAlgebra Q) :
              ((changeFormAux Q B) a) a✝ = (ι Q) a * a✝ - (contractLeft (B a)) a✝
              theorem CliffordAlgebra.changeFormAux_changeFormAux {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] (Q : QuadraticForm R M) (B : LinearMap.BilinForm R M) (v : M) (x : CliffordAlgebra Q) :
              ((changeFormAux Q B) v) (((changeFormAux Q B) v) x) = (Q v - (B v) v) x

              Convert between two algebras of different quadratic forms, sending vectors to vectors, scalars to scalars, and adjusting products by a contraction term.

              This is $\lambda_B$ from [bourbaki2007][] §9 Lemma 2.

              Equations
                Instances For

                  Auxiliary lemma used as an argument to CliffordAlgebra.changeForm

                  @[simp]
                  theorem CliffordAlgebra.changeForm_ι {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q Q' : QuadraticForm R M} {B : LinearMap.BilinForm R M} (h : LinearMap.BilinMap.toQuadraticMap B = Q' - Q) (m : M) :
                  (changeForm h) ((ι Q) m) = (ι Q') m
                  theorem CliffordAlgebra.changeForm_ι_mul {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q Q' : QuadraticForm R M} {B : LinearMap.BilinForm R M} (h : LinearMap.BilinMap.toQuadraticMap B = Q' - Q) (m : M) (x : CliffordAlgebra Q) :
                  (changeForm h) ((ι Q) m * x) = (ι Q') m * (changeForm h) x - (contractLeft (B m)) ((changeForm h) x)
                  theorem CliffordAlgebra.changeForm_ι_mul_ι {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q Q' : QuadraticForm R M} {B : LinearMap.BilinForm R M} (h : LinearMap.BilinMap.toQuadraticMap B = Q' - Q) (m₁ m₂ : M) :
                  (changeForm h) ((ι Q) m₁ * (ι Q) m₂) = (ι Q') m₁ * (ι Q') m₂ - (algebraMap R (CliffordAlgebra Q')) ((B m₁) m₂)

                  Theorem 23 of [grinberg_clifford_2016][]

                  theorem CliffordAlgebra.changeForm_changeForm {R : Type u1} [CommRing R] {M : Type u2} [AddCommGroup M] [Module R M] {Q Q' Q'' : QuadraticForm R M} {B B' : LinearMap.BilinForm R M} (h : LinearMap.BilinMap.toQuadraticMap B = Q' - Q) (h' : LinearMap.BilinMap.toQuadraticMap B' = Q'' - Q') (x : CliffordAlgebra Q) :
                  (changeForm h') ((changeForm h) x) = (changeForm ) x

                  This is [bourbaki2007][] §9 Lemma 3.

                  Any two algebras whose quadratic forms differ by a bilinear form are isomorphic as modules.

                  This is $\bar \lambda_B$ from [bourbaki2007][] §9 Proposition 3.

                  Equations
                    Instances For

                      The module isomorphism to the exterior algebra.

                      Note that this holds more generally when Q is divisible by two, rather than only when 1 is divisible by two; but that would be more awkward to use.

                      Equations
                        Instances For

                          A CliffordAlgebra over a nontrivial ring is nontrivial, in characteristic not two.