Trivializing a graded-module twist after degree-one localization #
If f is homogeneous of degree one, multiplication by f ^ d trivializes the natural shift
A(d) after localizing away from f. This file constructs that statement at the exact
degree-zero-localization level used by the associated-sheaf construction.
The sign convention is DerivedAlgGeo's convention A(d)ₙ = Aₙ₊d: a fraction in the shifted
degree-zero localization has ordinary graded degree d. Multiplying it by f⁻ᵈ produces a
degree-zero fraction, and multiplication by fᵈ is the inverse operation.
Divide an A(d) fraction by f ^ d, obtaining an ordinary degree-zero fraction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiply an ordinary degree-zero fraction by f ^ d, obtaining a fraction in A(d).
Equations
- One or more equations did not get rendered due to their size.
Instances For
On a degree-one chart, the degree-zero localization of A(d) is canonically the chart ring
as a module over itself.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The chart trivialization with Mathlib's homogeneous-localization ring as target.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Trivialization in any localization containing the degree-one element #
The transition cocycle: (g'/g)ⁿ · (f/g')ⁿ = (f/g)ⁿ.
Composing the transition from the g'-chart to the g-chart with the scalar
that the g'-chart clears gives exactly the scalar the g-chart clears.
This is why the per-chart extensions of #585 agree where two charts meet: over
D₊(g), s is cleared by (f/g)ⁿ, and over D₊(g') by (f/g')ⁿ; this
identity says that carrying the second across by the transition lands on the
first, with no correction factor.
Cancellation of g'ⁿ, and nothing else — note f never has to be a unit, it
appears only in numerators.
Divide an A(d) fraction by f ^ d, given that f itself lies in S.
Membership is genuinely the hypothesis consumed, not merely invertibility of f in
Localization S: the graded representative below keeps every denominator inside S by
multiplying c.den by f ^ d, which needs f ^ d ∈ S. When f is only invertible — the
Čech-intersection case, where the denominator submonoid contains no degree-one element at
all — use natShiftLinearEquivOfMulMem, which asks instead for a homogeneous cofactor h
with f * h ∈ S; taking h = 1 recovers the membership hypothesis.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiply an ordinary degree-zero fraction by f ^ d in any localization containing f.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Trivializing when f is only invertible, not a member #
natShiftToSelfLinearMapOfMem asks for f ∈ S, but its own statement only needs f to be
invertible in Localization S. The gap is not academic: on a Čech intersection the denominator
submonoid is .powers (∏ₐ gₐ), which for more than one factor contains no degree-one element at
all, while every gₐ is invertible there.
The hypothesis below records invertibility in the form the graded bookkeeping can use: a
homogeneous cofactor h with f * h ∈ S. Division by f ^ d is then performed as
multiplication by h ^ d / (f * h) ^ d, which is the same element of the localization but keeps
every denominator literally inside S. Taking h = 1 recovers the membership hypothesis.
Divide an A(d) fraction by f ^ d whenever a homogeneous cofactor carries f into the
denominator submonoid.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiplication and division by f ^ d are inverse whenever a homogeneous cofactor carries
f into the denominator submonoid. This is the form the Čech intersections need: there f is
one variable and the cofactor is the product of the others.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiplication and division by f ^ d give inverse degree-zero localization maps whenever
f belongs to the denominator submonoid.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Value of the cofactor trivialization on a homogeneous fraction.
The OfMem sibling above divides by f ^ d; here f need only be invertible, so the fraction
is multiplied by the cofactor power h ^ d and the denominator picks up (f * h) ^ d instead.
This is the computation rule the Čech comparison needs, where f is one variable and h is the
product of the others.
Integer twists #
intShift 𝒜 d is the zero-extended integer shift: its degree-n piece asks for an element of
𝒜 k with (k : ℤ) = n + d, and retains 0 when that integer is negative.
Lowering the twist by e while raising the fraction's degree by e leaves that integer
condition identical — ((n + e : ℕ) : ℤ) + (d - e) = (n : ℤ) + d. So multiplying the
denominator by f ^ e transports the whole disjunctive membership verbatim, and in particular
the zero branch needs no separate treatment. That is what makes the integer case no harder than
the natural one here, and it is the step a negative twist is built from: taking d = 0 sends
A to A(-e).
The integer-shift membership condition depends only on the integer n + d, so raising the
degree by e and lowering the twist by e is the same condition.
Divide an A(d) fraction by f ^ e, lowering the integer twist to d - e.
Only membership of f in the denominator submonoid is used, exactly as in the nonnegative
case; the twist d is unconstrained in sign.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiplying the numerator by f ^ e raises an integer twist back by e.
Multiply an A(d - e) fraction by f ^ e, raising the integer twist back to d.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Multiplication and division by f ^ e identify an integer twist with its lowering by e.
Taking d = 0 gives A ≃ A(-e) over any localization containing f, which is the negative
twist the Serre-finiteness dévissage needs. The sign of d plays no role.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reaching twist zero #
intShiftLowerLinearEquiv computes its target as d - e, which is awkward to aim at a
prescribed twist: hitting A(0) from A(d) would need d - e to be definitionally zero. The
hypothesis-carrying form below takes the target twist as a parameter instead, so a caller
supplies the arithmetic as a proof rather than fighting a transport.
intShiftLowerLinearEquiv with the target twist named rather than computed.
Equations
- GradedModule.DegreeZeroLocalization.intShiftShiftLinearEquiv 𝒜 hf d d' e hdd' hfS = ⋯ ▸ GradedModule.DegreeZeroLocalization.intShiftLowerLinearEquiv 𝒜 hf d e hfS
Instances For
Trivializing an integer twist, without a sign split in the term #
Writing the trivialization as if 0 ≤ d then … else … type-checks, but it makes every
downstream computation branch: a locally fractional section carries an explicit
degree/numerator/denominator certificate, so a caller needs a formula for the image of mk c,
and a definition by cases yields one formula per branch forever after.
There is a single formula covering both signs. Multiplying by
f ^ (-d).toNat / f ^ d.toNat
divides by f ^ d when d ≥ 0 and multiplies by f ^ (-d) when d < 0, because exactly one
of d.toNat and (-d).toNat is nonzero. The sign of d then appears only inside the
degree bookkeeping, discharged by omega, and never in the term.
The numerator of the trivialized fraction lies in the degree the denominator does.
Every integer twist is trivial on a localization containing a degree-one element.
One formula covers both signs; see the section comment.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The trivialization in explicit fractions, in one formula for both signs.
This is what makes the uniform definition worth having: a locally fractional section carries a degree/numerator/denominator certificate, and rebuilding it downstream needs exactly this rule — once, not once per sign.
The two degree-one trivializations of an integer twist differ by gⁿ / fⁿ.
intShiftZeroLinearEquiv is multiplication by intTwistScalar, which at a
nonnegative twist n is 1 / fⁿ. So trivializing at f and trivializing at g
differ by the unit gⁿ / fⁿ, and the identity reduces to a cancellation in
Localization S.
This is the transition function of O(n) between two degree-one charts, and it
is what an overlap comparison consumes: on D₊(f) ⊓ D₊(g) a section trivialized
one way is gⁿ/fⁿ times the same section trivialized the other way.
Stated on the underlying LocalizedModule, which drops the degree bookkeeping
entirely — both sides are scalar multiples of the same z, so no NumDenSameDeg
appears and no degree has to be matched.
The numerator of the inverse trivialization lies in the twist it should.
The inverse trivialization in explicit fractions, again in one formula for both signs.
The cofactor form, for Čech intersections #
intShiftZeroLinearEquiv asks for f ∈ S. A Čech intersection cannot supply that: the
denominator there is ∏ₐ X_{x a}, homogeneous of degree n + 1, so for n ≥ 1 its powers
submonoid contains no degree-one element at all. What is available is a homogeneous cofactor h
with f * h ∈ S — the product of the remaining variables.
The scalar is parameterized by its two exponents rather than by d directly. That is not
cosmetic: writing the inverse as the -d instance of the same definition puts (- -d).toNat
in the term, which is only propositionally d.toNat, and every subsequent change fails on it.
Naming the exponents makes the forward and inverse scalars the same definition with the pair
swapped, and their product telescopes to (f * h) ^ (a + b) over itself.
Degrees for the cofactor trivialization: multiplying by h ^ a * f ^ b carries the twist
(a : ℤ) - b to the twist zero.
The same, in the direction that produces the twist rather than removing it.
Trivializing an integer twist when f is only invertible in S, via a homogeneous cofactor.
This is the form the Čech intersections need: there f is one variable of the index and h is
the product of the others. The twist is given as (a : ℤ) - b so that the caller chooses the
exponents; a = d.toNat, b = (-d).toNat recovers an arbitrary d.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cofactor trivialization in explicit fractions.
The same trivialization for a graded module #
Everything above is stated for 𝒜 as a module over itself, which is all the twisting sheaf needs
and all that TwistChart.lean and Finiteness.lean ever ask for. The tensor comparison
F ⊗ O(d) ≅ F(d) of #584 needs it for an arbitrary graded module, and nothing in the
construction resists: intTwistScalar lives in Localization S and acts on LocalizedModule S M
exactly as it acts on LocalizedModule S A.
Only two things are genuinely new. The degree bookkeeping is SetLike.GradedSMul.smul_mem where
the ring case used SetLike.mul_mem_graded; and map_smul' has to name the algebraMap into
Localization S, because the HomogeneousLocalization 𝒜 S-action is Module.compHom along it and
the two actions commute only after that is made visible.
The numerator here is f ^ (-d).toNat • m rather than m * f ^ (-d).toNat, which is the order
LocalizedModule.mk_smul_mk produces, so the numerator needs no mul_comm fix-up — only the
denominator does.
The numerator of the trivialized fraction lies in the degree the denominator does.
The numerator of the inverse trivialization lies in the twist it should.
Every integer twist of a graded module is trivial on a localization containing a degree-one element.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The trivialization in explicit fractions, in one formula for both signs.
The module analogue of intShiftZeroLinearEquiv_apply_mk, and needed for the same reason: a
locally fractional section carries a degree/numerator/denominator certificate, and rebuilding it
downstream needs exactly this rule.
The inverse trivialization in explicit fractions, again in one formula for both signs.