Vector product pairs (GPR 22.14) #
An orientation of a finitely generated projective k-module M of rank 3 is a k-linear
bijection θ : ⋀³ M → k. GPR 22.14 uses θ and the induced orientation θ*⁻¹
of M*, only through the two associated vector products
M × M → M*, (v, w) ↦ v ×θ w, θ(u ∧ v ∧ w) = ⟨u ×θ v, w⟩,
M* × M* → M, (φ, ψ) ↦ φ ×θ ψ, θ*⁻¹(φ ∧ ψ ∧ χ) = ⟨χ, φ ×θ ψ⟩,
and it uses those only through three identities: both products are alternating, each is orthogonal
to its own arguments, and the two are linked by the Binet–Cauchy identity. This file packages
exactly that much data as Module.VectorProductPair k M. It constructs the pair both directly
from a basis of size three and from an orientation together with such a basis.
Isolating the identities rather than the orientation is the same move as Module.IsRankOnePairing
in Module/Invertible.lean, which isolates what GPR 22.12's twisted matrices need a line bundle
for. It buys three things: the algebra ConicAlgebra.TwistedZor built on a pair is a composition
algebra with no hypothesis on the rank of M (rank three is what makes pairs exist, not what
makes the axioms work); the free case, which is where GPR's localization argument lands, is
available directly as Module.VectorProductPair.ofBasis; and the converse direction of
GPR 22.15, where the vector products are read off from the multiplication of a reduced
octonion algebra, produces a pair directly and never has to exhibit θ.
Main definitions #
Module.VectorProductPair k M: a pair of vector productsM × M → M*andM* × M* → Msatisfying the three identities ofGPR (22.14.2)and Binet–Cauchy.Module.VectorProductPair.ofBasis: the pair attached to a basis(u₁, u₂, u₃)ofM, whose orientation isθ(u₁ ∧ u₂ ∧ u₃) = 1.Module.VectorProductPair.ofOrientationOfBasis: the pair induced by an arbitrary orientation of a based rank-three module.Module.Basis.dualCoord: the coordinates of a functional along the dual basis,M* ≃ (ι → k).
Main results #
Module.VectorProductPair.cross_swap,crossDual_swap: the products are anticommutative.Module.VectorProductPair.cross_apply_right,apply_crossDual_right: orthogonality to the second argument as well as the first.Module.Basis.apply_eq_dotProduct: in the coordinates of a finite basis and its dual basis, the canonical pairingM* × M → kis the dot product. This is what makes a basis of size three produce a vector product pair, and it is stated for an arbitrary finite basis.Module.orientationAlternating_mul_dualOrientationAlternating: the primal and dual volume coefficients are inverse, the basis calculation behind Binet–Cauchy.Module.Basis.det_mul_det_dualBasis: for a finite basis, the product of the determinant forms of the basis and of its dual basis is the determinant of the matrix of pairings.
Implementation notes #
⚠ The orientation is not part of the data. GPR 22.14 starts from (M, θ) with M of
rank three; a VectorProductPair is what θ produces. The construction here proves the based
calculation by dualizing θ through the canonical exterior-power pairing (GPR 21.7) and
checking that the two volume coefficients are inverse. The arbitrary finite-projective case is
proved by localization in Composition.Reduced.Orientation.
The three axioms are stated with the left argument in the degenerate position
(cross_apply_left, apply_crossDual_left); the right-hand versions follow from
anticommutativity, which in turn follows from cross_self. Anticommutativity is therefore not an
axiom, and neither is the alternating character of the trilinear form
(u, v, w) ↦ ⟨u ×θ v, w⟩, which is the conjunction of the two.
References #
- [GPR] Garibaldi, Petersson, Racine, Albert Algebras over Commutative Rings, 21.7, 21.8, 22.14.
A pair of associated vector products on a k-module M (GPR 22.14): k-bilinear maps
× : M × M → M*, ×* : M* × M* → M,
both alternating, each orthogonal to its own arguments, and linked by the Binet–Cauchy identity
⟨v × w, φ ×* ψ⟩ = ⟨φ, v⟩⟨ψ, w⟩ - ⟨φ, w⟩⟨ψ, v⟩.
GPR 22.14 obtains such a pair from an orientation θ : ⋀³ M ≅ k of a rank-three projective
module, by θ(u ∧ v ∧ w) = ⟨u × v, w⟩ and
θ*⁻¹(φ ∧ ψ ∧ χ) = ⟨χ, φ ×* ψ⟩; the identities below are exactly the alternating
character of the two orientations and GPR (22.14.1). The rank
plays no role afterwards, so it is not part of this definition — see the module docstring.
The vector product
M × M → M*,(v, w) ↦ v ×θ w.The vector product
M* × M* → M,(φ, ψ) ↦ φ ×θ ψ, of the induced orientation ofM*.The vector product is alternating.
The dual vector product is alternating.
⟨v × w, v⟩ = θ(v ∧ w ∧ v) = 0.⟨φ, φ ×* ψ⟩ = θ*⁻¹(φ ∧ ψ ∧ φ) = 0.- cross_apply_crossDual (v w : M) (φ ψ : Dual k M) : ((self.cross v) w) ((self.crossDual φ) ψ) = φ v * ψ w - φ w * ψ v
The Binet–Cauchy identity linking the two products,
GPR (22.14.1).
Instances For
If a ternary function vanishes whenever any pair of its arguments agrees, then it vanishes on
a Fin 3-indexed tuple whenever two distinct entries agree. This is the combinatorial half of
map_eq_zero_of_eq' for both alternating forms below. For each vector product, two hypotheses
come from fields of VectorProductPair; the third is the derived right-orthogonality identity.
Two vector-product pairs are equal when their two bilinear maps are equal.
The vector product is anticommutative.
The dual vector product is anticommutative.
⟨v × w, w⟩ = θ(v ∧ w ∧ w) = 0.
⟨ψ, φ ×* ψ⟩ = θ*⁻¹(φ ∧ ψ ∧ ψ) = 0.
The alternating trilinear form (u, v, w) ↦ ⟨u × v, w⟩ associated to the first
vector product.
Equations
- P.crossAlternating = { toMultilinearMap := MultilinearMap.mk' (fun (x : Fin 3 → M) => ((P.cross (x 0)) (x 1)) (x 2)) ⋯ ⋯, map_eq_zero_of_eq' := ⋯ }
Instances For
The alternating trilinear form (φ, ψ, χ) ↦ ⟨φ, ψ ×* χ⟩ associated to the
dual vector product.
Equations
- P.crossDualAlternating = { toMultilinearMap := MultilinearMap.mk' (fun (x : Fin 3 → Module.Dual k M) => (x 0) ((P.crossDual (x 1)) (x 2))) ⋯ ⋯, map_eq_zero_of_eq' := ⋯ }
Instances For
The pair attached to a basis #
For a basis (u₁, u₂, u₃), the orientation θ(u₁ ∧ u₂ ∧ u₃) = 1 makes the basis
self-dual, and both vector products become the ordinary cross product of k³ read in
coordinates. This is the case GPR 22.14 reduces to, and it is the only construction of a pair
in this file.
The coordinates of a linear functional along the basis dual to b, as an equivalence
M* ≃ (ι → k). Together with b.equivFun : M ≃ (ι → k) it makes b self-dual: the
canonical pairing becomes the dot product (Module.Basis.apply_eq_dotProduct).
Instances For
In the coordinates of a finite basis and its dual basis, the canonical pairing is the dot product.
The cross product of M induced by a basis of size three: the ordinary cross product of the
coordinate vectors, read back as a linear functional through the dual basis.
Equations
- Module.crossOfBasis b = (crossProduct.compl₁₂ ↑b.equivFun ↑b.equivFun).compr₂ ↑b.dualCoord.symm
Instances For
The cross product of M* induced by a basis of size three.
Equations
- Module.crossDualOfBasis b = (crossProduct.compl₁₂ ↑b.dualCoord ↑b.dualCoord).compr₂ ↑b.equivFun.symm
Instances For
The vector product pair attached to a basis (u₁, u₂, u₃) of M: the pair of the
orientation θ with θ(u₁ ∧ u₂ ∧ u₃) = 1. The products become the cross product in the
coordinates of b; this is self-dual for that orientation, so the axioms are the
classical identities
u ⬝ᵥ (u ⨯₃ v) = 0 and the Binet–Cauchy identity Matrix.cross_dot_cross.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The trilinear form of the basis-built vector product is the determinant form of the basis.
The trilinear form of the basis-built dual vector product is the determinant form of the dual basis.
Relative to a basis of size three, every first vector product is a scalar multiple of the basis-built cross product. The scalar is its oriented volume on that basis.
Relative to the dual basis, every dual vector product is a scalar multiple of the basis-built dual cross product.
The two scalar coefficients of a vector-product pair relative to a basis are inverse. This is Binet–Cauchy evaluated on the first two basis vectors and their duals.
The volume coefficient of a vector-product pair in any basis is a unit.
Every vector-product pair on a free module of rank three is the pair attached to a suitably rescaled basis.
The pair attached to an orientation of a based module #
A cyclic permutation of three arguments preserves an alternating trilinear map.
The alternating volume form obtained from an orientation θ : ⋀³ M ≃ k.
Equations
- Module.orientationAlternating theta = (↑theta).compAlternatingMap (exteriorPower.ιMulti k 3)
Instances For
The volume form on M* dual to an orientation of M. It evaluates the canonical pairing
with the oriented volume element θ⁻¹(1); this is the duality of GPR 21.7.
Equations
- Module.dualOrientationAlternating theta = LinearMap.compAlternatingMap ((Module.Dual.eval k ↥(⋀[k]^3 M)) (theta.symm 1)) (exteriorPower.alternatingMapToDual k M 3)
Instances For
The primal and dual volume forms defined by an orientation multiply to the determinant
pairing. This basis-free identity is the scalar form of the perfect exterior-power duality in
GPR 21.7.
The vector product M × M → M* induced by an orientation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The vector product M* × M* → M induced by the dual orientation. Projective
reflexivity identifies the bidual value of the curried volume form with an element of M.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In the dual basis, the dual orientation-induced product is its volume coefficient times the standard dual cross product.
The volume coefficients of an orientation and its dual are inverse. This is the based form
of exterior-power duality in GPR 21.7 and the scalar identity behind GPR (22.14.1).
The based form of GPR 22.14. An orientation of a finite projective module with a basis
of size three induces a pair of associated vector products. The products are defined directly
from the primal and dual volume forms; the basis is used only to prove Binet–Cauchy.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pair constructed from an orientation does not depend on the basis used to verify its axioms.
In the coordinates of a finite basis and its dual basis, the product of the two determinant forms is the determinant of the matrix of pairings.