Contraction in Clifford Algebras #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file contains some of the results from [grinberg_clifford_2016][].
The key result is clifford_algebra.equiv_exterior
.
Main definitions #
clifford_algebra.contract_left
: contract a multivector by amodule.dual R M
on the left.clifford_algebra.contract_right
: contract a multivector by amodule.dual R M
on the right.clifford_algebra.change_form
: convert between two algebras of different quadratic form, sending vectors to vectors. The difference of the quadratic forms must be a bilinear form.clifford_algebra.equiv_exterior
: in characteristic not-two, theclifford_algebra Q
is isomorphic as a module to the exterior algebra.
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
x ⌊ d
forcontract_right x d
d ⌋ x
forcontract_left d x
Auxiliary construction for clifford_algebra.contract_left
Equations
- clifford_algebra.contract_left_aux Q d = linear_map.smul_right d (linear_map.fst R (clifford_algebra Q) (clifford_algebra Q)) - ((algebra.lmul R (clifford_algebra Q)).to_linear_map.comp (clifford_algebra.ι Q)).compl₂ (linear_map.snd R (clifford_algebra Q) (clifford_algebra Q))
Contract an element of the clifford algebra with an element d : module.dual R M
from the left.
Note that $v ⌋ x$ is spelt contract_left (Q.associated v) x
.
This includes [grinberg_clifford_2016][] Theorem 10.75
Equations
- clifford_algebra.contract_left = {to_fun := λ (d : module.dual R M), clifford_algebra.foldr' Q (clifford_algebra.contract_left_aux Q d) _ 0, map_add' := _, map_smul' := _}
Contract an element of the clifford algebra with an element d : module.dual R M
from the
right.
Note that $x ⌊ v$ is spelt contract_right x (Q.associated v)
.
This includes [grinberg_clifford_2016][] Theorem 16.75
This is [grinberg_clifford_2016][] Theorem 6
This is [grinberg_clifford_2016][] Theorem 12
This is [grinberg_clifford_2016][] Theorem 7
This is [grinberg_clifford_2016][] Theorem 13
This is [grinberg_clifford_2016][] Theorem 8
This is [grinberg_clifford_2016][] Theorem 14
Auxiliary construction for clifford_algebra.change_form
Equations
Convert between two algebras of different quadratic form, sending vector to vectors, scalars to scalars, and adjusting products by a contraction term.
This is $\lambda_B$ from [bourbaki2007][] $9 Lemma 2.
Equations
Auxiliary lemma used as an argument to clifford_algebra.change_form
Auxiliary lemma used as an argument to clifford_algebra.change_form
Auxiliary lemma used as an argument to clifford_algebra.change_form
Theorem 23 of [grinberg_clifford_2016][]
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
- clifford_algebra.change_form_equiv h = {to_fun := ⇑(clifford_algebra.change_form h), map_add' := _, map_smul' := _, inv_fun := ⇑(clifford_algebra.change_form _), left_inv := _, right_inv := _}
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.