The orthogonal group of a quadratic form #
Mathlib knows the orthogonal group only in matrix form: Matrix.orthogonalGroup n R is the group of
matrices A with Aᵀ * A = 1 (Matrix.mem_orthogonalGroup_iff'). Such matrices preserve the
standard form x ↦ ∑ i, x i ^ 2 on n → R, and, as soon as 2 is not a zero divisor in R,
they are exactly its isometries: evaluating Q (A x) = Q x at the basis vectors and their pairwise
sums says that Aᵀ * A has unit diagonal and that twice each off-diagonal entry vanishes. In
characteristic two the two notions part company, since there the standard form no longer sees the
off-diagonal entries at all. For an abstract quadratic map Q : QuadraticMap R M N the
corresponding group is missing, even though Mathlib does have the individual isometries as
QuadraticMap.IsometryEquiv Q Q: what it lacks is the observation that they form a subgroup of the
linear automorphism group M ≃ₗ[R] M, and hence a group to act with.
This file supplies that subgroup, together with its determinant-one subgroup and the reflections in
vectors of invertible norm, which fix the kernel of polar Q v (the hyperplane v ^ ⊥ when 2 is
invertible). The orthogonal group is the target of the
twisted-conjugation homomorphism out of the Pin group, so it is the object the Pin/Spin double
covers are stated against, and the reflections are the generators into which the Cartan-Dieudonné
theorem TauCeti.QuadraticMap.exists_reflectionOrthogonal_list_prod_eq factors an orthogonal
automorphism. The structural declarations and reflections
defined using an invertible norm hold over an arbitrary commutative ring. The coefficient-spelling
lemmas assume a field, and the second spelling also requires 2 ≠ 0. The equal-norm dichotomy,
Witt transitivity and the fixed-subspace correction assume a field in which 2 is nonzero. The
characteristic restriction is not incidental: in characteristic two polar Q v v = 2 • Q v
vanishes, so v lies in the kernel of polar Q v, reflection Q v fixes v, and it is not a
reflection in a complement of v. Over a field it is a transvection when polar Q v ≠ 0 and the
identity when polar Q v = 0; over a general ring it can be the identity in other cases too.
Main definitions #
TauCeti.QuadraticMap.orthogonalGroup Q: theQ-preserving linear automorphisms ofM, as a subgroup ofM ≃ₗ[R] M.TauCeti.QuadraticMap.specialOrthogonalGroup Q: its determinant-one subgroup.QuadraticMap.orthogonalDet Q: the determinantO(Q) →* Rˣ.QuadraticMap.specialOrthogonalWithin Q: its kernel, the determinant-one subgroup regarded as a subgroup oforthogonalGroup Qrather than ofM ≃ₗ[R] M, withQuadraticMap.specialOrthogonalToOrthogonal Q : SO(Q) →* O(Q)andQuadraticMap.specialOrthogonalWithinEquiv Qrelating the two spellings.QuadraticMap.specialOrthogonalToGeneralLinear Q: the faithful coordinate inclusion of a special orthogonal group into matrixGL.QuadraticMap.orthogonalToGeneralLinear Q: the corresponding faithful coordinate inclusion of the full orthogonal group into matrixGL.TauCeti.QuadraticMap.reflection Q v: the reflection in a vectorvwithQ vinvertible, built from Mathlib'sModule.reflection; it is the reflection in the hyperplanev ^ ⊥when2is invertible.TauCeti.QuadraticMap.reflectionOrthogonal Q v: the same reflection bundled as an element oforthogonalGroup Q, so that statements about products of reflections and about the ranges of the Pin and Spin actions can name it.TauCeti.QuadraticMap.reflectionOrthogonal_mul_selfandTauCeti.QuadraticMap.reflectionOrthogonal_invare its group-level involution facts.QuadraticMap.negOrthogonal Q: the isometryx ↦ -x, as an element oforthogonalGroup Q.
Main results #
TauCeti.QuadraticMap.polar_apply_of_mem_orthogonalGroup: an orthogonal automorphism preserves polarization and the orthogonality relation (isOrtho_iff_of_mem_orthogonalGroup). As soon as2acts injectively on the target the converse holds,TauCeti.QuadraticMap.mem_orthogonalGroup_iff_polar, which is the usual identification of the isometries of a quadratic form with the isometries of its polar bilinear form. At the level of groups this isTauCeti.QuadraticMap.orthogonalGroup_eq_isometryGroup_polarBilin:O(Q)is the isometry groupTauCeti.BilinForm.isometryGroupofQ.polarBilin, so the bilinear-form API applies to it. Its determinant-one counterpart isTauCeti.QuadraticMap.specialOrthogonalGroupEquivSpecialIsometryGroupPolarBilin.TauCeti.QuadraticMap.orthogonalGroupEquivIsometryEquiv: the underlying set of the orthogonal group is Mathlib's type of self-isometriesQ.IsometryEquiv Q. This is the compatibility with the Mathlib vocabulary; the point oforthogonalGroupis the group structure, whichQuadraticMap.IsometryEquivdoes not carry.QuadraticMap.IsometryEquiv.orthogonalGroupCongr: isometric quadratic maps have isomorphic orthogonal groups. Over an algebraically closed field this is what makesO(Q)of a nondegenerate form depend only on the rank ofQ. The transport respects identity, composition, and inverses (QuadraticMap.IsometryEquiv.orthogonalGroupCongr_refl,QuadraticMap.IsometryEquiv.orthogonalGroupCongr_trans,QuadraticMap.IsometryEquiv.orthogonalGroupCongr_symm) and preserves the determinant (QuadraticMap.IsometryEquiv.orthogonalDet_orthogonalGroupCongr).QuadraticMap.IsometryEquiv.specialOrthogonalGroupCongr: isometric quadratic maps have isomorphic special orthogonal groups as well, functorially and compatibly with the inclusion into the full orthogonal group.TauCeti.QuadraticMap.reflection_mem_orthogonalGroup: the reflection in a vector of invertible norm is orthogonal;TauCeti.QuadraticMap.reflection_mul_selfsays it is an involution, andTauCeti.QuadraticMap.reflection_apply_of_isOrthothat it fixes every vector orthogonal tov,TauCeti.QuadraticMap.reflection_smul_eqthat rescaling by an invertible scalar does not change it, andTauCeti.QuadraticMap.det_reflectioncomputes its determinant on a finite free module. These are the factors in the Cartan-Dieudonné theoremTauCeti.QuadraticMap.exists_reflectionOrthogonal_list_prod_eq(a field of characteristic not two, a nondegenerate form, finite dimension; none of that is assumed here), and the image of the Pin group's generating vectors under twisted conjugation.TauCeti.QuadraticMap.reflection_mapandTauCeti.QuadraticMap.orthogonalGroupCongr_reflectionOrthogonal: an isometric equivalenceecarries the reflection invto the reflection ine v; insideO(Q)this is the conjugation lawg τ_v g⁻¹ = τ_{g v},TauCeti.QuadraticMap.mul_reflectionOrthogonal_mul_inv.QuadraticForm.polar_div_eq_two_mul_polar_div_polar: over a field with2 ≠ 0, the reflection coefficientpolar Q v x / Q vequals2 * polar Q v x / polar Q v v, so the two spellings of the reflection in the literature (TauCeti.QuadraticMap.reflection_apply_eq_sub_divandTauCeti.QuadraticMap.reflection_apply_eq_sub_two_mul_div) are the same map.QuadraticMap.exists_isometryEquiv_apply_eq_of_map_eq: Witt transitivity, the orthogonal group acts transitively on the vectors of a fixed nonzero value, by reflecting inx - yor inx + y.TauCeti.QuadraticMap.exists_reflectionOrthogonal_list_prod_mul_eqOn_sup_span_singleton: at most two anisotropic reflections supply the one-step fixed-subspace correction used by Cartan--Dieudonne induction.TauCeti.QuadraticMap.specialOrthogonalGroup_normal:SO(Q)is normal inO(Q), being the kernel of the determinant restricted there.TauCeti.QuadraticMap.orthogonalDet_sq: if the polar form is left-separating on a finite free module over a domain, every orthogonal automorphism has determinant squaring to one.TauCeti.QuadraticMap.finiteIndex_specialOrthogonalWithin: under the same hypotheses,SO(Q)has finite index inO(Q).TauCeti.QuadraticMap.range_orthogonalDetandTauCeti.QuadraticMap.index_specialOrthogonalWithin: for a nondegenerate form on a nonzero finite-dimensional space over a field of characteristic not two, the determinant takes exactly the values±1, soSO(Q)has index two inO(Q); on the zero space the two coincide,QuadraticMap.specialOrthogonalWithin_eq_top.TauCeti.QuadraticMap.range_orthogonalGroup_toLinearMap: on a finite free module over a domain, if the polar form separates points, the underlying maps ofO(Q)are exactly the endomorphisms preservingQ;exists_orthogonalGroup_toLinearMap_eqgives the lift.
Implementation notes #
orthogonalGroup is defined for a QuadraticMap R M N valued in an arbitrary module N, since
preserving Q makes sense at that generality. The file is therefore laid out by hypothesis
strength: the group itself, its identification with IsometryEquiv, and its transport along an
isometric equivalence need only a CommSemiring and additive monoids; the polarization needs
subtraction in M and N, since QuadraticMap.polar is stated for [AddCommGroup M] [AddCommGroup N], but still no more than a CommSemiring; the determinant needs M to be an
additive group over a CommRing, and the
reflections need to divide by Q v and so are stated for a QuadraticForm R M, that is, for
N = R. The ReflectionField section divides by Q v over a field; its second coefficient
spelling also assumes 2 ≠ 0. The fixed-subspace correction assumes a field and 2 ≠ 0; the
closing Cartan--Dieudonne dichotomy assumes a field, a nonzero common quadratic value, and 2 ≠ 0.
The determinant's square needs a separating polar form on a finite free module over a domain, and
its range and index a nondegenerate form on a nonzero finite-dimensional space over a field in
which 2 ≠ 0.
The endomorphism characterization needs a separating polar form on a finite free module over a
domain.
References #
- J.-P. Serre, A Course in Arithmetic (1973), Chapter IV.
- H. B. Lawson and M.-L. Michelsohn, Spin Geometry (1989), Chapter I §2.
- E. Artin, Geometric Algebra (1957), Chapter III.
- O. T. O'Meara, Introduction to Quadratic Forms (1963), §43. The endomorphism characterization below is the algebraic observation in this section.
The orthogonal group of a quadratic map: the linear automorphisms of M that preserve Q.
Mathlib's Matrix.orthogonalGroup n R is a coordinate version of this for the standard form on
n → R: its matrices preserve x ↦ ∑ i, x i ^ 2, and are all of its isometries as soon as 2 is
not a zero divisor in R. QuadraticMap.IsometryEquiv Q Q is the same underlying set as
orthogonalGroup Q (see orthogonalGroupEquivIsometryEquiv) but carries no group structure.
Equations
Instances For
The defining property of an orthogonal automorphism, in the form in which it rewrites.
This is deliberately not a simp lemma: its left-hand side Q (f m) matches every application
of every quadratic map to every linear equivalence, and discharging the side goal
f ∈ orthogonalGroup Q unfolds through mem_orthogonalGroup_iff to ∀ m, Q (f m) = Q m, which
this lemma applies to again. Name it explicitly in the simp calls that want it.
An orthogonal automorphism preserves orthogonality of vectors.
The orthogonal group of Q, as a set, is Mathlib's type of self-isometries of Q. The content
of orthogonalGroup is the group structure, which QuadraticMap.IsometryEquiv does not carry.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Isometric quadratic maps have isomorphic orthogonal groups: conjugation by an isometric
equivalence e : Q₁.IsometryEquiv Q₂ carries O(Q₁) onto O(Q₂).
Over an algebraically closed field every nondegenerate quadratic form of a given rank is isometric
to every other, so this is what makes O(Q) depend on the rank alone.
Equations
Instances For
Transporting the orthogonal group along the identity isometry is the identity equivalence.
Orthogonal-group transport respects composition of isometries.
Inverting orthogonal-group transport is transport along the inverse isometry.
An orthogonal automorphism preserves the polarization of Q, because the polarization is
built from Q and the additive structure alone.
As soon as 2 acts injectively on the target, preserving the polarization is the same as
preserving the quadratic map: an automorphism is orthogonal exactly when it is an isometry of the
polar bilinear form.
Only injectivity is needed, not invertibility of 2, so this covers integral forms as well: over
ℤ, or more generally whenever N is 2-torsion-free, 2 is not a unit but the polarization
still determines Q. When 2 is invertible in R the hypothesis is
(isUnit_of_invertible (2 : R)).isSMulRegular N. Some such hypothesis is needed: in characteristic
two the polarization forgets Q entirely on the diagonal.
The orthogonal group of a quadratic form is the isometry group of its polar bilinear form, as
soon as 2 is a regular scalar: orthogonalGroup Q and TauCeti.BilinForm.isometryGroup Q.polarBilin are then two names for the same subgroup of M ≃ₗ[R] M, and the bilinear-form API —
the Gram-matrix criterion, det ^ 2 = 1, base change — applies to O(Q) through it. Some such
hypothesis is needed: in characteristic two the polarization forgets Q on the diagonal.
The special orthogonal group: the orthogonal automorphisms of determinant one.
The determinant is Mathlib's LinearEquiv.det, which is 1 by convention on a module that is not
finite free; on such a module this subgroup is therefore all of orthogonalGroup Q.
Equations
Instances For
The determinant of an element of SO(Q) is one.
SO(Q) is normal in O(Q): inside the orthogonal group it is the kernel of the determinant.
When multiplication by two is injective, the special orthogonal group of a quadratic form is
the determinant-one isometry group of its polar bilinear form. This is the determinant-one
counterpart of orthogonalGroup_eq_isometryGroup_polarBilin.
The canonical group isomorphism between SO(Q) and the determinant-one isometry group of the
polar bilinear form.
Equations
Instances For
Negation x ↦ -x preserves every quadratic map.
The isometry x ↦ -x, as an element of the orthogonal group. On a free module of rank one
over a domain, it and 1 are the only isometries of a nonzero quadratic map valued in a
torsion-free module (TauCeti.QuadraticMap.eq_one_or_eq_negOrthogonal_of_finrank_eq_one), and
it differs from 1 when 2 ≠ 0. There it is also the reflection in every vector of invertible
norm (QuadraticMap.reflectionOrthogonal_eq_negOrthogonal_of_finrank_eq_one).
Equations
- Q.negOrthogonal = ⟨LinearEquiv.neg R, ⋯⟩
Instances For
Negation is an involution of the orthogonal group.
The determinant of an orthogonal automorphism, as a homomorphism O(Q) →* Rˣ.
Equations
Instances For
The determinant-one subgroup of O(Q), as a subgroup of orthogonalGroup Q: the kernel
of orthogonalDet Q. By contrast specialOrthogonalGroup Q is a subgroup of M ≃ₗ[R] M; the
two are identified by specialOrthogonalWithin_eq_subgroupOf and
specialOrthogonalWithinEquiv.
Equations
Instances For
specialOrthogonalWithin Q is the special orthogonal group pulled back to O(Q).
The inclusion SO(Q) →* O(Q).
Equations
Instances For
The orthogonal determinant of an element of SO(Q) is one.
The image of SO(Q) in O(Q) is exactly the determinant kernel.
The determinant kernel inside O(Q) is canonically isomorphic to SO(Q).
Equations
Instances For
On a zero module the determinant kernel is all of O(Q), both groups being trivial; this is
the case excluded from index_specialOrthogonalWithin.
Isometric quadratic maps have isomorphic special orthogonal groups: conjugation by an
isometric equivalence e : Q₁.IsometryEquiv Q₂ carries SO(Q₁) onto SO(Q₂).
Equations
Instances For
Evaluating special-orthogonal transport is conjugation by the isometry e.
Evaluating inverse special-orthogonal transport is conjugation by the inverse isometry
e.symm.
Transporting an orthogonal automorphism along an isometry preserves its determinant.
This has high simplifier priority so it fires before the general orthogonalDet_apply projection
lemma hides the transport.
Transport of special orthogonal groups commutes with their inclusions into the full orthogonal groups.
Transporting the special orthogonal group along the identity isometry is the identity equivalence.
Special-orthogonal-group transport respects composition of isometries.
Inverting special-orthogonal-group transport is transport along the inverse isometry.
The coordinate inclusion of an orthogonal group into GL(n, R).
Equations
- One or more equations did not get rendered due to their size.
Instances For
An orthogonal transformation acts through its usual coordinate matrix.
The underlying matrix of the coordinate inclusion is the matrix of the linear equivalence.
The coordinate inclusion of an orthogonal group is injective.
The coordinate inclusion of a special orthogonal group into GL(n, R).
Equations
Instances For
A special orthogonal transformation acts through its usual coordinate matrix.
A special orthogonal transformation acts on coordinate vectors through its general-linear matrix.
The coordinate inclusion of a special orthogonal group is injective.
The reflection in a vector v of invertible norm: y ↦ y - (polar Q v y / Q v) • v. This is
Mathlib's Module.reflection for the functional y ↦ polar Q v y / Q v. When 2 is invertible it
is the reflection in the hyperplane v ^ ⊥. In characteristic two v lies in the kernel of
polar Q v and the map fixes v; over a field it is then a transvection, or the identity when
polar Q v = 0.
Equations
Instances For
Rescaling a vector of invertible norm by an invertible scalar does not change its quadratic reflection.
The reflection in v fixes the kernel of polar Q v.
The reflection in v fixes every vector orthogonal to v. When 2 is invertible, together
with reflection_apply_self this says it is the reflection in the hyperplane v ^ ⊥.
A reflection is an involution, so it has order dividing two in the orthogonal group.
A reflection is its own inverse.
A reflection is its own inverse, as a linear equivalence.
The determinant of a reflection is -1 on a finite free module.
Reflections are orthogonal. These are the generators a Cartan-Dieudonné theorem writes an
orthogonal automorphism as a product of, over a field of characteristic not two, for a nondegenerate
form, in finite dimension; none of that is assumed here. In characteristic two polar Q v v is
2 • Q v = 0, so v lies in the kernel of polar Q v and reflection Q v fixes v (over a
field it is a transvection or the identity), which is why that theorem excludes characteristic
two. They are also the image of the
generating vectors of the Pin group under twisted conjugation.
The reflection in a vector of invertible norm, as an element of the orthogonal group.
reflection_mem_orthogonalGroup gives the membership; this bundles it, so that statements about
reflections inside orthogonalGroup Q — products of reflections, membership in the range of the
Pin and Spin actions, generation results — can name the group element instead of repeating the
anonymous constructor.
Equations
Instances For
Rescaling the defining vector by an invertible scalar does not change the bundled orthogonal reflection.
The bundled reflection is an involution, so it has order dividing two in the orthogonal group.
The bundled reflection is its own inverse in the orthogonal group.
The orthogonal determinant of a reflection is minus one.
An isometric equivalence e carries the reflection in v to the reflection in e v:
τ_{e v} = e ∘ τ_v ∘ e⁻¹. This is the quadratic-form analogue of Mathlib's
Submodule.reflection_map_apply in Mathlib.Analysis.InnerProductSpace.Projection.Reflection.
An isometric equivalence e carries the reflection in v to the reflection in e v, as linear
equivalences: τ_{e v} = e ∘ τ_v ∘ e⁻¹.
Transporting orthogonal groups along an isometric equivalence e carries the reflection in v
to the reflection in e v.
The conjugation law for reflections: g τ_v g⁻¹ = τ_{g v} for g ∈ O(Q). So every
conjugate of τ_v in O(Q) is the reflection in a vector of the O(Q)-orbit of v, in particular
in a vector with the same value of Q.
Over a field, the reflection in v is x ↦ x - (polar Q v x / Q v) • v.
The two spellings of the reflection coefficient agree. Dividing the un-halved polar form by
Q v is the same as dividing twice it by polar Q v v = 2 • Q v, the form in which sources whose
bilinear form b satisfies b v v = Q v write the reflection. No anisotropy is needed, since both
sides vanish when Q v = 0.
The reflection in v is x ↦ x - (2 * polar Q v x / polar Q v v) • v.
If x and y have the same quadratic value, reflecting x in x - y carries it to y
whenever x - y has invertible norm.
If x and y have the same nonzero quadratic value, at least one of x - y and x + y
has nonzero, hence invertible, norm.
Witt transitivity (Lam I.4.5): over a field of characteristic different from two, any two vectors with the same nonzero value are related by an isometry of the quadratic form.
If g fixes a subspace W pointwise and x is anisotropic and orthogonal to W, a list of
at most two anisotropic reflections can be multiplied into g so that the product fixes
W ⊔ K ∙ x pointwise.
The determinant of an isometry squares to one. If the polar form of Q is
left-separating on a finite free module over an integral domain, every orthogonal automorphism has
determinant ±1.
If the polar form is left-separating on a finite free module over an integral domain, then
SO(Q) has finite index in O(Q): every orthogonal determinant is a square root of unity, and
there are only finitely many of those.
The determinant lands exactly in μ₂. For a nondegenerate form over a field of
characteristic not two on a nonzero finite-dimensional space, the determinants of the orthogonal
automorphisms are exactly the square roots of unity ±1.
SO(Q) has index two in O(Q) for a nondegenerate form over a field of characteristic
not two, on a nonzero finite-dimensional space. On the zero space the two groups coincide
(specialOrthogonalWithin_eq_top).
A form-preserving endomorphism of a finite free module over a domain lifts to an orthogonal automorphism when the polar form is left-separating.
An endomorphism of a finite free module over a domain preserves a quadratic form with left-separating polar form exactly when it underlies an orthogonal automorphism.