Base change of quadratic maps along R → A, without inverting 2 #
Mathlib's QuadraticForm.baseChange is built as a special case of the tensor product of two
quadratic forms, which is constructed by passing to associated symmetric bilinear forms and
therefore carries an Invertible (2 : R) hypothesis. That hypothesis is an artefact of the
construction: base change of a quadratic form exists over an arbitrary commutative ring.
Uniqueness is already unconditional in mathlib (baseChange_ext); only existence needs work.
This file supplies the missing existence, for M a finitely generated projective R-module,
by the classical device of choosing a (not necessarily symmetric) bilinear representative
B with B x x = Q x, base changing B (which is unconditional, LinearMap.BilinMap.baseChange)
and taking the diagonal. The choice of B is non-canonical, but the result is independent of it
by baseChange_ext.
Main definitions #
QuadraticMap.HasBilinRepr R M N: every quadratic mapM → Nis of the formx ↦ B x x.QuadraticMap.bilinRepr Q: a chosen bilinear representative ofQ, forMf.g. projective.QuadraticMap.baseChange A Q : QuadraticMap A (A ⊗[R] M) (A ⊗[R] N).QuadraticForm.baseChangeOfProjective A Q : QuadraticForm A (A ⊗[R] M).
Main results #
QuadraticMap.exists_bilinMap: forMfinitely generated projective,toQuadraticMapis surjective, i.e. every quadratic map isx ↦ B x xfor some bilinearB.QuadraticMap.baseChange_tmul,QuadraticForm.baseChangeOfProjective_tmul: the defining propertyQ_A (a ⊗ₜ m) = (a * a) ⊗ₜ Q m(resp.Q m • (a * a)).QuadraticMap.baseChange_eq_of_toQuadraticMap_eq: independence of the chosen representative.QuadraticMap.polarBilin_baseChange,QuadraticForm.polarBilin_baseChangeOfProjective: the polar form of the base change is the base change of the polar form — with no hypothesis on2, unlikeQuadraticForm.polarBilin_baseChange.QuadraticForm.baseChangeOfProjective_eq_baseChange: agreement with mathlib'sQuadraticForm.baseChangewhen2is invertible.QuadraticMap.IsometryEquiv.baseChangeOfProjective: base change of an isometry.QuadraticForm.anisotropic_baseChangeOfProjective_iff_of_isLocalization,QuadraticForm.anisotropic_baseChangeOfProjective_iff_of_isFractionRing:GPR Exc. 12.38(b)— anisotropy is unchanged by localizing at non-zero-divisors, in particular by passing to the fraction field.
Implementation notes #
A bilinear representative exists on every free module: that is mathlib's
LinearMap.BilinMap.toQuadraticMap_surjective. A finitely generated projective module is a
retract of some Fin n → R, and representatives transport along retracts
(QuadraticMap.HasBilinRepr.of_retract), which gives the projective case.
QuadraticForm and LinearMap.BilinForm are abbrevs for QuadraticMap R M R and
LinearMap.BilinMap R M R, so dot notation such as Q.baseChange A can resolve ambiguously
against mathlib's QuadraticForm.baseChange. Names are therefore fully qualified throughout,
and the QuadraticForm-valued construction is given a distinct name.
TODO #
- Drop the projectivity hypothesis entirely by constructing base change through the divided
square
Γ₂(M)(Roby). mathlib now has the divided power algebraDividedPowerAlgebra R Mand polynomial lawsPolynomialLaw, but not yetΓ₂(M)as the universal quadratic map, nor any link from either toQuadraticMap.
References #
- overview §6(a): the mandatory warning this file exists to satisfy —
QuadraticMap.associatedand hence mathlib'sQuadraticForm.baseChangeassume2 ∈ Rˣ, which is unusable for the characteristic-2 examples (GPR 19.4) this development needs to state. - GN's definition of non-singularity (
QuadraticForm/Regularity.lean) needs base change along finitely generated projective modules specifically — matching this file's hypothesis exactly. - [GPR] Garibaldi, Petersson, Racine, Albert Algebras over Commutative Rings, Exc. 12.38.
Bilinear representatives #
HasBilinRepr R M N says that every quadratic map Q : M → N is the diagonal of some
bilinear map, i.e. LinearMap.BilinMap.toQuadraticMap is surjective.
Beware the clash of terminology with QuadraticMap.exists_companion, whose companion B
satisfies Q (x + y) = Q x + Q y + B x y (so that B x x = 2 • Q x). Here we ask instead for
B x x = Q x, which is a genuine extra condition in characteristic two.
Instances For
Transport along a retract: if M is a direct summand of P (witnessed by r ∘ₗ i = id)
and every quadratic map on P has a bilinear representative, then so does every quadratic map
on M.
Existence of bilinear representatives over finitely generated projective modules.
Every finitely generated projective module is a retract of some Fin n → R, which is free, and
on a free module every quadratic map has a bilinear representative
(LinearMap.BilinMap.toQuadraticMap_surjective).
For M finitely generated projective, LinearMap.BilinMap.toQuadraticMap is surjective:
every quadratic map is x ↦ B x x for some, generally non-symmetric, bilinear B.
This is the characteristic-free replacement for QuadraticMap.associated, which requires 2
to be invertible in order to pick out the symmetric representative.
A choice of bilinear representative of Q. Non-canonical: only its diagonal is determined
(see toQuadraticMap_bilinRepr). Every construction below is proved to be independent of this
choice.
Instances For
An extensionality lemma for bilinear maps on a base changed module #
Bilinear maps on A ⊗[R] M are determined by their values on pure tensors 1 ⊗ₜ m.
Compare baseChange_ext for quadratic maps.
Base change of quadratic maps #
Base change of a quadratic map along an algebra map R → A, for M a finitely generated
projective R-module. No invertibility of 2 is required.
Concretely this is the unique quadratic map with Q_A (a ⊗ₜ m) = (a * a) ⊗ₜ Q m; uniqueness
is baseChange_ext, and independence of the auxiliary choice is
baseChange_eq_of_toQuadraticMap_eq.
Equations
Instances For
The base change does not depend on the choice of bilinear representative: any bilinear
B with B x x = Q x computes it.
Characterisation of the base change: it is the unique quadratic map on A ⊗[R] M taking the
value (a * a) ⊗ₜ Q m on pure tensors.
The polar form of the base change is the base change of the polar form. Unlike
QuadraticForm.polarBilin_baseChange, this needs no hypothesis on 2.
Base change of quadratic forms #
Base change of a quadratic form along R → A, for M finitely generated projective.
This agrees with mathlib's QuadraticForm.baseChange whenever the latter is defined
(baseChangeOfProjective_eq_baseChange) but, unlike it, does not require 2 to be invertible.
It is stated separately from QuadraticMap.baseChange so as to land in
QuadraticForm A (A ⊗[R] M) rather than QuadraticMap A (A ⊗[R] M) (A ⊗[R] R).
Equations
Instances For
The polar form of the base change is the base change of the polar form, with no hypothesis
on 2.
Base change commutes with scaling. Rescaling Q by a ∈ R and then base changing is the
same as base changing and rescaling by the image of a in A. Compared on pure tensors 1 ⊗ₜ m,
where both sides give (a * Q m) • 1 = algebraMap a * algebraMap (Q m).
Base change commutes with pullback along a linear map. For f : P →ₗ[R] M with P and
M finitely generated projective, base changing Q ∘ f is the same as pulling back Q_A along
f_A.
Both sides are quadratic forms on A ⊗[R] P, so by baseChange_ext it is enough to compare them
on the pure tensors 1 ⊗ₜ p, where both give Q (f p). Note that this holds despite
baseChangeOfProjective being built from a chosen bilinear representative: the two sides may
well be built from unrelated representatives, but a quadratic form on a base changed module is
determined by its values on 1 ⊗ₜ p.
Base change of an isometry between quadratic forms on finite projective modules.
Equations
- QuadraticMap.IsometryEquiv.baseChangeOfProjective Q Q' e = { toLinearEquiv := LinearEquiv.baseChange R A M N e.toLinearEquiv, map_app' := ⋯ }
Instances For
When 2 is invertible this recovers mathlib's QuadraticForm.baseChange.
Transitivity #
Base change is transitive, in the form that avoids naming the comparison map on the
right-hand side: base changing to S and then to T, and reading the result back along
T ⊗[S] (S ⊗[R] M) ≃ T ⊗[R] M, gives the direct base change to T.
Stated this way round because QuadraticMap.baseChange_ext compares two forms on T ⊗[R] M by
their values at 1 ⊗ₜ m only, whereas comparing them on T ⊗[S] (S ⊗[R] M) would require
knowing them at 1 ⊗ₜ x for every x in S ⊗[R] M — a quadratic condition that does not reduce
to pure tensors.
Base change is transitive, as an isometry T ⊗[S] (S ⊗[R] M) ≃ T ⊗[R] M.
This is the form the residue-field arguments consume: a predicate on Q.baseChangeOfProjective F
for every field F over R can be tested on (Q.baseChangeOfProjective S).baseChangeOfProjective F for every field F over S, since the two forms differ by this isometry.
Equations
- QuadraticForm.baseChangeOfProjectiveIsometryEquiv S T Q = { toLinearEquiv := TensorProduct.AlgebraTensorModule.cancelBaseChange R S T T M, map_app' := ⋯ }
Instances For
Anisotropy and localization (GPR Exc. 12.38(b)) #
GPR Exc. 12.38(b), for quadratic forms. Let L be the localization of R at a
multiplicative set S of non-zero-divisors. A quadratic form on a finitely generated projective
R-module is anisotropic if and only if its base change to L is; equivalently, it represents
zero if and only if its base change does.
A null vector m ≠ 0 gives the null vector 1 ⊗ m ≠ 0, since a projective module has no
S-torsion. Conversely a null vector x of L ⊗[R] M satisfies s • x = 1 ⊗ m for some s ∈ S
and m ∈ M, and then Q m maps to s² Q_L(x) = 0.
GPR Exc. 12.38(b) over the fraction field. A quadratic form on a finitely generated
projective module is anisotropic if and only if its base change to the fraction field is.