algebraic_geometry.projective_spectrum.structure_sheaf
β·
Mathlib.AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -6,7 +6,7 @@ Authors: Jujian Zhang
import AlgebraicGeometry.ProjectiveSpectrum.Topology
import Topology.Sheaves.LocalPredicate
import RingTheory.GradedAlgebra.HomogeneousLocalization
-import AlgebraicGeometry.LocallyRingedSpace
+import Geometry.RingedSpace.LocallyRingedSpace
#align_import algebraic_geometry.projective_spectrum.structure_sheaf from "leanprover-community/mathlib"@"1a51edf13debfcbe223fa06b1cb353b9ed9751cc"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -143,7 +143,7 @@ theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x :
Β· simp only [add_mul, map_add, Pi.add_apply, RingHom.map_mul, ext_iff_val, add_val]
obtain β¨nin1, hy1β© := wa (opens.inf_le_left Va Vb y)
obtain β¨nin2, hy2β© := wb (opens.inf_le_right Va Vb y)
- dsimp only at hy1 hy2
+ dsimp only at hy1 hy2
erw [hy1, hy2]
simpa only [val_mk', add_mk, β Subtype.val_eq_coe, add_comm, mul_comm sa sb]
#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.addMem'
@@ -156,7 +156,7 @@ theorem negMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : u
rcases ha x with β¨V, m, i, j, β¨r, r_memβ©, β¨s, s_memβ©, wβ©
choose nin hy using w
refine' β¨V, m, i, j, β¨-r, Submodule.neg_mem _ r_memβ©, β¨s, s_memβ©, fun y => β¨nin y, _β©β©
- simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
+ simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
simp only [Pi.neg_apply, ext_iff_val, neg_val, hy, val_mk', β Subtype.val_eq_coe, neg_mk]
#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.negMem'
-/
@@ -395,15 +395,15 @@ def Proj.stalkIso' (x : ProjectiveSpectrum.top π) :
obtain β¨v2, memv2, i2, β¨j2, β¨a2, a2_memβ©, β¨b2, b2_memβ©, hs2β©β© := s2.2 β¨x, memu2β©
obtain β¨b1_nin_x, eq2β© := hs1 β¨x, memv1β©
obtain β¨b2_nin_x, eq3β© := hs2 β¨x, memv2β©
- dsimp only at eq1 eq2 eq3
+ dsimp only at eq1 eq2 eq3
erw [stalk_to_fiber_ring_hom_germ π u1 β¨x, memu1β© s1,
- stalk_to_fiber_ring_hom_germ π u2 β¨x, memu2β© s2] at eq1
- erw [eq1] at eq2
- erw [eq2, Quotient.eq'] at eq3
- change Localization.mk _ _ = Localization.mk _ _ at eq3
- rw [Localization.mk_eq_mk', IsLocalization.eq] at eq3
+ stalk_to_fiber_ring_hom_germ π u2 β¨x, memu2β© s2] at eq1
+ erw [eq1] at eq2
+ erw [eq2, Quotient.eq'] at eq3
+ change Localization.mk _ _ = Localization.mk _ _ at eq3
+ rw [Localization.mk_eq_mk', IsLocalization.eq] at eq3
obtain β¨β¨c, hcβ©, eq3β© := eq3
- simp only [β Subtype.val_eq_coe] at eq3
+ simp only [β Subtype.val_eq_coe] at eq3
have eq3' :
β (y : ProjectiveSpectrum.top π)
(hy :
@@ -444,7 +444,7 @@ def Proj.stalkIso' (x : ProjectiveSpectrum.top π) :
obtain β¨b1_nin_y, eq6β© :=
hs1 β¨_, le_of_hom (opens.inf_le_left _ _ β« opens.inf_le_right _ _) y.2β©
obtain β¨b2_nin_y, eq7β© := hs2 β¨_, le_of_hom (opens.inf_le_right _ _) y.2β©
- simp only at eq6 eq7
+ simp only at eq6 eq7
erw [eq6, eq7, Quotient.eq']
change Localization.mk _ _ = Localization.mk _ _
exact
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang
-/
-import Mathbin.AlgebraicGeometry.ProjectiveSpectrum.Topology
-import Mathbin.Topology.Sheaves.LocalPredicate
-import Mathbin.RingTheory.GradedAlgebra.HomogeneousLocalization
-import Mathbin.AlgebraicGeometry.LocallyRingedSpace
+import AlgebraicGeometry.ProjectiveSpectrum.Topology
+import Topology.Sheaves.LocalPredicate
+import RingTheory.GradedAlgebra.HomogeneousLocalization
+import AlgebraicGeometry.LocallyRingedSpace
#align_import algebraic_geometry.projective_spectrum.structure_sheaf from "leanprover-community/mathlib"@"1a51edf13debfcbe223fa06b1cb353b9ed9751cc"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -202,7 +202,7 @@ def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring
one_mem' := oneMem' U
add_mem' := addMem' U
neg_mem' := negMem' U
- mul_mem' := mulMem' U
+ hMul_mem' := mulMem' U
#align algebraic_geometry.projective_spectrum.structure_sheaf.sections_subring AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.sectionsSubring
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang
-
-! This file was ported from Lean 3 source module algebraic_geometry.projective_spectrum.structure_sheaf
-! leanprover-community/mathlib commit 1a51edf13debfcbe223fa06b1cb353b9ed9751cc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.AlgebraicGeometry.ProjectiveSpectrum.Topology
import Mathbin.Topology.Sheaves.LocalPredicate
import Mathbin.RingTheory.GradedAlgebra.HomogeneousLocalization
import Mathbin.AlgebraicGeometry.LocallyRingedSpace
+#align_import algebraic_geometry.projective_spectrum.structure_sheaf from "leanprover-community/mathlib"@"1a51edf13debfcbe223fa06b1cb353b9ed9751cc"
+
/-!
# The structure sheaf on `projective_spectrum π`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/1a51edf13debfcbe223fa06b1cb353b9ed9751cc
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang
! This file was ported from Lean 3 source module algebraic_geometry.projective_spectrum.structure_sheaf
-! leanprover-community/mathlib commit 486cb2f3bda4a67557c6285f5bd0c3348c1eea81
+! leanprover-community/mathlib commit 1a51edf13debfcbe223fa06b1cb353b9ed9751cc
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.AlgebraicGeometry.LocallyRingedSpace
/-!
# The structure sheaf on `projective_spectrum π`.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In `src/algebraic_geometry/topology.lean`, we have given a topology on `projective_spectrum π`; in
this file we will construct a sheaf on `projective_spectrum π`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/8905e5ed90859939681a725b00f6063e65096d95
@@ -71,6 +71,7 @@ namespace ProjectiveSpectrum.StructureSheaf
variable {π}
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.IsFraction /-
/-- The predicate saying that a dependent function on an open `U` is realised as a fixed fraction
`r / s` of *same grading* in each of the stalks (which are localizations at various prime ideals).
-/
@@ -78,9 +79,11 @@ def IsFraction {U : Opens (ProjectiveSpectrum.top π)} (f : β x : U, at x.1)
β (i : β) (r s : π i),
β x : U, β s_nin : s.1 β x.1.asHomogeneousIdeal, f x = Quotient.mk'' β¨i, r, s, s_ninβ©
#align algebraic_geometry.projective_spectrum.structure_sheaf.is_fraction AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.IsFraction
+-/
variable (π)
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.isFractionPrelocal /-
/--
The predicate `is_fraction` is "prelocal", in the sense that if it holds on `U` it holds on any open
subset `V` of `U`.
@@ -90,13 +93,16 @@ def isFractionPrelocal : PrelocalPredicate fun x : ProjectiveSpectrum.top π =
pred U f := IsFraction f
res := by rintro V U i f β¨j, r, s, wβ© <;> exact β¨j, r, s, fun y => w (i y)β©
#align algebraic_geometry.projective_spectrum.structure_sheaf.is_fraction_prelocal AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.isFractionPrelocal
+-/
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.isLocallyFraction /-
/-- We will define the structure sheaf as the subsheaf of all dependent functions in
`Ξ x : U, homogeneous_localization π x` consisting of those functions which can locally be expressed
as a ratio of `A` of same grading.-/
def isLocallyFraction : LocalPredicate fun x : ProjectiveSpectrum.top π => at x :=
(isFractionPrelocal π).sheafify
#align algebraic_geometry.projective_spectrum.structure_sheaf.is_locally_fraction AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.isLocallyFraction
+-/
namespace SectionSubring
@@ -104,17 +110,22 @@ variable {π}
open Submodule SetLike.GradedMonoid HomogeneousLocalization
-theorem zero_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zeroMem' /-
+theorem zeroMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (0 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨0, zero_mem _β©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zero_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zeroMem'
+-/
-theorem one_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.oneMem' /-
+theorem oneMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (1 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨1, one_memβ©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.one_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.oneMem'
+-/
-theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.addMem' /-
+theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a + b) := fun x =>
by
@@ -135,9 +146,11 @@ theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x
dsimp only at hy1 hy2
erw [hy1, hy2]
simpa only [val_mk', add_mk, β Subtype.val_eq_coe, add_comm, mul_comm sa sb]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.add_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.addMem'
+-/
-theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.negMem' /-
+theorem negMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) : (isLocallyFraction π).pred (-a) := fun x =>
by
rcases ha x with β¨V, m, i, j, β¨r, r_memβ©, β¨s, s_memβ©, wβ©
@@ -145,9 +158,11 @@ theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x :
refine' β¨V, m, i, j, β¨-r, Submodule.neg_mem _ r_memβ©, β¨s, s_memβ©, fun y => β¨nin y, _β©β©
simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
simp only [Pi.neg_apply, ext_iff_val, neg_val, hy, val_mk', β Subtype.val_eq_coe, neg_mk]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.neg_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.negMem'
+-/
-theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mulMem' /-
+theorem mulMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a * b) := fun x =>
by
@@ -166,7 +181,8 @@ theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x
rw [ext_iff_val] at hy1 hy2 β’
erw [mul_val, hy1, hy2]
simpa only [val_mk', mk_mul, β Subtype.val_eq_coe]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mul_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mulMem'
+-/
end SectionSubring
@@ -176,31 +192,38 @@ open SectionSubring
variable {π}
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.sectionsSubring /-
/-- The functions satisfying `is_locally_fraction` form a subring of all dependent functions
`Ξ x : U, homogeneous_localization π x`.-/
def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring (β x : unop U, at x.1)
where
carrier := {f | (isLocallyFraction π).pred f}
- zero_mem' := zero_mem' U
- one_mem' := one_mem' U
- add_mem' := add_mem' U
- neg_mem' := neg_mem' U
- mul_mem' := mul_mem' U
+ zero_mem' := zeroMem' U
+ one_mem' := oneMem' U
+ add_mem' := addMem' U
+ neg_mem' := negMem' U
+ mul_mem' := mulMem' U
#align algebraic_geometry.projective_spectrum.structure_sheaf.sections_subring AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.sectionsSubring
+-/
end
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structureSheafInType /-
/-- The structure sheaf (valued in `Type`, not yet `CommRing`) is the subsheaf consisting of
functions satisfying `is_locally_fraction`.-/
def structureSheafInType : Sheaf (Type _) (ProjectiveSpectrum.top π) :=
subsheafToTypes (isLocallyFraction π)
#align algebraic_geometry.projective_spectrum.structure_sheaf.structure_sheaf_in_Type AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structureSheafInType
+-/
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.commRingStructureSheafInTypeObj /-
instance commRingStructureSheafInTypeObj (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
CommRing ((structureSheafInType π).1.obj U) :=
(sectionsSubring U).toCommRing
#align algebraic_geometry.projective_spectrum.structure_sheaf.comm_ring_structure_sheaf_in_Type_obj AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.commRingStructureSheafInTypeObj
+-/
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing /-
/-- The structure presheaf, valued in `CommRing`, constructed by dressing up the `Type` valued
structure presheaf.-/
@[simps]
@@ -214,13 +237,16 @@ def structurePresheafInCommRing : Presheaf CommRingCat (ProjectiveSpectrum.top
map_one' := rfl
map_mul' := fun x y => rfl }
#align algebraic_geometry.projective_spectrum.structure_sheaf.structure_presheaf_in_CommRing AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing
+-/
+#print AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafCompForget /-
/-- Some glue, verifying that that structure presheaf valued in `CommRing` agrees with the `Type`
valued structure presheaf.-/
def structurePresheafCompForget :
structurePresheafInCommRing π β forget CommRingCat β
(structureSheafInType π).1 :=
NatIso.ofComponents (fun U => Iso.refl _) (by tidy)
#align algebraic_geometry.projective_spectrum.structure_sheaf.structure_presheaf_comp_forget AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafCompForget
+-/
end ProjectiveSpectrum.StructureSheaf
@@ -228,6 +254,7 @@ namespace ProjectiveSpectrum
open TopCat.Presheaf ProjectiveSpectrum.StructureSheaf Opens
+#print AlgebraicGeometry.ProjectiveSpectrum.Proj.structureSheaf /-
/-- The structure sheaf on `Proj` π, valued in `CommRing`.-/
def Proj.structureSheaf : Sheaf CommRingCat (ProjectiveSpectrum.top π) :=
β¨structurePresheafInCommRing π,
@@ -236,6 +263,7 @@ def Proj.structureSheaf : Sheaf CommRingCat (ProjectiveSpectrum.top π) :=
_ _).mpr
(isSheaf_of_iso (structurePresheafCompForget π).symm (structureSheafInType π).cond)β©
#align algebraic_geometry.projective_spectrum.Proj.structure_sheaf AlgebraicGeometry.ProjectiveSpectrum.Proj.structureSheaf
+-/
end ProjectiveSpectrum
@@ -243,13 +271,16 @@ section
open ProjectiveSpectrum ProjectiveSpectrum.StructureSheaf Opens
+#print AlgebraicGeometry.res_apply /-
@[simp]
theorem res_apply (U V : Opens (ProjectiveSpectrum.top π)) (i : V βΆ U)
(s : (Proj.structureSheaf π).1.obj (op U)) (x : V) :
((Proj.structureSheaf π).1.map i.op s).1 x = (s.1 (i x) : _) :=
rfl
#align algebraic_geometry.res_apply AlgebraicGeometry.res_apply
+-/
+#print AlgebraicGeometry.Proj.toSheafedSpace /-
/-- `Proj` of a graded ring as a `SheafedSpace`-/
def Proj.toSheafedSpace : SheafedSpace CommRingCat
where
@@ -257,7 +288,9 @@ def Proj.toSheafedSpace : SheafedSpace CommRingCat
Presheaf := (Proj.structureSheaf π).1
IsSheaf := (Proj.structureSheaf π).2
#align algebraic_geometry.Proj.to_SheafedSpace AlgebraicGeometry.Proj.toSheafedSpace
+-/
+#print AlgebraicGeometry.openToLocalization /-
/-- The ring homomorphism that takes a section of the structure sheaf of `Proj` on the open set `U`,
implemented as a subtype of dependent functions to localizations at homogeneous prime ideals, and
evaluates the section on the point corresponding to a given homogeneous prime ideal. -/
@@ -270,7 +303,9 @@ def openToLocalization (U : Opens (ProjectiveSpectrum.top π)) (x : Projective
map_zero' := rfl
map_add' _ _ := rfl
#align algebraic_geometry.open_to_localization AlgebraicGeometry.openToLocalization
+-/
+#print AlgebraicGeometry.stalkToFiberRingHom /-
/-- The ring homomorphism from the stalk of the structure sheaf of `Proj` at a point corresponding
to a homogeneous prime ideal `x` to the *homogeneous localization* at `x`,
formed by gluing the `open_to_localization` maps. -/
@@ -283,35 +318,45 @@ def stalkToFiberRingHom (x : ProjectiveSpectrum.top π) :
app := fun U =>
openToLocalization π ((OpenNhds.inclusion _).obj (unop U)) x (unop U).2 } }
#align algebraic_geometry.stalk_to_fiber_ring_hom AlgebraicGeometry.stalkToFiberRingHom
+-/
+#print AlgebraicGeometry.germ_comp_stalkToFiberRingHom /-
@[simp]
theorem germ_comp_stalkToFiberRingHom (U : Opens (ProjectiveSpectrum.top π)) (x : U) :
(Proj.structureSheaf π).Presheaf.germ x β« stalkToFiberRingHom π x =
openToLocalization π U x x.2 :=
Limits.colimit.ΞΉ_desc _ _
#align algebraic_geometry.germ_comp_stalk_to_fiber_ring_hom AlgebraicGeometry.germ_comp_stalkToFiberRingHom
+-/
+#print AlgebraicGeometry.stalkToFiberRingHom_germ' /-
@[simp]
theorem stalkToFiberRingHom_germ' (U : Opens (ProjectiveSpectrum.top π))
(x : ProjectiveSpectrum.top π) (hx : x β U) (s : (Proj.structureSheaf π).1.obj (op U)) :
stalkToFiberRingHom π x ((Proj.structureSheaf π).Presheaf.germ β¨x, hxβ© s) = (s.1 β¨x, hxβ© : _) :=
RingHom.ext_iff.1 (germ_comp_stalkToFiberRingHom π U β¨x, hxβ© : _) s
#align algebraic_geometry.stalk_to_fiber_ring_hom_germ' AlgebraicGeometry.stalkToFiberRingHom_germ'
+-/
+#print AlgebraicGeometry.stalkToFiberRingHom_germ /-
@[simp]
theorem stalkToFiberRingHom_germ (U : Opens (ProjectiveSpectrum.top π)) (x : U)
(s : (Proj.structureSheaf π).1.obj (op U)) :
stalkToFiberRingHom π x ((Proj.structureSheaf π).Presheaf.germ x s) = s.1 x := by cases x;
exact stalk_to_fiber_ring_hom_germ' π U _ _ _
#align algebraic_geometry.stalk_to_fiber_ring_hom_germ AlgebraicGeometry.stalkToFiberRingHom_germ
+-/
+#print AlgebraicGeometry.HomogeneousLocalization.mem_basicOpen /-
theorem HomogeneousLocalization.mem_basicOpen (x : ProjectiveSpectrum.top π) (f : at x) :
x β ProjectiveSpectrum.basicOpen π f.den := by rw [ProjectiveSpectrum.mem_basicOpen];
exact f.denom_mem
#align algebraic_geometry.homogeneous_localization.mem_basic_open AlgebraicGeometry.HomogeneousLocalization.mem_basicOpen
+-/
variable (π)
+#print AlgebraicGeometry.sectionInBasicOpen /-
/-- Given a point `x` corresponding to a homogeneous prime ideal, there is a (dependent) function
such that, for any `f` in the homogeneous localization at `x`, it returns the obvious section in the
basic open set `D(f.denom)`-/
@@ -322,7 +367,9 @@ def sectionInBasicOpen (x : ProjectiveSpectrum.top π) :
β¨ProjectiveSpectrum.basicOpen π f.den, y.2,
β¨π _, β¨f.deg, β¨β¨f.num, f.num_mem_degβ©, β¨f.den, f.den_mem_degβ©, fun z => β¨z.2, rflβ©β©β©β©β©β©
#align algebraic_geometry.section_in_basic_open AlgebraicGeometry.sectionInBasicOpen
+-/
+#print AlgebraicGeometry.homogeneousLocalizationToStalk /-
/-- Given any point `x` and `f` in the homogeneous localization at `x`, there is an element in the
stalk at `x` obtained by `section_in_basic_open`. This is the inverse of `stalk_to_fiber_ring_hom`.
-/
@@ -332,7 +379,9 @@ def homogeneousLocalizationToStalk (x : ProjectiveSpectrum.top π) :
(β¨x, HomogeneousLocalization.mem_basicOpen _ x fβ© : ProjectiveSpectrum.basicOpen _ f.den)
(sectionInBasicOpen _ x f)
#align algebraic_geometry.homogeneous_localization_to_stalk AlgebraicGeometry.homogeneousLocalizationToStalk
+-/
+#print AlgebraicGeometry.Proj.stalkIso' /-
/-- Using `homogeneous_localization_to_stalk`, we construct a ring isomorphism between stalk at `x`
and homogeneous localization at `x` for any point `x` in `Proj`.-/
def Proj.stalkIso' (x : ProjectiveSpectrum.top π) :
@@ -420,7 +469,9 @@ def Proj.stalkIso' (x : ProjectiveSpectrum.top π) :
f.eq_num_div_denom]
rflβ©β©
#align algebraic_geometry.Proj.stalk_iso' AlgebraicGeometry.Proj.stalkIso'
+-/
+#print AlgebraicGeometry.Proj.toLocallyRingedSpace /-
/-- `Proj` of a graded ring as a `LocallyRingedSpace`-/
def Proj.toLocallyRingedSpace : LocallyRingedSpace :=
{ Proj.toSheafedSpace π with
@@ -428,6 +479,7 @@ def Proj.toLocallyRingedSpace : LocallyRingedSpace :=
@RingEquiv.localRing _ (show LocalRing (at x) from inferInstance) _
(Proj.stalkIso' π x).symm }
#align algebraic_geometry.Proj.to_LocallyRingedSpace AlgebraicGeometry.Proj.toLocallyRingedSpace
+-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/5dc6092d09e5e489106865241986f7f2ad28d4c8
@@ -104,17 +104,17 @@ variable {π}
open Submodule SetLike.GradedMonoid HomogeneousLocalization
-theorem zeroMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+theorem zero_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (0 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨0, zero_mem _β©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zeroMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zero_mem'
-theorem oneMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+theorem one_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (1 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨1, one_memβ©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.oneMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.one_mem'
-theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a + b) := fun x =>
by
@@ -135,9 +135,9 @@ theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x :
dsimp only at hy1 hy2
erw [hy1, hy2]
simpa only [val_mk', add_mk, β Subtype.val_eq_coe, add_comm, mul_comm sa sb]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.addMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.add_mem'
-theorem negMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
+theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) : (isLocallyFraction π).pred (-a) := fun x =>
by
rcases ha x with β¨V, m, i, j, β¨r, r_memβ©, β¨s, s_memβ©, wβ©
@@ -145,9 +145,9 @@ theorem negMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : u
refine' β¨V, m, i, j, β¨-r, Submodule.neg_mem _ r_memβ©, β¨s, s_memβ©, fun y => β¨nin y, _β©β©
simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
simp only [Pi.neg_apply, ext_iff_val, neg_val, hy, val_mk', β Subtype.val_eq_coe, neg_mk]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.negMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.neg_mem'
-theorem mulMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a * b) := fun x =>
by
@@ -166,7 +166,7 @@ theorem mulMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x :
rw [ext_iff_val] at hy1 hy2 β’
erw [mul_val, hy1, hy2]
simpa only [val_mk', mk_mul, β Subtype.val_eq_coe]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mulMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mul_mem'
end SectionSubring
@@ -181,11 +181,11 @@ variable {π}
def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring (β x : unop U, at x.1)
where
carrier := {f | (isLocallyFraction π).pred f}
- zero_mem' := zeroMem' U
- one_mem' := oneMem' U
- add_mem' := addMem' U
- neg_mem' := negMem' U
- mul_mem' := mulMem' U
+ zero_mem' := zero_mem' U
+ one_mem' := one_mem' U
+ add_mem' := add_mem' U
+ neg_mem' := neg_mem' U
+ mul_mem' := mul_mem' U
#align algebraic_geometry.projective_spectrum.structure_sheaf.sections_subring AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.sectionsSubring
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -65,7 +65,6 @@ variable [CommRing R] [CommRing A] [Algebra R A]
variable (π : β β Submodule R A) [GradedAlgebra π]
--- mathport name: Β«exprat Β»
local notation "at " x => HomogeneousLocalization.AtPrime π x.asHomogeneousIdeal.toIdeal
namespace ProjectiveSpectrum.StructureSheaf
mathlib commit https://github.com/leanprover-community/mathlib/commit/13361559d66b84f80b6d5a1c4a26aa5054766725
@@ -105,17 +105,17 @@ variable {π}
open Submodule SetLike.GradedMonoid HomogeneousLocalization
-theorem zero_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+theorem zeroMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (0 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨0, zero_mem _β©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zero_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zeroMem'
-theorem one_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+theorem oneMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (1 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨1, one_memβ©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.one_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.oneMem'
-theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a + b) := fun x =>
by
@@ -136,9 +136,9 @@ theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x
dsimp only at hy1 hy2
erw [hy1, hy2]
simpa only [val_mk', add_mk, β Subtype.val_eq_coe, add_comm, mul_comm sa sb]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.add_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.addMem'
-theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
+theorem negMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) : (isLocallyFraction π).pred (-a) := fun x =>
by
rcases ha x with β¨V, m, i, j, β¨r, r_memβ©, β¨s, s_memβ©, wβ©
@@ -146,9 +146,9 @@ theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x :
refine' β¨V, m, i, j, β¨-r, Submodule.neg_mem _ r_memβ©, β¨s, s_memβ©, fun y => β¨nin y, _β©β©
simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
simp only [Pi.neg_apply, ext_iff_val, neg_val, hy, val_mk', β Subtype.val_eq_coe, neg_mk]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.neg_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.negMem'
-theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+theorem mulMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a * b) := fun x =>
by
@@ -167,7 +167,7 @@ theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x
rw [ext_iff_val] at hy1 hy2 β’
erw [mul_val, hy1, hy2]
simpa only [val_mk', mk_mul, β Subtype.val_eq_coe]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mul_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mulMem'
end SectionSubring
@@ -182,11 +182,11 @@ variable {π}
def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring (β x : unop U, at x.1)
where
carrier := {f | (isLocallyFraction π).pred f}
- zero_mem' := zero_mem' U
- one_mem' := one_mem' U
- add_mem' := add_mem' U
- neg_mem' := neg_mem' U
- mul_mem' := mul_mem' U
+ zero_mem' := zeroMem' U
+ one_mem' := oneMem' U
+ add_mem' := addMem' U
+ neg_mem' := negMem' U
+ mul_mem' := mulMem' U
#align algebraic_geometry.projective_spectrum.structure_sheaf.sections_subring AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.sectionsSubring
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -181,7 +181,7 @@ variable {π}
`Ξ x : U, homogeneous_localization π x`.-/
def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring (β x : unop U, at x.1)
where
- carrier := { f | (isLocallyFraction π).pred f }
+ carrier := {f | (isLocallyFraction π).pred f}
zero_mem' := zero_mem' U
one_mem' := one_mem' U
add_mem' := add_mem' U
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -76,7 +76,7 @@ variable {π}
`r / s` of *same grading* in each of the stalks (which are localizations at various prime ideals).
-/
def IsFraction {U : Opens (ProjectiveSpectrum.top π)} (f : β x : U, at x.1) : Prop :=
- β (i : β)(r s : π i),
+ β (i : β) (r s : π i),
β x : U, β s_nin : s.1 β x.1.asHomogeneousIdeal, f x = Quotient.mk'' β¨i, r, s, s_ninβ©
#align algebraic_geometry.projective_spectrum.structure_sheaf.is_fraction AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.IsFraction
@@ -133,7 +133,7 @@ theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x
Β· simp only [add_mul, map_add, Pi.add_apply, RingHom.map_mul, ext_iff_val, add_val]
obtain β¨nin1, hy1β© := wa (opens.inf_le_left Va Vb y)
obtain β¨nin2, hy2β© := wb (opens.inf_le_right Va Vb y)
- dsimp only at hy1 hy2
+ dsimp only at hy1 hy2
erw [hy1, hy2]
simpa only [val_mk', add_mk, β Subtype.val_eq_coe, add_comm, mul_comm sa sb]
#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.add_mem'
@@ -144,7 +144,7 @@ theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x :
rcases ha x with β¨V, m, i, j, β¨r, r_memβ©, β¨s, s_memβ©, wβ©
choose nin hy using w
refine' β¨V, m, i, j, β¨-r, Submodule.neg_mem _ r_memβ©, β¨s, s_memβ©, fun y => β¨nin y, _β©β©
- simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
+ simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
simp only [Pi.neg_apply, ext_iff_val, neg_val, hy, val_mk', β Subtype.val_eq_coe, neg_mk]
#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.neg_mem'
@@ -164,7 +164,7 @@ theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x
Β· simp only [Pi.mul_apply, RingHom.map_mul]
choose nin1 hy1 using wa (opens.inf_le_left Va Vb y)
choose nin2 hy2 using wb (opens.inf_le_right Va Vb y)
- rw [ext_iff_val] at hy1 hy2β’
+ rw [ext_iff_val] at hy1 hy2 β’
erw [mul_val, hy1, hy2]
simpa only [val_mk', mk_mul, β Subtype.val_eq_coe]
#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mul_mem'
@@ -347,15 +347,15 @@ def Proj.stalkIso' (x : ProjectiveSpectrum.top π) :
obtain β¨v2, memv2, i2, β¨j2, β¨a2, a2_memβ©, β¨b2, b2_memβ©, hs2β©β© := s2.2 β¨x, memu2β©
obtain β¨b1_nin_x, eq2β© := hs1 β¨x, memv1β©
obtain β¨b2_nin_x, eq3β© := hs2 β¨x, memv2β©
- dsimp only at eq1 eq2 eq3
+ dsimp only at eq1 eq2 eq3
erw [stalk_to_fiber_ring_hom_germ π u1 β¨x, memu1β© s1,
- stalk_to_fiber_ring_hom_germ π u2 β¨x, memu2β© s2] at eq1
- erw [eq1] at eq2
- erw [eq2, Quotient.eq'] at eq3
- change Localization.mk _ _ = Localization.mk _ _ at eq3
- rw [Localization.mk_eq_mk', IsLocalization.eq] at eq3
+ stalk_to_fiber_ring_hom_germ π u2 β¨x, memu2β© s2] at eq1
+ erw [eq1] at eq2
+ erw [eq2, Quotient.eq'] at eq3
+ change Localization.mk _ _ = Localization.mk _ _ at eq3
+ rw [Localization.mk_eq_mk', IsLocalization.eq] at eq3
obtain β¨β¨c, hcβ©, eq3β© := eq3
- simp only [β Subtype.val_eq_coe] at eq3
+ simp only [β Subtype.val_eq_coe] at eq3
have eq3' :
β (y : ProjectiveSpectrum.top π)
(hy :
@@ -396,7 +396,7 @@ def Proj.stalkIso' (x : ProjectiveSpectrum.top π) :
obtain β¨b1_nin_y, eq6β© :=
hs1 β¨_, le_of_hom (opens.inf_le_left _ _ β« opens.inf_le_right _ _) y.2β©
obtain β¨b2_nin_y, eq7β© := hs2 β¨_, le_of_hom (opens.inf_le_right _ _) y.2β©
- simp only at eq6 eq7
+ simp only at eq6 eq7
erw [eq6, eq7, Quotient.eq']
change Localization.mk _ _ = Localization.mk _ _
exact
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -105,17 +105,17 @@ variable {π}
open Submodule SetLike.GradedMonoid HomogeneousLocalization
-theorem zeroMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+theorem zero_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (0 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨0, zero_mem _β©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zeroMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zero_mem'
-theorem oneMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+theorem one_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (1 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨1, one_memβ©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.oneMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.one_mem'
-theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a + b) := fun x =>
by
@@ -136,9 +136,9 @@ theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x :
dsimp only at hy1 hy2
erw [hy1, hy2]
simpa only [val_mk', add_mk, β Subtype.val_eq_coe, add_comm, mul_comm sa sb]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.addMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.add_mem'
-theorem negMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
+theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) : (isLocallyFraction π).pred (-a) := fun x =>
by
rcases ha x with β¨V, m, i, j, β¨r, r_memβ©, β¨s, s_memβ©, wβ©
@@ -146,9 +146,9 @@ theorem negMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : u
refine' β¨V, m, i, j, β¨-r, Submodule.neg_mem _ r_memβ©, β¨s, s_memβ©, fun y => β¨nin y, _β©β©
simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
simp only [Pi.neg_apply, ext_iff_val, neg_val, hy, val_mk', β Subtype.val_eq_coe, neg_mk]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.negMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.neg_mem'
-theorem mulMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a * b) := fun x =>
by
@@ -167,7 +167,7 @@ theorem mulMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x :
rw [ext_iff_val] at hy1 hy2β’
erw [mul_val, hy1, hy2]
simpa only [val_mk', mk_mul, β Subtype.val_eq_coe]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mulMem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mul_mem'
end SectionSubring
@@ -182,11 +182,11 @@ variable {π}
def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring (β x : unop U, at x.1)
where
carrier := { f | (isLocallyFraction π).pred f }
- zero_mem' := zeroMem' U
- one_mem' := oneMem' U
- add_mem' := addMem' U
- neg_mem' := negMem' U
- mul_mem' := mulMem' U
+ zero_mem' := zero_mem' U
+ one_mem' := one_mem' U
+ add_mem' := add_mem' U
+ neg_mem' := neg_mem' U
+ mul_mem' := mul_mem' U
#align algebraic_geometry.projective_spectrum.structure_sheaf.sections_subring AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.sectionsSubring
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -55,7 +55,7 @@ noncomputable section
namespace AlgebraicGeometry
-open DirectSum BigOperators Pointwise
+open scoped DirectSum BigOperators Pointwise
open DirectSum SetLike Localization TopCat TopologicalSpace CategoryTheory Opposite
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -128,10 +128,8 @@ theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x :
(mul_mem sa_mem rb_mem)β©,
β¨sa * sb, mul_mem sa_mem sb_memβ©, fun y => β¨fun h => _, _β©β©
Β· cases' (y : ProjectiveSpectrum.top π).IsPrime.mem_or_mem h with h h
- Β· obtain β¨nin, -β© := wa β¨y, (opens.inf_le_left Va Vb y).2β©
- exact nin h
- Β· obtain β¨nin, -β© := wb β¨y, (opens.inf_le_right Va Vb y).2β©
- exact nin h
+ Β· obtain β¨nin, -β© := wa β¨y, (opens.inf_le_left Va Vb y).2β©; exact nin h
+ Β· obtain β¨nin, -β© := wb β¨y, (opens.inf_le_right Va Vb y).2β©; exact nin h
Β· simp only [add_mul, map_add, Pi.add_apply, RingHom.map_mul, ext_iff_val, add_val]
obtain β¨nin1, hy1β© := wa (opens.inf_le_left Va Vb y)
obtain β¨nin2, hy2β© := wb (opens.inf_le_right Va Vb y)
@@ -161,10 +159,8 @@ theorem mulMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x :
β¨ra * rb, SetLike.mul_mem_graded ra_mem rb_memβ©,
β¨sa * sb, SetLike.mul_mem_graded sa_mem sb_memβ©, fun y => β¨fun h => _, _β©β©
Β· cases' (y : ProjectiveSpectrum.top π).IsPrime.mem_or_mem h with h h
- Β· choose nin hy using wa β¨y, (opens.inf_le_left Va Vb y).2β©
- exact nin h
- Β· choose nin hy using wb β¨y, (opens.inf_le_right Va Vb y).2β©
- exact nin h
+ Β· choose nin hy using wa β¨y, (opens.inf_le_left Va Vb y).2β©; exact nin h
+ Β· choose nin hy using wb β¨y, (opens.inf_le_right Va Vb y).2β©; exact nin h
Β· simp only [Pi.mul_apply, RingHom.map_mul]
choose nin1 hy1 using wa (opens.inf_le_left Va Vb y)
choose nin2 hy2 using wb (opens.inf_le_right Va Vb y)
@@ -306,16 +302,12 @@ theorem stalkToFiberRingHom_germ' (U : Opens (ProjectiveSpectrum.top π))
@[simp]
theorem stalkToFiberRingHom_germ (U : Opens (ProjectiveSpectrum.top π)) (x : U)
(s : (Proj.structureSheaf π).1.obj (op U)) :
- stalkToFiberRingHom π x ((Proj.structureSheaf π).Presheaf.germ x s) = s.1 x :=
- by
- cases x
+ stalkToFiberRingHom π x ((Proj.structureSheaf π).Presheaf.germ x s) = s.1 x := by cases x;
exact stalk_to_fiber_ring_hom_germ' π U _ _ _
#align algebraic_geometry.stalk_to_fiber_ring_hom_germ AlgebraicGeometry.stalkToFiberRingHom_germ
theorem HomogeneousLocalization.mem_basicOpen (x : ProjectiveSpectrum.top π) (f : at x) :
- x β ProjectiveSpectrum.basicOpen π f.den :=
- by
- rw [ProjectiveSpectrum.mem_basicOpen]
+ x β ProjectiveSpectrum.basicOpen π f.den := by rw [ProjectiveSpectrum.mem_basicOpen];
exact f.denom_mem
#align algebraic_geometry.homogeneous_localization.mem_basic_open AlgebraicGeometry.HomogeneousLocalization.mem_basicOpen
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -327,9 +327,9 @@ basic open set `D(f.denom)`-/
def sectionInBasicOpen (x : ProjectiveSpectrum.top π) :
β f : at x, (Proj.structureSheaf π).1.obj (op (ProjectiveSpectrum.basicOpen π f.den)) :=
fun f =>
- β¨fun y => Quotient.mk'' β¨f.deg, β¨f.num, f.num_mem_degβ©, β¨f.den, f.denom_mem_degβ©, y.2β©, fun y =>
+ β¨fun y => Quotient.mk'' β¨f.deg, β¨f.num, f.num_mem_degβ©, β¨f.den, f.den_mem_degβ©, y.2β©, fun y =>
β¨ProjectiveSpectrum.basicOpen π f.den, y.2,
- β¨π _, β¨f.deg, β¨β¨f.num, f.num_mem_degβ©, β¨f.den, f.denom_mem_degβ©, fun z => β¨z.2, rflβ©β©β©β©β©β©
+ β¨π _, β¨f.deg, β¨β¨f.num, f.num_mem_degβ©, β¨f.den, f.den_mem_degβ©, fun z => β¨z.2, rflβ©β©β©β©β©β©
#align algebraic_geometry.section_in_basic_open AlgebraicGeometry.sectionInBasicOpen
/-- Given any point `x` and `f` in the homogeneous localization at `x`, there is an element in the
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -105,17 +105,17 @@ variable {π}
open Submodule SetLike.GradedMonoid HomogeneousLocalization
-theorem zero_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+theorem zeroMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (0 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨0, zero_mem _β©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zero_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.zero_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.zeroMem'
-theorem one_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
+theorem oneMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) :
(isLocallyFraction π).pred (1 : β x : unop U, at x.1) := fun x =>
β¨unop U, x.2, π (unop U), β¨0, β¨1, one_memβ©, β¨1, one_memβ©, fun y => β¨_, rflβ©β©β©
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.one_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.one_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.oneMem'
-theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+theorem addMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a + b) := fun x =>
by
@@ -138,9 +138,9 @@ theorem add_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x
dsimp only at hy1 hy2
erw [hy1, hy2]
simpa only [val_mk', add_mk, β Subtype.val_eq_coe, add_comm, mul_comm sa sb]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.add_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.add_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.addMem'
-theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
+theorem negMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) : (isLocallyFraction π).pred (-a) := fun x =>
by
rcases ha x with β¨V, m, i, j, β¨r, r_memβ©, β¨s, s_memβ©, wβ©
@@ -148,9 +148,9 @@ theorem neg_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a : β x :
refine' β¨V, m, i, j, β¨-r, Submodule.neg_mem _ r_memβ©, β¨s, s_memβ©, fun y => β¨nin y, _β©β©
simp only [ext_iff_val, val_mk', β Subtype.val_eq_coe] at hy
simp only [Pi.neg_apply, ext_iff_val, neg_val, hy, val_mk', β Subtype.val_eq_coe, neg_mk]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.neg_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.neg_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.negMem'
-theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
+theorem mulMem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x : unop U, at x.1)
(ha : (isLocallyFraction π).pred a) (hb : (isLocallyFraction π).pred b) :
(isLocallyFraction π).pred (a * b) := fun x =>
by
@@ -171,7 +171,7 @@ theorem mul_mem' (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) (a b : β x
rw [ext_iff_val] at hy1 hy2β’
erw [mul_val, hy1, hy2]
simpa only [val_mk', mk_mul, β Subtype.val_eq_coe]
-#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mul_mem'
+#align algebraic_geometry.projective_spectrum.structure_sheaf.section_subring.mul_mem' AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.SectionSubring.mulMem'
end SectionSubring
@@ -186,11 +186,11 @@ variable {π}
def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring (β x : unop U, at x.1)
where
carrier := { f | (isLocallyFraction π).pred f }
- zero_mem' := zero_mem' U
- one_mem' := one_mem' U
- add_mem' := add_mem' U
- neg_mem' := neg_mem' U
- mul_mem' := mul_mem' U
+ zero_mem' := zeroMem' U
+ one_mem' := oneMem' U
+ add_mem' := addMem' U
+ neg_mem' := negMem' U
+ mul_mem' := mulMem' U
#align algebraic_geometry.projective_spectrum.structure_sheaf.sections_subring AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.sectionsSubring
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -282,7 +282,7 @@ formed by gluing the `open_to_localization` maps. -/
def stalkToFiberRingHom (x : ProjectiveSpectrum.top π) :
(Proj.structureSheaf π).Presheaf.stalk x βΆ CommRingCat.of (at x) :=
Limits.colimit.desc ((OpenNhds.inclusion x).op β (Proj.structureSheaf π).1)
- { x := _
+ { pt := _
ΞΉ :=
{
app := fun U =>
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.
@@ -88,7 +88,7 @@ def isFractionPrelocal : PrelocalPredicate fun x : ProjectiveSpectrum.top π =
/-- We will define the structure sheaf as the subsheaf of all dependent functions in
`Ξ x : U, HomogeneousLocalization π x` consisting of those functions which can locally be expressed
-as a ratio of `A` of same grading.-/
+as a ratio of `A` of same grading. -/
def isLocallyFraction : LocalPredicate fun x : ProjectiveSpectrum.top π => at x :=
(isFractionPrelocal π).sheafify
#align algebraic_geometry.projective_spectrum.structure_sheaf.is_locally_fraction AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.isLocallyFraction
@@ -171,7 +171,7 @@ open SectionSubring
variable {π}
/-- The functions satisfying `isLocallyFraction` form a subring of all dependent functions
-`Ξ x : U, HomogeneousLocalization π x`.-/
+`Ξ x : U, HomogeneousLocalization π x`. -/
def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring (β x : U.unop, at x.1)
where
carrier := {f | (isLocallyFraction π).pred f}
@@ -185,7 +185,7 @@ def sectionsSubring (U : (Opens (ProjectiveSpectrum.top π))α΅α΅) : Subring
end
/-- The structure sheaf (valued in `Type`, not yet `CommRing`) is the subsheaf consisting of
-functions satisfying `isLocallyFraction`.-/
+functions satisfying `isLocallyFraction`. -/
def structureSheafInType : Sheaf (Type _) (ProjectiveSpectrum.top π) :=
subsheafToTypes (isLocallyFraction π)
#align algebraic_geometry.projective_spectrum.structure_sheaf.structure_sheaf_in_Type AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structureSheafInType
@@ -196,7 +196,7 @@ instance commRingStructureSheafInTypeObj (U : (Opens (ProjectiveSpectrum.top
#align algebraic_geometry.projective_spectrum.structure_sheaf.comm_ring_structure_sheaf_in_Type_obj AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.commRingStructureSheafInTypeObj
/-- The structure presheaf, valued in `CommRing`, constructed by dressing up the `Type` valued
-structure presheaf.-/
+structure presheaf. -/
@[simps]
def structurePresheafInCommRing : Presheaf CommRingCat (ProjectiveSpectrum.top π) where
obj U := CommRingCat.of ((structureSheafInType π).1.obj U)
@@ -214,7 +214,7 @@ attribute [nolint simpNF]
AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing_map_apply
/-- Some glue, verifying that that structure presheaf valued in `CommRing` agrees with the `Type`
-valued structure presheaf.-/
+valued structure presheaf. -/
def structurePresheafCompForget :
structurePresheafInCommRing π β forget CommRingCat β
(structureSheafInType π).1 :=
NatIso.ofComponents (fun U => Iso.refl _) (by aesop_cat)
@@ -226,7 +226,7 @@ namespace ProjectiveSpectrum
open TopCat.Presheaf ProjectiveSpectrum.StructureSheaf Opens
-/-- The structure sheaf on `Proj` π, valued in `CommRing`.-/
+/-- The structure sheaf on `Proj` π, valued in `CommRing`. -/
def Proj.structureSheaf : Sheaf CommRingCat (ProjectiveSpectrum.top π) :=
β¨structurePresheafInCommRing π,
(-- We check the sheaf condition under `forget CommRing`.
@@ -332,7 +332,7 @@ def homogeneousLocalizationToStalk (x : ProjectiveSpectrum.top π) :
#align algebraic_geometry.homogeneous_localization_to_stalk AlgebraicGeometry.homogeneousLocalizationToStalk
/-- Using `homogeneousLocalizationToStalk`, we construct a ring isomorphism between stalk at `x`
-and homogeneous localization at `x` for any point `x` in `Proj`.-/
+and homogeneous localization at `x` for any point `x` in `Proj`. -/
def Proj.stalkIso' (x : ProjectiveSpectrum.top π) :
(Proj.structureSheaf π).presheaf.stalk x β+* CommRingCat.of (at x) :=
RingEquiv.ofBijective (stalkToFiberRingHom _ x)
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -57,9 +57,7 @@ open scoped DirectSum BigOperators Pointwise
open DirectSum SetLike Localization TopCat TopologicalSpace CategoryTheory Opposite
variable {R A : Type*}
-
variable [CommRing R] [CommRing A] [Algebra R A]
-
variable (π : β β Submodule R A) [GradedAlgebra π]
local notation3 "at " x =>
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -281,7 +281,7 @@ def stalkToFiberRingHom (x : ProjectiveSpectrum.top π) :
ΞΉ :=
{ app := fun U =>
openToLocalization π ((OpenNhds.inclusion _).obj U.unop) x U.unop.2
- -- porting note: this proof was automatic in mathlib3
+ -- Porting note: this proof was automatic in mathlib3
naturality := fun _ _ _ => rfl } }
#align algebraic_geometry.stalk_to_fiber_ring_hom AlgebraicGeometry.stalkToFiberRingHom
@@ -211,6 +211,10 @@ def structurePresheafInCommRing : Presheaf CommRingCat (ProjectiveSpectrum.top
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.projective_spectrum.structure_sheaf.structure_presheaf_in_CommRing AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF]
+ AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing_map_apply
+
/-- Some glue, verifying that that structure presheaf valued in `CommRing` agrees with the `Type`
valued structure presheaf.-/
def structurePresheafCompForget :
@@ -211,10 +211,6 @@ def structurePresheafInCommRing : Presheaf CommRingCat (ProjectiveSpectrum.top
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.projective_spectrum.structure_sheaf.structure_presheaf_in_CommRing AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing
--- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
-attribute [nolint simpNF]
- AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing_map_apply
-
/-- Some glue, verifying that that structure presheaf valued in `CommRing` agrees with the `Type`
valued structure presheaf.-/
def structurePresheafCompForget :
@@ -211,6 +211,10 @@ def structurePresheafInCommRing : Presheaf CommRingCat (ProjectiveSpectrum.top
set_option linter.uppercaseLean3 false in
#align algebraic_geometry.projective_spectrum.structure_sheaf.structure_presheaf_in_CommRing AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF]
+ AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf.structurePresheafInCommRing_map_apply
+
/-- Some glue, verifying that that structure presheaf valued in `CommRing` agrees with the `Type`
valued structure presheaf.-/
def structurePresheafCompForget :
AlgebraicGeometry
(#7330)
Create new folder Geometry.RingedSpace
for (locally) ringed spaces and move about half of the contents of AlgebraicGeometry
there. Files renamed:
AlgebraicGeometry.OpenImmersion.Scheme β AlgebraicGeometry.OpenImmersion
AlgebraicGeometry.RingedSpace β Geometry.RingedSpace.Basic
AlgebraicGeometry.LocallyRingedSpace β Geometry.RingedSpace.LocallyRingedSpace
AlgebraicGeometry.LocallyRingedSpace.HasColimits β Geometry.RingedSpace.LocallyRingedSpace.HasColimits
AlgebraicGeometry.OpenImmersion.Basic β Geometry.RingedSpace.OpenImmersion
AlgebraicGeometry.PresheafedSpace β Geometry.RingedSpace.PresheafedSpace
AlgebraicGeometry.PresheafedSpace.Gluing β Geometry.RingedSpace.PresheafedSpace.Gluing
AlgebraicGeometry.PresheafedSpace.HasColimits β Geometry.RingedSpace.PresheafedSpace.HasColimits
AlgebraicGeometry.SheafedSpace β Geometry.RingedSpace.SheafedSpace
AlgebraicGeometry.Stalks β Geometry.RingedSpace.Stalks
See Zulip.
@@ -6,7 +6,7 @@ Authors: Jujian Zhang
import Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Topology
import Mathlib.Topology.Sheaves.LocalPredicate
import Mathlib.RingTheory.GradedAlgebra.HomogeneousLocalization
-import Mathlib.AlgebraicGeometry.LocallyRingedSpace
+import Mathlib.Geometry.RingedSpace.LocallyRingedSpace
#align_import algebraic_geometry.projective_spectrum.structure_sheaf from "leanprover-community/mathlib"@"486cb2f3bda4a67557c6285f5bd0c3348c1eea81"
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -56,7 +56,7 @@ open scoped DirectSum BigOperators Pointwise
open DirectSum SetLike Localization TopCat TopologicalSpace CategoryTheory Opposite
-variable {R A : Type _}
+variable {R A : Type*}
variable [CommRing R] [CommRing A] [Algebra R A]
@@ -2,17 +2,14 @@
Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang
-
-! This file was ported from Lean 3 source module algebraic_geometry.projective_spectrum.structure_sheaf
-! leanprover-community/mathlib commit 486cb2f3bda4a67557c6285f5bd0c3348c1eea81
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.AlgebraicGeometry.ProjectiveSpectrum.Topology
import Mathlib.Topology.Sheaves.LocalPredicate
import Mathlib.RingTheory.GradedAlgebra.HomogeneousLocalization
import Mathlib.AlgebraicGeometry.LocallyRingedSpace
+#align_import algebraic_geometry.projective_spectrum.structure_sheaf from "leanprover-community/mathlib"@"486cb2f3bda4a67557c6285f5bd0c3348c1eea81"
+
/-!
# The structure sheaf on `projective_spectrum π`.
at
notation for ProjectiveSpectrum.StructureSheaf (#5758)
Switches to notation3
and eliminates dot notation so it can generate a pretty printer.
@@ -65,8 +65,9 @@ variable [CommRing R] [CommRing A] [Algebra R A]
variable (π : β β Submodule R A) [GradedAlgebra π]
-local macro "at " x:term : term => `(HomogeneousLocalization.AtPrime π
- ($x : ProjectiveSpectrum.top π).asHomogeneousIdeal.toIdeal)
+local notation3 "at " x =>
+ HomogeneousLocalization.AtPrime π
+ (HomogeneousIdeal.toIdeal (ProjectiveSpectrum.asHomogeneousIdeal x))
namespace ProjectiveSpectrum.StructureSheaf
The unported dependencies are