The twists compose, on the sheaf side #
Shift.lean proves that the graded identity M(d)(e) = M(d + e) is false. intShift
zero-extends, so with d = 10, e = -5 and n = 0 the double shift is {0} while the single
shift is ๐ 5; eq_zero_of_mem_intShift_intShift_of_neg is a theorem written for no purpose
other than to record that. Its note also says what to do about it:
This is a fact about the algebraic model, not about the sheaf.
associatedSheafonly ever reads these pieces through homogeneous localizations, where the missing degrees are inverted back in, so the sheaf-level compositionO(d)(e) โ O(d + e)is not obstructed by this โ but it cannot be obtained by transporting an algebraic identity, and has to be proved on the sheaf side.
This file is that proof, and sheafTwistAddIso is the integer analogue of sheafNatTwistAddIso
that TwistingSheaf.lean declined to assert for exactly this reason.
The shape of the argument #
The comparison is pointwise the identity. Fiber is DegreeZeroLocalization, which is a
submodule of LocalizedModule S M, and that ambient does not mention the grading at all โ so the
two twists are subobjects of one object and degreeZeroSubmodule_intShift_intShift says their
carriers coincide. Nothing is transported; only the certificate changes.
What is left is the local-fraction condition, and the two directions are not symmetric:
- forward, nothing moves. The numerator's certificate is rebuilt through
mem_intShift_add_of_mem_intShift_intShift, whose hypothesis-free existence is the useful half ofmem_intShift_add_iff_of_nonneg; - backward is where the content is. A fraction certified only for the single shift is rewritten as
ฯ^k ยท r / ฯ^k ยท t, which raises its degree without changing the element until the double shift can certify it, and the neighbourhood shrinks toV โ Dโ(ฯ)so that oneฯserves every point of it. The pointwise statement would not suffice:isLocallyFractiondemands a single fraction on a whole neighbourhood, and a per-point choice ofฯwould not give one.
exists_homogeneous_pos_not_mem supplies the ฯ, and is where the geometry enters: a point of
Proj is exactly a relevant prime, so it misses a homogeneous element of positive degree.
Scope #
The composition only. Relating it to the tensor product โ F โ O(d) โ
F(d), and hence
O(d) โ O(e) โ
O(d + e) โ is a separate comparison and is not here.
Every point of Proj misses a homogeneous element of positive degree.
The point misses t, phrased for the localization's denominators.
The two shifts have the same fiber at every point of Proj.
The fiber comparison, as a linear equivalence. It is the identity on carriers.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Backward transfer of the local-fraction condition.
The fraction certified for the single shift is rewritten with a power of ฯ in numerator and
denominator, which raises its degree until the double shift can certify it. The neighbourhood
shrinks to V โ Dโ(ฯ) so that one ฯ serves every point of it.
Forward transfer of the local-fraction condition.
Nothing moves: the fraction is the same, and only the numerator's membership certificate is rebuilt, through the unconditional inclusion.
The two twists have the same sections over every open.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The section comparison is linear over the structure-sheaf sections.
Equations
- One or more equations did not get rendered due to their size.
Instances For
O(d)(e) โ
O(d + e), on the sheaf side.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The integer twists compose.
The statement TwistingSheaf.lean records as belonging "with the later quasi-coherence/basic-open
equivalence", and the integer analogue of sheafNatTwistAddIso. Definitionally this is
associatedSheafIntShiftAddIso; it is restated in twist language because that is how callers
meet it.
Equations
- AlgebraicGeometry.Proj.sheafTwistAddIso ๐ ๐ d e = AlgebraicGeometry.Proj.associatedSheafIntShiftAddIso ๐ ๐ d e
Instances For
O(d)(e) โ
O(d + e).
The headline instance of sheafTwistAddIso, at the graded ring as a module over itself.
Equations
- AlgebraicGeometry.Proj.twistingSheafAddIso ๐ d e = AlgebraicGeometry.Proj.sheafTwistAddIso ๐ ๐ d e