algebraic_geometry.presheafed_space.gluing
⟷
Mathlib.Geometry.RingedSpace.PresheafedSpace.Gluing
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-/
import Topology.Gluing
-import AlgebraicGeometry.OpenImmersion.Basic
-import AlgebraicGeometry.LocallyRingedSpace.HasColimits
+import Geometry.RingedSpace.OpenImmersion
+import Geometry.RingedSpace.LocallyRingedSpace.HasColimits
#align_import algebraic_geometry.presheafed_space.gluing from "leanprover-community/mathlib"@"fdc286cc6967a012f41b87f76dcd2797b53152af"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -167,7 +167,7 @@ theorem f_invApp_f_app (i j k : D.J) (U : Opens (D.V (i, j)).carrier) :
apply pullback_base)) :=
by
have := PresheafedSpace.congr_app (@pullback.condition _ _ _ _ _ (D.f i j) (D.f i k) _)
- dsimp only [comp_c_app] at this
+ dsimp only [comp_c_app] at this
rw [← cancel_epi (inv ((D.f_open i j).invApp U)), is_iso.inv_hom_id_assoc,
is_open_immersion.inv_inv_app]
simp_rw [category.assoc]
@@ -202,8 +202,8 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
eq_to_hom_trans]
rintro x ⟨y, hy, eq⟩
replace eq := concrete_category.congr_arg (𝖣.t i k).base Eq
- change ((π₂ i, j, k) ≫ D.t i k).base y = (D.t k i ≫ D.t i k).base x at eq
- rw [𝖣.t_inv, id_base, TopCat.id_app] at eq
+ change ((π₂ i, j, k) ≫ D.t i k).base y = (D.t k i ≫ D.t i k).base x at eq
+ rw [𝖣.t_inv, id_base, TopCat.id_app] at eq
subst Eq
use(inv (D.t' k i j)).base y
change (inv (D.t' k i j) ≫ π₁ k, i, j).base y = _
@@ -534,7 +534,7 @@ def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
rw [← 𝖣.ι_gluedIso_hom (PresheafedSpace.forget _) _, ←
𝖣.ι_gluedIso_hom (PresheafedSpace.forget _) _]
have := congr_arg PresheafedSpace.hom.base s.condition
- rw [comp_base, comp_base] at this
+ rw [comp_base, comp_base] at this
reassoc! this
exact this _
rw [← Set.image_subset_iff, ← Set.image_univ, ← Set.image_comp, Set.image_univ, ← coe_comp,
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2021 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-/
-import Mathbin.Topology.Gluing
-import Mathbin.AlgebraicGeometry.OpenImmersion.Basic
-import Mathbin.AlgebraicGeometry.LocallyRingedSpace.HasColimits
+import Topology.Gluing
+import AlgebraicGeometry.OpenImmersion.Basic
+import AlgebraicGeometry.LocallyRingedSpace.HasColimits
#align_import algebraic_geometry.presheafed_space.gluing from "leanprover-community/mathlib"@"fdc286cc6967a012f41b87f76dcd2797b53152af"
mathlib commit https://github.com/leanprover-community/mathlib/commit/63721b2c3eba6c325ecf8ae8cca27155a4f6306f
@@ -205,7 +205,7 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
change ((π₂ i, j, k) ≫ D.t i k).base y = (D.t k i ≫ D.t i k).base x at eq
rw [𝖣.t_inv, id_base, TopCat.id_app] at eq
subst Eq
- use (inv (D.t' k i j)).base y
+ use(inv (D.t' k i j)).base y
change (inv (D.t' k i j) ≫ π₁ k, i, j).base y = _
congr 2
rw [is_iso.inv_comp_eq, 𝖣.t_fac_assoc, 𝖣.t_inv, category.comp_id]
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2021 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module algebraic_geometry.presheafed_space.gluing
-! leanprover-community/mathlib commit fdc286cc6967a012f41b87f76dcd2797b53152af
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.Gluing
import Mathbin.AlgebraicGeometry.OpenImmersion.Basic
import Mathbin.AlgebraicGeometry.LocallyRingedSpace.HasColimits
+#align_import algebraic_geometry.presheafed_space.gluing from "leanprover-community/mathlib"@"fdc286cc6967a012f41b87f76dcd2797b53152af"
+
/-!
# Gluing Structured spaces
mathlib commit https://github.com/leanprover-community/mathlib/commit/fdc286cc6967a012f41b87f76dcd2797b53152af
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
! This file was ported from Lean 3 source module algebraic_geometry.presheafed_space.gluing
-! leanprover-community/mathlib commit 533f62f4dd62a5aad24a04326e6e787c8f7e98b1
+! leanprover-community/mathlib commit fdc286cc6967a012f41b87f76dcd2797b53152af
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.AlgebraicGeometry.LocallyRingedSpace.HasColimits
/-!
# Gluing Structured spaces
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Given a family of gluing data of structured spaces (presheafed spaces, sheafed spaces, or locally
ringed spaces), we may glue them together.
mathlib commit https://github.com/leanprover-community/mathlib/commit/d30d31261cdb4d2f5e612eabc3c4bf45556350d5
@@ -75,6 +75,7 @@ variable (C : Type u) [Category.{v} C]
namespace PresheafedSpace
+#print AlgebraicGeometry.PresheafedSpace.GlueData /-
/-- A family of gluing data consists of
1. An index type `J`
2. A presheafed space `U i` for each `i : J`.
@@ -97,6 +98,7 @@ that the `U i`'s are open subspaces of the glued space.
structure GlueData extends GlueData (PresheafedSpace.{v} C) where
f_open : ∀ i j, IsOpenImmersion (f i j)
#align algebraic_geometry.PresheafedSpace.glue_data AlgebraicGeometry.PresheafedSpace.GlueData
+-/
attribute [instance] glue_data.f_open
@@ -116,12 +118,15 @@ local notation "π₁⁻¹ " i ", " j ", " k =>
local notation "π₂⁻¹ " i ", " j ", " k =>
(PresheafedSpace.IsOpenImmersion.pullbackSndOfLeft (D.f i j) (D.f i k)).invApp
+#print AlgebraicGeometry.PresheafedSpace.GlueData.toTopGlueData /-
/-- The glue data of topological spaces associated to a family of glue data of PresheafedSpaces. -/
abbrev toTopGlueData : TopCat.GlueData :=
{ f_open := fun i j => (D.f_open i j).base_open
toGlueData := 𝖣.mapGlueData (forget C) }
#align algebraic_geometry.PresheafedSpace.glue_data.to_Top_glue_data AlgebraicGeometry.PresheafedSpace.GlueData.toTopGlueData
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.ι_openEmbedding /-
theorem ι_openEmbedding [HasLimits C] (i : D.J) : OpenEmbedding (𝖣.ι i).base :=
by
rw [← show _ = (𝖣.ι i).base from 𝖣.ι_gluedIso_inv (PresheafedSpace.forget _) _]
@@ -130,7 +135,9 @@ theorem ι_openEmbedding [HasLimits C] (i : D.J) : OpenEmbedding (𝖣.ι i).bas
(TopCat.homeoOfIso (𝖣.gluedIso (PresheafedSpace.forget _)).symm).OpenEmbedding
(D.to_Top_glue_data.ι_open_embedding i)
#align algebraic_geometry.PresheafedSpace.glue_data.ι_open_embedding AlgebraicGeometry.PresheafedSpace.GlueData.ι_openEmbedding
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.pullback_base /-
theorem pullback_base (i j k : D.J) (S : Set (D.V (i, j)).carrier) :
(π₂ i, j, k) '' ((π₁ i, j, k) ⁻¹' S) = D.f i k ⁻¹' (D.f i j '' S) :=
by
@@ -142,7 +149,9 @@ theorem pullback_base (i j k : D.J) (S : Set (D.V (i, j)).carrier) :
rw [← TopCat.epi_iff_surjective]
infer_instance
#align algebraic_geometry.PresheafedSpace.glue_data.pullback_base AlgebraicGeometry.PresheafedSpace.GlueData.pullback_base
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.f_invApp_f_app /-
/-- The red and the blue arrows in ![this diagram](https://i.imgur.com/0GiBUh6.png) commute. -/
@[simp, reassoc]
theorem f_invApp_f_app (i j k : D.J) (U : Opens (D.V (i, j)).carrier) :
@@ -169,7 +178,9 @@ theorem f_invApp_f_app (i j k : D.J) (U : Opens (D.V (i, j)).carrier) :
erw [(D.V (i, k)).Presheaf.map_id]
rfl
#align algebraic_geometry.PresheafedSpace.glue_data.f_inv_app_f_app AlgebraicGeometry.PresheafedSpace.GlueData.f_invApp_f_app
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.snd_invApp_t_app' /-
/-- We can prove the `eq` along with the lemma. Thus this is bundled together here, and the
lemma itself is separated below.
-/
@@ -199,7 +210,9 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
congr 2
rw [is_iso.inv_comp_eq, 𝖣.t_fac_assoc, 𝖣.t_inv, category.comp_id]
#align algebraic_geometry.PresheafedSpace.glue_data.snd_inv_app_t_app' AlgebraicGeometry.PresheafedSpace.GlueData.snd_invApp_t_app'
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.snd_invApp_t_app /-
/-- The red and the blue arrows in ![this diagram](https://i.imgur.com/q6X1GJ9.png) commute. -/
@[simp, reassoc]
theorem snd_invApp_t_app (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)).carrier) :
@@ -213,9 +226,11 @@ theorem snd_invApp_t_app (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k))
rw [← e]
simp [eq_to_hom_map]
#align algebraic_geometry.PresheafedSpace.glue_data.snd_inv_app_t_app AlgebraicGeometry.PresheafedSpace.GlueData.snd_invApp_t_app
+-/
variable [HasLimits C]
+#print AlgebraicGeometry.PresheafedSpace.GlueData.ι_image_preimage_eq /-
theorem ι_image_preimage_eq (i j : D.J) (U : Opens (D.U i).carrier) :
(Opens.map (𝖣.ι j).base).obj ((D.ι_openEmbedding i).IsOpenMap.Functor.obj U) =
(D.f_open j i).openFunctor.obj
@@ -240,7 +255,9 @@ theorem ι_image_preimage_eq (i j : D.J) (U : Opens (D.U i).carrier) :
· rw [← TopCat.mono_iff_injective]
infer_instance
#align algebraic_geometry.PresheafedSpace.glue_data.ι_image_preimage_eq AlgebraicGeometry.PresheafedSpace.GlueData.ι_image_preimage_eq
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap /-
/-- (Implementation). The map `Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_{U_j}, 𝖣.ι j ⁻¹' (𝖣.ι i '' U))` -/
def opensImagePreimageMap (i j : D.J) (U : Opens (D.U i).carrier) :
(D.U i).Presheaf.obj (op U) ⟶ (D.U j).Presheaf.obj _ :=
@@ -249,7 +266,9 @@ def opensImagePreimageMap (i j : D.J) (U : Opens (D.U i).carrier) :
(D.f_open j i).invApp (unop _) ≫
(𝖣.U j).Presheaf.map (eqToHom (D.ι_image_preimage_eq i j U)).op
#align algebraic_geometry.PresheafedSpace.glue_data.opens_image_preimage_map AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app' /-
theorem opensImagePreimageMap_app' (i j k : D.J) (U : Opens (D.U i).carrier) :
∃ eq,
D.opensImagePreimageMap i j U ≫ (D.f j k).c.app _ =
@@ -268,7 +287,9 @@ theorem opensImagePreimageMap_app' (i j k : D.J) (U : Opens (D.U i).carrier) :
rw [eq_to_hom_map (opens.map _), eq_to_hom_op, eq_to_hom_trans]
congr
#align algebraic_geometry.PresheafedSpace.glue_data.opens_image_preimage_map_app' AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app'
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app /-
/-- The red and the blue arrows in ![this diagram](https://i.imgur.com/mBzV1Rx.png) commute. -/
theorem opensImagePreimageMap_app (i j k : D.J) (U : Opens (D.U i).carrier) :
D.opensImagePreimageMap i j U ≫ (D.f j k).c.app _ =
@@ -277,7 +298,9 @@ theorem opensImagePreimageMap_app (i j k : D.J) (U : Opens (D.U i).carrier) :
(D.V (j, k)).Presheaf.map (eqToHom (opensImagePreimageMap_app' D i j k U).some) :=
(opensImagePreimageMap_app' D i j k U).choose_spec
#align algebraic_geometry.PresheafedSpace.glue_data.opens_image_preimage_map_app AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app_assoc /-
-- This is proved separately since `reassoc` somehow timeouts.
theorem opensImagePreimageMap_app_assoc (i j k : D.J) (U : Opens (D.U i).carrier) {X' : C}
(f' : _ ⟶ X') :
@@ -289,19 +312,25 @@ theorem opensImagePreimageMap_app_assoc (i j k : D.J) (U : Opens (D.U i).carrier
simpa only [category.assoc] using
congr_arg (fun g => g ≫ f') (opens_image_preimage_map_app D i j k U)
#align algebraic_geometry.PresheafedSpace.glue_data.opens_image_preimage_map_app_assoc AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app_assoc
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.diagramOverOpen /-
/-- (Implementation) Given an open subset of one of the spaces `U ⊆ Uᵢ`, the sheaf component of
the image `ι '' U` in the glued space is the limit of this diagram. -/
abbrev diagramOverOpen {i : D.J} (U : Opens (D.U i).carrier) : (WalkingMultispan _ _)ᵒᵖ ⥤ C :=
componentwiseDiagram 𝖣.diagram.multispan ((D.ι_openEmbedding i).IsOpenMap.Functor.obj U)
#align algebraic_geometry.PresheafedSpace.glue_data.diagram_over_open AlgebraicGeometry.PresheafedSpace.GlueData.diagramOverOpen
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.diagramOverOpenπ /-
/-- (Implementation)
The projection from the limit of `diagram_over_open` to a component of `D.U j`. -/
abbrev diagramOverOpenπ {i : D.J} (U : Opens (D.U i).carrier) (j : D.J) :=
limit.π (D.diagramOverOpen U) (op (WalkingMultispan.right j))
#align algebraic_geometry.PresheafedSpace.glue_data.diagram_over_open_π AlgebraicGeometry.PresheafedSpace.GlueData.diagramOverOpenπ
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.ιInvAppπApp /-
/-- (Implementation) We construct the map `Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_V, U_V)` for each `V` in the gluing
diagram. We will lift these maps into `ι_inv_app`. -/
def ιInvAppπApp {i : D.J} (U : Opens (D.U i).carrier) (j) :
@@ -319,7 +348,9 @@ def ιInvAppπApp {i : D.J} (U : Opens (D.U i).carrier) (j) :
exact colimit.w 𝖣.diagram.multispan (walking_multispan.hom.fst (j, k))
· exact D.opens_image_preimage_map i j U
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app_π_app AlgebraicGeometry.PresheafedSpace.GlueData.ιInvAppπApp
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.ιInvApp /-
/-- (Implementation) The natural map `Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, 𝖣.ι i '' U)`.
This forms the inverse of `(𝖣.ι i).c.app (op U)`. -/
def ιInvApp {i : D.J} (U : Opens (D.U i).carrier) :
@@ -373,7 +404,9 @@ def ιInvApp {i : D.J} (U : Opens (D.U i).carrier) :
repeat' erw [← (D.V (j, k)).Presheaf.map_comp]
congr } }
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app AlgebraicGeometry.PresheafedSpace.GlueData.ιInvApp
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.ιInvApp_π /-
/-- `ι_inv_app` is the left inverse of `D.ι i` on `U`. -/
theorem ιInvApp_π {i : D.J} (U : Opens (D.U i).carrier) :
∃ eq, D.ιInvApp U ≫ D.diagramOverOpenπ U i = (D.U i).Presheaf.map (eqToHom Eq) :=
@@ -391,12 +424,16 @@ theorem ιInvApp_π {i : D.J} (U : Opens (D.U i).carrier) :
· rw [← TopCat.epi_iff_surjective]
infer_instance
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app_π AlgebraicGeometry.PresheafedSpace.GlueData.ιInvApp_π
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.ιInvAppπEqMap /-
/-- The `eq_to_hom` given by `ι_inv_app_π`. -/
abbrev ιInvAppπEqMap {i : D.J} (U : Opens (D.U i).carrier) :=
(D.U i).Presheaf.map (eqToIso (D.ιInvApp_π U).some).inv
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app_π_eq_map AlgebraicGeometry.PresheafedSpace.GlueData.ιInvAppπEqMap
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.π_ιInvApp_π /-
/-- `ι_inv_app` is the right inverse of `D.ι i` on `U`. -/
theorem π_ιInvApp_π (i j : D.J) (U : Opens (D.U i).carrier) :
D.diagramOverOpenπ U i ≫ D.ιInvAppπEqMap U ≫ D.ιInvApp U ≫ D.diagramOverOpenπ U j =
@@ -430,7 +467,9 @@ theorem π_ιInvApp_π (i j : D.J) (U : Opens (D.U i).carrier) :
erw [D.ι_image_preimage_eq i j U]
all_goals infer_instance
#align algebraic_geometry.PresheafedSpace.glue_data.π_ι_inv_app_π AlgebraicGeometry.PresheafedSpace.GlueData.π_ιInvApp_π
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.π_ιInvApp_eq_id /-
/-- `ι_inv_app` is the inverse of `D.ι i` on `U`. -/
theorem π_ιInvApp_eq_id (i : D.J) (U : Opens (D.U i).carrier) :
D.diagramOverOpenπ U i ≫ D.ιInvAppπEqMap U ≫ D.ιInvApp U = 𝟙 _ :=
@@ -449,7 +488,11 @@ theorem π_ιInvApp_eq_id (i : D.J) (U : Opens (D.U i).carrier) :
rw [category.id_comp]
apply π_ι_inv_app_π
#align algebraic_geometry.PresheafedSpace.glue_data.π_ι_inv_app_eq_id AlgebraicGeometry.PresheafedSpace.GlueData.π_ιInvApp_eq_id
+-/
+/- warning: algebraic_geometry.PresheafedSpace.glue_data.componentwise_diagram_π_is_iso clashes with algebraic_geometry.PresheafedSpace.glue_data.componentwise_diagram_π_IsIso -> AlgebraicGeometry.PresheafedSpace.GlueData.componentwise_diagram_π_isIso
+Case conversion may be inaccurate. Consider using '#align algebraic_geometry.PresheafedSpace.glue_data.componentwise_diagram_π_is_iso AlgebraicGeometry.PresheafedSpace.GlueData.componentwise_diagram_π_isIsoₓ'. -/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.componentwise_diagram_π_isIso /-
instance componentwise_diagram_π_isIso (i : D.J) (U : Opens (D.U i).carrier) :
IsIso (D.diagramOverOpenπ U i) :=
by
@@ -459,13 +502,19 @@ instance componentwise_diagram_π_isIso (i : D.J) (U : Opens (D.U i).carrier) :
· rw [category.assoc, (D.ι_inv_app_π _).choose_spec]
exact iso.inv_hom_id ((D.to_glue_data.U i).Presheaf.mapIso (eq_to_iso _))
#align algebraic_geometry.PresheafedSpace.glue_data.componentwise_diagram_π_is_iso AlgebraicGeometry.PresheafedSpace.GlueData.componentwise_diagram_π_isIso
+-/
+/- warning: algebraic_geometry.PresheafedSpace.glue_data.ι_is_open_immersion clashes with algebraic_geometry.PresheafedSpace.glue_data.ι_IsOpenImmersion -> AlgebraicGeometry.PresheafedSpace.GlueData.ιIsOpenImmersion
+Case conversion may be inaccurate. Consider using '#align algebraic_geometry.PresheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.PresheafedSpace.GlueData.ιIsOpenImmersionₓ'. -/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.ιIsOpenImmersion /-
instance ιIsOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i)
where
base_open := D.ι_openEmbedding i
c_iso U := by erw [← colimit_presheaf_obj_iso_componentwise_limit_hom_π]; infer_instance
#align algebraic_geometry.PresheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.PresheafedSpace.GlueData.ιIsOpenImmersion
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.vPullbackConeIsLimit /-
/-- The following diagram is a pullback, i.e. `Vᵢⱼ` is the intersection of `Uᵢ` and `Uⱼ` in `X`.
Vᵢⱼ ⟶ Uᵢ
@@ -497,10 +546,13 @@ def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
erw [is_open_immersion.lift_fac_assoc]
· intro m e₁ e₂; rw [← cancel_mono (D.f i j)]; erw [e₁]; rw [is_open_immersion.lift_fac]
#align algebraic_geometry.PresheafedSpace.glue_data.V_pullback_cone_is_limit AlgebraicGeometry.PresheafedSpace.GlueData.vPullbackConeIsLimit
+-/
+#print AlgebraicGeometry.PresheafedSpace.GlueData.ι_jointly_surjective /-
theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J) (y : D.U i), (𝖣.ι i).base y = x :=
𝖣.ι_jointly_surjective (PresheafedSpace.forget _ ⋙ CategoryTheory.forget TopCat) x
#align algebraic_geometry.PresheafedSpace.glue_data.ι_jointly_surjective AlgebraicGeometry.PresheafedSpace.GlueData.ι_jointly_surjective
+-/
end GlueData
@@ -560,9 +612,13 @@ theorem ι_isoPresheafedSpace_inv (i : D.J) :
𝖣.ι_gluedIso_inv _ _
#align algebraic_geometry.SheafedSpace.glue_data.ι_iso_PresheafedSpace_inv AlgebraicGeometry.SheafedSpaceₓ.GlueData.ι_isoPresheafedSpace_inv
+/- warning: algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion clashes with algebraic_geometry.SheafedSpace.glue_data.ι_IsOpenImmersion -> AlgebraicGeometry.SheafedSpaceₓ.GlueData.ιIsOpenImmersion
+Case conversion may be inaccurate. Consider using '#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpaceₓ.GlueData.ιIsOpenImmersionₓ'. -/
+#print AlgebraicGeometry.SheafedSpaceₓ.GlueData.ιIsOpenImmersion /-
instance ιIsOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) := by
rw [← D.ι_iso_PresheafedSpace_inv]; infer_instance
#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpaceₓ.GlueData.ιIsOpenImmersion
+-/
theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J) (y : D.U i), (𝖣.ι i).base y = x :=
𝖣.ι_jointly_surjective (SheafedSpace.forget _ ⋙ CategoryTheory.forget TopCat) x
@@ -586,6 +642,7 @@ end SheafedSpace
namespace LocallyRingedSpace
+#print AlgebraicGeometry.LocallyRingedSpace.GlueData /-
/-- A family of gluing data consists of
1. An index type `J`
2. A locally ringed space `U i` for each `i : J`.
@@ -608,6 +665,7 @@ that the `U i`'s are open subspaces of the glued space.
structure GlueData extends GlueData LocallyRingedSpace where
f_open : ∀ i j, LocallyRingedSpace.IsOpenImmersion (f i j)
#align algebraic_geometry.LocallyRingedSpace.glue_data AlgebraicGeometry.LocallyRingedSpace.GlueData
+-/
attribute [instance] glue_data.f_open
@@ -617,36 +675,49 @@ variable (D : GlueData)
local notation "𝖣" => D.toGlueData
+#print AlgebraicGeometry.LocallyRingedSpace.GlueData.toSheafedSpaceGlueData /-
/-- The glue data of ringed spaces associated to a family of glue data of locally ringed spaces. -/
abbrev toSheafedSpaceGlueData : SheafedSpace.GlueData CommRingCat :=
{ f_open := D.f_open
toGlueData := 𝖣.mapGlueData forgetToSheafedSpace }
#align algebraic_geometry.LocallyRingedSpace.glue_data.to_SheafedSpace_glue_data AlgebraicGeometry.LocallyRingedSpace.GlueData.toSheafedSpaceGlueData
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.GlueData.isoSheafedSpace /-
/-- The gluing as locally ringed spaces is isomorphic to the gluing as ringed spaces. -/
abbrev isoSheafedSpace : 𝖣.glued.toSheafedSpace ≅ D.toSheafedSpaceGlueData.toGlueData.glued :=
𝖣.gluedIso forgetToSheafedSpace
#align algebraic_geometry.LocallyRingedSpace.glue_data.iso_SheafedSpace AlgebraicGeometry.LocallyRingedSpace.GlueData.isoSheafedSpace
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isoSheafedSpace_inv /-
theorem ι_isoSheafedSpace_inv (i : D.J) :
D.toSheafedSpaceGlueData.toGlueData.ι i ≫ D.isoSheafedSpace.inv = (𝖣.ι i).1 :=
𝖣.ι_gluedIso_inv forgetToSheafedSpace i
#align algebraic_geometry.LocallyRingedSpace.glue_data.ι_iso_SheafedSpace_inv AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isoSheafedSpace_inv
+-/
+/- warning: algebraic_geometry.LocallyRingedSpace.glue_data.ι_is_open_immersion clashes with algebraic_geometry.LocallyRingedSpace.glue_data.ι_IsOpenImmersion -> AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isOpenImmersion
+Case conversion may be inaccurate. Consider using '#align algebraic_geometry.LocallyRingedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isOpenImmersionₓ'. -/
+#print AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isOpenImmersion /-
instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) :=
by
delta is_open_immersion; rw [← D.ι_iso_SheafedSpace_inv]
apply PresheafedSpace.is_open_immersion.comp
#align algebraic_geometry.LocallyRingedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isOpenImmersion
+-/
instance (i j k : D.J) : PreservesLimit (cospan (𝖣.f i j) (𝖣.f i k)) forgetToSheafedSpace :=
inferInstance
+#print AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_jointly_surjective /-
theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J) (y : D.U i), (𝖣.ι i).1.base y = x :=
𝖣.ι_jointly_surjective
((LocallyRingedSpace.forgetToSheafedSpace ⋙ SheafedSpace.forget _) ⋙ forget TopCat) x
#align algebraic_geometry.LocallyRingedSpace.glue_data.ι_jointly_surjective AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_jointly_surjective
+-/
+#print AlgebraicGeometry.LocallyRingedSpace.GlueData.vPullbackConeIsLimit /-
/-- The following diagram is a pullback, i.e. `Vᵢⱼ` is the intersection of `Uᵢ` and `Uⱼ` in `X`.
Vᵢⱼ ⟶ Uᵢ
@@ -658,6 +729,7 @@ def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
𝖣.vPullbackConeIsLimitOfMap forgetToSheafedSpace i j
(D.toSheafedSpaceGlueData.vPullbackConeIsLimit _ _)
#align algebraic_geometry.LocallyRingedSpace.glue_data.V_pullback_cone_is_limit AlgebraicGeometry.LocallyRingedSpace.GlueData.vPullbackConeIsLimit
+-/
end GlueData
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -531,7 +531,7 @@ that the `U i`'s are open subspaces of the glued space.
@[nolint has_nonempty_instance]
structure GlueData extends GlueData (SheafedSpace.{v} C) where
f_open : ∀ i j, SheafedSpace.IsOpenImmersion (f i j)
-#align algebraic_geometry.SheafedSpace.glue_data AlgebraicGeometry.SheafedSpace.GlueData
+#align algebraic_geometry.SheafedSpace.glue_data AlgebraicGeometry.SheafedSpaceₓ.GlueData
attribute [instance] glue_data.f_open
@@ -545,7 +545,7 @@ local notation "𝖣" => D.toGlueData
abbrev toPresheafedSpaceGlueData : PresheafedSpace.GlueData C :=
{ f_open := D.f_open
toGlueData := 𝖣.mapGlueData forgetToPresheafedSpace }
-#align algebraic_geometry.SheafedSpace.glue_data.to_PresheafedSpace_glue_data AlgebraicGeometry.SheafedSpace.GlueData.toPresheafedSpaceGlueData
+#align algebraic_geometry.SheafedSpace.glue_data.to_PresheafedSpace_glue_data AlgebraicGeometry.SheafedSpaceₓ.GlueData.toPresheafedSpaceGlueData
variable [HasLimits C]
@@ -553,20 +553,20 @@ variable [HasLimits C]
abbrev isoPresheafedSpace :
𝖣.glued.toPresheafedSpace ≅ D.toPresheafedSpaceGlueData.toGlueData.glued :=
𝖣.gluedIso forgetToPresheafedSpace
-#align algebraic_geometry.SheafedSpace.glue_data.iso_PresheafedSpace AlgebraicGeometry.SheafedSpace.GlueData.isoPresheafedSpace
+#align algebraic_geometry.SheafedSpace.glue_data.iso_PresheafedSpace AlgebraicGeometry.SheafedSpaceₓ.GlueData.isoPresheafedSpace
theorem ι_isoPresheafedSpace_inv (i : D.J) :
D.toPresheafedSpaceGlueData.toGlueData.ι i ≫ D.isoPresheafedSpace.inv = 𝖣.ι i :=
𝖣.ι_gluedIso_inv _ _
-#align algebraic_geometry.SheafedSpace.glue_data.ι_iso_PresheafedSpace_inv AlgebraicGeometry.SheafedSpace.GlueData.ι_isoPresheafedSpace_inv
+#align algebraic_geometry.SheafedSpace.glue_data.ι_iso_PresheafedSpace_inv AlgebraicGeometry.SheafedSpaceₓ.GlueData.ι_isoPresheafedSpace_inv
-instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) := by
+instance ιIsOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) := by
rw [← D.ι_iso_PresheafedSpace_inv]; infer_instance
-#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpace.GlueData.ι_isOpenImmersion
+#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpaceₓ.GlueData.ιIsOpenImmersion
theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J) (y : D.U i), (𝖣.ι i).base y = x :=
𝖣.ι_jointly_surjective (SheafedSpace.forget _ ⋙ CategoryTheory.forget TopCat) x
-#align algebraic_geometry.SheafedSpace.glue_data.ι_jointly_surjective AlgebraicGeometry.SheafedSpace.GlueData.ι_jointly_surjective
+#align algebraic_geometry.SheafedSpace.glue_data.ι_jointly_surjective AlgebraicGeometry.SheafedSpaceₓ.GlueData.ι_jointly_surjective
/-- The following diagram is a pullback, i.e. `Vᵢⱼ` is the intersection of `Uᵢ` and `Uⱼ` in `X`.
@@ -578,7 +578,7 @@ Vᵢⱼ ⟶ Uᵢ
def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
𝖣.vPullbackConeIsLimitOfMap forgetToPresheafedSpace i j
(D.toPresheafedSpaceGlueData.vPullbackConeIsLimit _ _)
-#align algebraic_geometry.SheafedSpace.glue_data.V_pullback_cone_is_limit AlgebraicGeometry.SheafedSpace.GlueData.vPullbackConeIsLimit
+#align algebraic_geometry.SheafedSpace.glue_data.V_pullback_cone_is_limit AlgebraicGeometry.SheafedSpaceₓ.GlueData.vPullbackConeIsLimit
end GlueData
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -104,20 +104,15 @@ namespace GlueData
variable {C} (D : GlueData C)
--- mathport name: «expr𝖣»
local notation "𝖣" => D.toGlueData
--- mathport name: «exprπ₁ , , »
local notation "π₁ " i ", " j ", " k => @pullback.fst _ _ _ _ _ (D.f i j) (D.f i k) _
--- mathport name: «exprπ₂ , , »
local notation "π₂ " i ", " j ", " k => @pullback.snd _ _ _ _ _ (D.f i j) (D.f i k) _
--- mathport name: «exprπ₁⁻¹ , , »
local notation "π₁⁻¹ " i ", " j ", " k =>
(PresheafedSpace.IsOpenImmersion.pullbackFstOfRight (D.f i j) (D.f i k)).invApp
--- mathport name: «exprπ₂⁻¹ , , »
local notation "π₂⁻¹ " i ", " j ", " k =>
(PresheafedSpace.IsOpenImmersion.pullbackSndOfLeft (D.f i j) (D.f i k)).invApp
@@ -544,7 +539,6 @@ namespace GlueData
variable {C} (D : GlueData C)
--- mathport name: «expr𝖣»
local notation "𝖣" => D.toGlueData
/-- The glue data of presheafed spaces associated to a family of glue data of sheafed spaces. -/
@@ -621,7 +615,6 @@ namespace GlueData
variable (D : GlueData)
--- mathport name: «expr𝖣»
local notation "𝖣" => D.toGlueData
/-- The glue data of ringed spaces associated to a family of glue data of locally ringed spaces. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3209ddf94136d36e5e5c624b10b2a347cc9d090
@@ -4,12 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
! This file was ported from Lean 3 source module algebraic_geometry.presheafed_space.gluing
-! leanprover-community/mathlib commit d39590fc8728fbf6743249802486f8c91ffe07bc
+! leanprover-community/mathlib commit 533f62f4dd62a5aad24a04326e6e787c8f7e98b1
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.Topology.Gluing
-import Mathbin.AlgebraicGeometry.OpenImmersion
+import Mathbin.AlgebraicGeometry.OpenImmersion.Basic
import Mathbin.AlgebraicGeometry.LocallyRingedSpace.HasColimits
/-!
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -170,7 +170,7 @@ theorem f_invApp_f_app (i j k : D.J) (U : Opens (D.V (i, j)).carrier) :
erw [(π₁ i, j, k).c.naturality_assoc, reassoc_of this, ← functor.map_comp_assoc,
is_open_immersion.inv_naturality_assoc, is_open_immersion.app_inv_app_assoc, ←
(D.V (i, k)).Presheaf.map_comp, ← (D.V (i, k)).Presheaf.map_comp]
- convert(category.comp_id _).symm
+ convert (category.comp_id _).symm
erw [(D.V (i, k)).Presheaf.map_id]
rfl
#align algebraic_geometry.PresheafedSpace.glue_data.f_inv_app_f_app AlgebraicGeometry.PresheafedSpace.GlueData.f_invApp_f_app
@@ -424,7 +424,8 @@ theorem π_ιInvApp_π (i j : D.J) (U : Opens (D.U i).carrier) :
iterate 3 rw [← functor.map_comp_assoc]
rw [nat_trans.naturality_assoc]
erw [← (D.V (i, j)).Presheaf.map_comp]
- convert limit.w (componentwise_diagram 𝖣.diagram.multispan _)
+ convert
+ limit.w (componentwise_diagram 𝖣.diagram.multispan _)
(Quiver.Hom.op (walking_multispan.hom.fst (i, j)))
· rw [category.comp_id]
apply (config := { instances := false }) mono_comp
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -163,7 +163,7 @@ theorem f_invApp_f_app (i j k : D.J) (U : Opens (D.V (i, j)).carrier) :
apply pullback_base)) :=
by
have := PresheafedSpace.congr_app (@pullback.condition _ _ _ _ _ (D.f i j) (D.f i k) _)
- dsimp only [comp_c_app] at this
+ dsimp only [comp_c_app] at this
rw [← cancel_epi (inv ((D.f_open i j).invApp U)), is_iso.inv_hom_id_assoc,
is_open_immersion.inv_inv_app]
simp_rw [category.assoc]
@@ -196,8 +196,8 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
eq_to_hom_trans]
rintro x ⟨y, hy, eq⟩
replace eq := concrete_category.congr_arg (𝖣.t i k).base Eq
- change ((π₂ i, j, k) ≫ D.t i k).base y = (D.t k i ≫ D.t i k).base x at eq
- rw [𝖣.t_inv, id_base, TopCat.id_app] at eq
+ change ((π₂ i, j, k) ≫ D.t i k).base y = (D.t k i ≫ D.t i k).base x at eq
+ rw [𝖣.t_inv, id_base, TopCat.id_app] at eq
subst Eq
use (inv (D.t' k i j)).base y
change (inv (D.t' k i j) ≫ π₁ k, i, j).base y = _
@@ -489,7 +489,7 @@ def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
rw [← 𝖣.ι_gluedIso_hom (PresheafedSpace.forget _) _, ←
𝖣.ι_gluedIso_hom (PresheafedSpace.forget _) _]
have := congr_arg PresheafedSpace.hom.base s.condition
- rw [comp_base, comp_base] at this
+ rw [comp_base, comp_base] at this
reassoc! this
exact this _
rw [← Set.image_subset_iff, ← Set.image_univ, ← Set.image_comp, Set.image_univ, ← coe_comp,
@@ -502,7 +502,7 @@ def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
· intro m e₁ e₂; rw [← cancel_mono (D.f i j)]; erw [e₁]; rw [is_open_immersion.lift_fac]
#align algebraic_geometry.PresheafedSpace.glue_data.V_pullback_cone_is_limit AlgebraicGeometry.PresheafedSpace.GlueData.vPullbackConeIsLimit
-theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J)(y : D.U i), (𝖣.ι i).base y = x :=
+theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J) (y : D.U i), (𝖣.ι i).base y = x :=
𝖣.ι_jointly_surjective (PresheafedSpace.forget _ ⋙ CategoryTheory.forget TopCat) x
#align algebraic_geometry.PresheafedSpace.glue_data.ι_jointly_surjective AlgebraicGeometry.PresheafedSpace.GlueData.ι_jointly_surjective
@@ -569,7 +569,7 @@ instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) := by
rw [← D.ι_iso_PresheafedSpace_inv]; infer_instance
#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpace.GlueData.ι_isOpenImmersion
-theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J)(y : D.U i), (𝖣.ι i).base y = x :=
+theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J) (y : D.U i), (𝖣.ι i).base y = x :=
𝖣.ι_jointly_surjective (SheafedSpace.forget _ ⋙ CategoryTheory.forget TopCat) x
#align algebraic_geometry.SheafedSpace.glue_data.ι_jointly_surjective AlgebraicGeometry.SheafedSpace.GlueData.ι_jointly_surjective
@@ -648,7 +648,7 @@ instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) :=
instance (i j k : D.J) : PreservesLimit (cospan (𝖣.f i j) (𝖣.f i k)) forgetToSheafedSpace :=
inferInstance
-theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J)(y : D.U i), (𝖣.ι i).1.base y = x :=
+theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J) (y : D.U i), (𝖣.ι i).1.base y = x :=
𝖣.ι_jointly_surjective
((LocallyRingedSpace.forgetToSheafedSpace ⋙ SheafedSpace.forget _) ⋙ forget TopCat) x
#align algebraic_geometry.LocallyRingedSpace.glue_data.ι_jointly_surjective AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_jointly_surjective
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -316,8 +316,7 @@ def ιInvAppπApp {i : D.J} (U : Opens (D.U i).carrier) (j) :
· refine'
D.opens_image_preimage_map i j U ≫ (D.f j k).c.app _ ≫ (D.V (j, k)).Presheaf.map (eq_to_hom _)
rw [functor.op_obj]
- congr 1
- ext1
+ congr 1; ext1
dsimp only [functor.op_obj, opens.map_coe, unop_op, IsOpenMap.functor_obj_coe]
rw [Set.preimage_preimage]
change (D.f j k ≫ 𝖣.ι j).base ⁻¹' _ = _
@@ -337,15 +336,11 @@ def ιInvApp {i : D.J} (U : Opens (D.U i).carrier) :
naturality' := fun X Y f' => by
induction X using Opposite.rec'
induction Y using Opposite.rec'
- let f : Y ⟶ X := f'.unop
- have : f' = f.op := rfl
- clear_value f
- subst this
+ let f : Y ⟶ X := f'.unop; have : f' = f.op := rfl; clear_value f; subst this
rcases f with (_ | ⟨j, k⟩ | ⟨j, k⟩)
· erw [category.id_comp, CategoryTheory.Functor.map_id]
rw [category.comp_id]
- · erw [category.id_comp]
- congr 1
+ · erw [category.id_comp]; congr 1
erw [category.id_comp]
-- It remains to show that the blue is equal to red + green in the original diagram.
-- The proof strategy is illustrated in ![this diagram](https://i.imgur.com/mBzV1Rx.png)
@@ -472,9 +467,7 @@ instance componentwise_diagram_π_isIso (i : D.J) (U : Opens (D.U i).carrier) :
instance ιIsOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i)
where
base_open := D.ι_openEmbedding i
- c_iso U := by
- erw [← colimit_presheaf_obj_iso_componentwise_limit_hom_π]
- infer_instance
+ c_iso U := by erw [← colimit_presheaf_obj_iso_componentwise_limit_hom_π]; infer_instance
#align algebraic_geometry.PresheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.PresheafedSpace.GlueData.ιIsOpenImmersion
/-- The following diagram is a pullback, i.e. `Vᵢⱼ` is the intersection of `Uᵢ` and `Uⱼ` in `X`.
@@ -506,10 +499,7 @@ def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
· rw [← cancel_mono (𝖣.ι j), category.assoc, ← (𝖣.vPullbackCone i j).condition]
conv_rhs => rw [← s.condition]
erw [is_open_immersion.lift_fac_assoc]
- · intro m e₁ e₂
- rw [← cancel_mono (D.f i j)]
- erw [e₁]
- rw [is_open_immersion.lift_fac]
+ · intro m e₁ e₂; rw [← cancel_mono (D.f i j)]; erw [e₁]; rw [is_open_immersion.lift_fac]
#align algebraic_geometry.PresheafedSpace.glue_data.V_pullback_cone_is_limit AlgebraicGeometry.PresheafedSpace.GlueData.vPullbackConeIsLimit
theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J)(y : D.U i), (𝖣.ι i).base y = x :=
@@ -575,10 +565,8 @@ theorem ι_isoPresheafedSpace_inv (i : D.J) :
𝖣.ι_gluedIso_inv _ _
#align algebraic_geometry.SheafedSpace.glue_data.ι_iso_PresheafedSpace_inv AlgebraicGeometry.SheafedSpace.GlueData.ι_isoPresheafedSpace_inv
-instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) :=
- by
- rw [← D.ι_iso_PresheafedSpace_inv]
- infer_instance
+instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) := by
+ rw [← D.ι_iso_PresheafedSpace_inv]; infer_instance
#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpace.GlueData.ι_isOpenImmersion
theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J)(y : D.U i), (𝖣.ι i).base y = x :=
@@ -653,8 +641,7 @@ theorem ι_isoSheafedSpace_inv (i : D.J) :
instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) :=
by
- delta is_open_immersion
- rw [← D.ι_iso_SheafedSpace_inv]
+ delta is_open_immersion; rw [← D.ι_iso_SheafedSpace_inv]
apply PresheafedSpace.is_open_immersion.comp
#align algebraic_geometry.LocallyRingedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isOpenImmersion
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -575,11 +575,11 @@ theorem ι_isoPresheafedSpace_inv (i : D.J) :
𝖣.ι_gluedIso_inv _ _
#align algebraic_geometry.SheafedSpace.glue_data.ι_iso_PresheafedSpace_inv AlgebraicGeometry.SheafedSpace.GlueData.ι_isoPresheafedSpace_inv
-instance ιIsOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) :=
+instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) :=
by
rw [← D.ι_iso_PresheafedSpace_inv]
infer_instance
-#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpace.GlueData.ιIsOpenImmersion
+#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpace.GlueData.ι_isOpenImmersion
theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J)(y : D.U i), (𝖣.ι i).base y = x :=
𝖣.ι_jointly_surjective (SheafedSpace.forget _ ⋙ CategoryTheory.forget TopCat) x
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -149,7 +149,7 @@ theorem pullback_base (i j k : D.J) (S : Set (D.V (i, j)).carrier) :
#align algebraic_geometry.PresheafedSpace.glue_data.pullback_base AlgebraicGeometry.PresheafedSpace.GlueData.pullback_base
/-- The red and the blue arrows in ![this diagram](https://i.imgur.com/0GiBUh6.png) commute. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
theorem f_invApp_f_app (i j k : D.J) (U : Opens (D.V (i, j)).carrier) :
(D.f_open i j).invApp U ≫ (D.f i k).c.app _ =
(π₁ i, j, k).c.app (op U) ≫
@@ -206,7 +206,7 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
#align algebraic_geometry.PresheafedSpace.glue_data.snd_inv_app_t_app' AlgebraicGeometry.PresheafedSpace.GlueData.snd_invApp_t_app'
/-- The red and the blue arrows in ![this diagram](https://i.imgur.com/q6X1GJ9.png) commute. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
theorem snd_invApp_t_app (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)).carrier) :
(π₂⁻¹ i, j, k) U ≫ (D.t k i).c.app _ =
(D.t' k i j).c.app _ ≫
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -575,11 +575,11 @@ theorem ι_isoPresheafedSpace_inv (i : D.J) :
𝖣.ι_gluedIso_inv _ _
#align algebraic_geometry.SheafedSpace.glue_data.ι_iso_PresheafedSpace_inv AlgebraicGeometry.SheafedSpace.GlueData.ι_isoPresheafedSpace_inv
-instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) :=
+instance ιIsOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) :=
by
rw [← D.ι_iso_PresheafedSpace_inv]
infer_instance
-#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpace.GlueData.ι_isOpenImmersion
+#align algebraic_geometry.SheafedSpace.glue_data.ι_is_open_immersion AlgebraicGeometry.SheafedSpace.GlueData.ιIsOpenImmersion
theorem ι_jointly_surjective (x : 𝖣.glued) : ∃ (i : D.J)(y : D.U i), (𝖣.ι i).base y = x :=
𝖣.ι_jointly_surjective (SheafedSpace.forget _ ⋙ CategoryTheory.forget TopCat) x
mathlib commit https://github.com/leanprover-community/mathlib/commit/49b7f94aab3a3bdca1f9f34c5d818afb253b3993
@@ -335,8 +335,8 @@ def ιInvApp {i : D.J} (U : Opens (D.U i).carrier) :
π :=
{ app := fun j => D.ιInvAppπApp U (unop j)
naturality' := fun X Y f' => by
- induction X using Opposite.rec
- induction Y using Opposite.rec
+ induction X using Opposite.rec'
+ induction Y using Opposite.rec'
let f : Y ⟶ X := f'.unop
have : f' = f.op := rfl
clear_value f
@@ -445,7 +445,7 @@ theorem π_ιInvApp_eq_id (i : D.J) (U : Opens (D.U i).carrier) :
D.diagramOverOpenπ U i ≫ D.ιInvAppπEqMap U ≫ D.ιInvApp U = 𝟙 _ :=
by
ext j
- induction j using Opposite.rec
+ induction j using Opposite.rec'
rcases j with (⟨j, k⟩ | ⟨j⟩)
· rw [←
limit.w (componentwise_diagram 𝖣.diagram.multispan _)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -170,7 +170,7 @@ theorem f_invApp_f_app (i j k : D.J) (U : Opens (D.V (i, j)).carrier) :
erw [(π₁ i, j, k).c.naturality_assoc, reassoc_of this, ← functor.map_comp_assoc,
is_open_immersion.inv_naturality_assoc, is_open_immersion.app_inv_app_assoc, ←
(D.V (i, k)).Presheaf.map_comp, ← (D.V (i, k)).Presheaf.map_comp]
- convert (category.comp_id _).symm
+ convert(category.comp_id _).symm
erw [(D.V (i, k)).Presheaf.map_id]
rfl
#align algebraic_geometry.PresheafedSpace.glue_data.f_inv_app_f_app AlgebraicGeometry.PresheafedSpace.GlueData.f_invApp_f_app
@@ -429,8 +429,7 @@ theorem π_ιInvApp_π (i j : D.J) (U : Opens (D.U i).carrier) :
iterate 3 rw [← functor.map_comp_assoc]
rw [nat_trans.naturality_assoc]
erw [← (D.V (i, j)).Presheaf.map_comp]
- convert
- limit.w (componentwise_diagram 𝖣.diagram.multispan _)
+ convert limit.w (componentwise_diagram 𝖣.diagram.multispan _)
(Quiver.Hom.op (walking_multispan.hom.fst (i, j)))
· rw [category.comp_id]
apply (config := { instances := false }) mono_comp
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -331,7 +331,7 @@ This forms the inverse of `(𝖣.ι i).c.app (op U)`. -/
def ιInvApp {i : D.J} (U : Opens (D.U i).carrier) :
(D.U i).Presheaf.obj (op U) ⟶ limit (D.diagramOverOpen U) :=
limit.lift (D.diagramOverOpen U)
- { x := (D.U i).Presheaf.obj (op U)
+ { pt := (D.U i).Presheaf.obj (op U)
π :=
{ app := fun j => D.ιInvAppπApp U (unop j)
naturality' := fun X Y f' => by
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -91,7 +91,7 @@ such that
We can then glue the spaces `U i` together by identifying `V i j` with `V j i`, such
that the `U i`'s are open subspaces of the glued space.
-/
--- Porting note: removed
+-- Porting note(#5171): this linter isn't ported yet.
-- @[nolint has_nonempty_instance]
structure GlueData extends GlueData (PresheafedSpace.{u, v, v} C) where
f_open : ∀ i j, IsOpenImmersion (f i j)
@@ -579,7 +579,7 @@ such that
We can then glue the spaces `U i` together by identifying `V i j` with `V j i`, such
that the `U i`'s are open subspaces of the glued space.
-/
--- Porting note: removed
+-- Porting note(#5171): this linter isn't ported yet.
-- @[nolint has_nonempty_instance]
structure GlueData extends CategoryTheory.GlueData (SheafedSpace.{u, v, v} C) where
f_open : ∀ i j, SheafedSpace.IsOpenImmersion (f i j)
@@ -660,7 +660,7 @@ such that
We can then glue the spaces `U i` together by identifying `V i j` with `V j i`, such
that the `U i`'s are open subspaces of the glued space.
-/
--- Porting note: removed
+-- Porting note(#5171): this linter isn't ported yet.
-- @[nolint has_nonempty_instance]
structure GlueData extends CategoryTheory.GlueData LocallyRingedSpace where
f_open : ∀ i j, LocallyRingedSpace.IsOpenImmersion (f i j)
@@ -253,7 +253,7 @@ theorem ι_image_preimage_eq (i j : D.J) (U : Opens (D.U i).carrier) :
dsimp only [Opens.map_coe, IsOpenMap.functor_obj_coe]
rw [← show _ = (𝖣.ι i).base from 𝖣.ι_gluedIso_inv (PresheafedSpace.forget _) i, ←
show _ = (𝖣.ι j).base from 𝖣.ι_gluedIso_inv (PresheafedSpace.forget _) j]
- -- Porting note: change `rw` to `erw` on `coe_comp`
+ -- Porting note (#11224): change `rw` to `erw` on `coe_comp`
erw [coe_comp, coe_comp, coe_comp]
rw [Set.image_comp, Set.preimage_comp]
erw [Set.preimage_image_eq]
@@ -474,7 +474,7 @@ theorem π_ιInvApp_π (i j : D.J) (U : Opens (D.U i).carrier) :
rw [congr_app (D.t_id _), id_c_app]
simp_rw [Category.assoc]
rw [← Functor.map_comp_assoc]
- -- Porting note: change `rw` to `erw`
+ -- Porting note (#11224): change `rw` to `erw`
erw [IsOpenImmersion.inv_naturality_assoc]
erw [IsOpenImmersion.app_invApp_assoc]
iterate 3 rw [← Functor.map_comp_assoc]
@@ -538,7 +538,7 @@ def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
replace this := reassoc_of% this
exact this _
rw [← Set.image_subset_iff, ← Set.image_univ, ← Set.image_comp, Set.image_univ]
- -- Porting note: change `rw` to `erw`
+ -- Porting note (#11224): change `rw` to `erw`
erw [← coe_comp]
rw [this, coe_comp, ← Set.image_univ, Set.image_comp]
exact Set.image_subset_range _ _
@@ -323,7 +323,7 @@ theorem opensImagePreimageMap_app_assoc (i j k : D.J) (U : Opens (D.U i).carrier
/-- (Implementation) Given an open subset of one of the spaces `U ⊆ Uᵢ`, the sheaf component of
the image `ι '' U` in the glued space is the limit of this diagram. -/
abbrev diagramOverOpen {i : D.J} (U : Opens (D.U i).carrier) :
- -- Portinge note : ↓ these need to be explicit
+ -- Porting note : ↓ these need to be explicit
(WalkingMultispan D.diagram.fstFrom D.diagram.sndFrom)ᵒᵖ ⥤ C :=
componentwiseDiagram 𝖣.diagram.multispan ((D.ι_openEmbedding i).isOpenMap.functor.obj U)
#align algebraic_geometry.PresheafedSpace.glue_data.diagram_over_open AlgebraicGeometry.PresheafedSpace.GlueData.diagramOverOpen
In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:
) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.
@@ -91,7 +91,7 @@ such that
We can then glue the spaces `U i` together by identifying `V i j` with `V j i`, such
that the `U i`'s are open subspaces of the glued space.
-/
--- Porting note : removed
+-- Porting note: removed
-- @[nolint has_nonempty_instance]
structure GlueData extends GlueData (PresheafedSpace.{u, v, v} C) where
f_open : ∀ i j, IsOpenImmersion (f i j)
@@ -126,7 +126,7 @@ abbrev toTopGlueData : TopCat.GlueData :=
theorem ι_openEmbedding [HasLimits C] (i : D.J) : OpenEmbedding (𝖣.ι i).base := by
rw [← show _ = (𝖣.ι i).base from 𝖣.ι_gluedIso_inv (PresheafedSpace.forget _) _]
- -- Porting note : added this erewrite
+ -- Porting note: added this erewrite
erw [coe_comp]
refine
OpenEmbedding.comp
@@ -139,10 +139,10 @@ theorem pullback_base (i j k : D.J) (S : Set (D.V (i, j)).carrier) :
have eq₁ : _ = (π₁ i, j, k).base := PreservesPullback.iso_hom_fst (forget C) _ _
have eq₂ : _ = (π₂ i, j, k).base := PreservesPullback.iso_hom_snd (forget C) _ _
rw [← eq₁, ← eq₂]
- -- Porting note : `rw` to `erw` on `coe_comp`
+ -- Porting note: `rw` to `erw` on `coe_comp`
erw [coe_comp]
rw [Set.image_comp]
- -- Porting note : `rw` to `erw` on `coe_comp`
+ -- Porting note: `rw` to `erw` on `coe_comp`
erw [coe_comp]
rw [Set.preimage_comp, Set.image_preimage_eq, TopCat.pullback_snd_image_fst_preimage]
rfl
@@ -171,7 +171,7 @@ theorem f_invApp_f_app (i j k : D.J) (U : Opens (D.V (i, j)).carrier) :
erw [(π₁ i, j, k).c.naturality_assoc, reassoc_of% this, ← Functor.map_comp_assoc,
IsOpenImmersion.inv_naturality_assoc, IsOpenImmersion.app_invApp_assoc, ←
(D.V (i, k)).presheaf.map_comp, ← (D.V (i, k)).presheaf.map_comp]
- -- Porting note : need to provide an explicit argument, otherwise Lean does not know which
+ -- Porting note: need to provide an explicit argument, otherwise Lean does not know which
-- category we are talking about
convert (Category.comp_id ((f D.toGlueData i k).c.app _)).symm
erw [(D.V (i, k)).presheaf.map_id]
@@ -253,7 +253,7 @@ theorem ι_image_preimage_eq (i j : D.J) (U : Opens (D.U i).carrier) :
dsimp only [Opens.map_coe, IsOpenMap.functor_obj_coe]
rw [← show _ = (𝖣.ι i).base from 𝖣.ι_gluedIso_inv (PresheafedSpace.forget _) i, ←
show _ = (𝖣.ι j).base from 𝖣.ι_gluedIso_inv (PresheafedSpace.forget _) j]
- -- Porting note : change `rw` to `erw` on `coe_comp`
+ -- Porting note: change `rw` to `erw` on `coe_comp`
erw [coe_comp, coe_comp, coe_comp]
rw [Set.image_comp, Set.preimage_comp]
erw [Set.preimage_image_eq]
@@ -346,7 +346,7 @@ def ιInvAppπApp {i : D.J} (U : Opens (D.U i).carrier) (j) :
dsimp only [Functor.op_obj, Opens.map_coe, unop_op, IsOpenMap.functor_obj_coe]
rw [Set.preimage_preimage]
change (D.f j k ≫ 𝖣.ι j).base ⁻¹' _ = _
- -- Porting note : used to be `congr 3`
+ -- Porting note: used to be `congr 3`
refine congr_arg (· ⁻¹' _) ?_
convert congr_arg (ContinuousMap.toFun (α := D.V ⟨j, k⟩) (β := D.glued) ·) ?_
refine congr_arg (PresheafedSpace.Hom.base (C := C) ·) ?_
@@ -354,7 +354,7 @@ def ιInvAppπApp {i : D.J} (U : Opens (D.U i).carrier) (j) :
· exact D.opensImagePreimageMap i j U
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app_π_app AlgebraicGeometry.PresheafedSpace.GlueData.ιInvAppπApp
--- Porting note : time out started in `erw [... congr_app (pullbackSymmetry_hom_comp_snd _ _)]` and
+-- Porting note: time out started in `erw [... congr_app (pullbackSymmetry_hom_comp_snd _ _)]` and
-- the last congr has a very difficult `rfl : eqToHom _ ≫ eqToHom _ ≫ ... = eqToHom ... `
set_option maxHeartbeats 600000 in
/-- (Implementation) The natural map `Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, 𝖣.ι i '' U)`.
@@ -407,7 +407,7 @@ def ιInvApp {i : D.J} (U : Opens (D.U i).carrier) :
erw [IsOpenImmersion.inv_naturality_assoc, IsOpenImmersion.inv_naturality_assoc,
IsOpenImmersion.inv_naturality_assoc, IsOpenImmersion.app_invApp_assoc]
repeat' erw [← (D.V (j, k)).presheaf.map_comp]
- -- Porting note : was just `congr`
+ -- Porting note: was just `congr`
exact congr_arg ((D.V (j, k)).presheaf.map ·) rfl } }
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app AlgebraicGeometry.PresheafedSpace.GlueData.ιInvApp
@@ -453,7 +453,7 @@ abbrev ιInvAppπEqMap {i : D.J} (U : Opens (D.U i).carrier) :=
theorem π_ιInvApp_π (i j : D.J) (U : Opens (D.U i).carrier) :
D.diagramOverOpenπ U i ≫ D.ιInvAppπEqMap U ≫ D.ιInvApp U ≫ D.diagramOverOpenπ U j =
D.diagramOverOpenπ U j := by
- -- Porting note : originally, the proof of monotonicity was left a blank and proved in the end
+ -- Porting note: originally, the proof of monotonicity was left a blank and proved in the end
-- but Lean 4 doesn't like this any more, so the proof is restructured
rw [← @cancel_mono (f := (componentwiseDiagram 𝖣.diagram.multispan _).map
(Quiver.Hom.op (WalkingMultispan.Hom.snd (i, j))) ≫ 𝟙 _) _ _ (by
@@ -474,7 +474,7 @@ theorem π_ιInvApp_π (i j : D.J) (U : Opens (D.U i).carrier) :
rw [congr_app (D.t_id _), id_c_app]
simp_rw [Category.assoc]
rw [← Functor.map_comp_assoc]
- -- Porting note : change `rw` to `erw`
+ -- Porting note: change `rw` to `erw`
erw [IsOpenImmersion.inv_naturality_assoc]
erw [IsOpenImmersion.app_invApp_assoc]
iterate 3 rw [← Functor.map_comp_assoc]
@@ -538,7 +538,7 @@ def vPullbackConeIsLimit (i j : D.J) : IsLimit (𝖣.vPullbackCone i j) :=
replace this := reassoc_of% this
exact this _
rw [← Set.image_subset_iff, ← Set.image_univ, ← Set.image_comp, Set.image_univ]
- -- Porting note : change `rw` to `erw`
+ -- Porting note: change `rw` to `erw`
erw [← coe_comp]
rw [this, coe_comp, ← Set.image_univ, Set.image_comp]
exact Set.image_subset_range _ _
@@ -579,7 +579,7 @@ such that
We can then glue the spaces `U i` together by identifying `V i j` with `V j i`, such
that the `U i`'s are open subspaces of the glued space.
-/
--- Porting note : removed
+-- Porting note: removed
-- @[nolint has_nonempty_instance]
structure GlueData extends CategoryTheory.GlueData (SheafedSpace.{u, v, v} C) where
f_open : ∀ i j, SheafedSpace.IsOpenImmersion (f i j)
@@ -615,7 +615,7 @@ theorem ι_isoPresheafedSpace_inv (i : D.J) :
instance ιIsOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) := by
rw [← D.ι_isoPresheafedSpace_inv]
- -- Porting note : was `inferInstance`
+ -- Porting note: was `inferInstance`
refine PresheafedSpace.IsOpenImmersion.comp (hf := ?_) (hg := inferInstance)
apply PresheafedSpace.GlueData.ιIsOpenImmersion
#align algebraic_geometry.SheafedSpace.glue_data.ι_IsOpenImmersion AlgebraicGeometry.SheafedSpaceₓ.GlueData.ιIsOpenImmersion
@@ -660,7 +660,7 @@ such that
We can then glue the spaces `U i` together by identifying `V i j` with `V j i`, such
that the `U i`'s are open subspaces of the glued space.
-/
--- Porting note : removed
+-- Porting note: removed
-- @[nolint has_nonempty_instance]
structure GlueData extends CategoryTheory.GlueData LocallyRingedSpace where
f_open : ∀ i j, LocallyRingedSpace.IsOpenImmersion (f i j)
@@ -693,7 +693,7 @@ theorem ι_isoSheafedSpace_inv (i : D.J) :
instance ι_isOpenImmersion (i : D.J) : IsOpenImmersion (𝖣.ι i) := by
delta IsOpenImmersion; rw [← D.ι_isoSheafedSpace_inv]
apply (config := { allowSynthFailures := true }) PresheafedSpace.IsOpenImmersion.comp
- -- Porting note : this was automatic
+ -- Porting note: this was automatic
exact (D.toSheafedSpaceGlueData).ιIsOpenImmersion i
#align algebraic_geometry.LocallyRingedSpace.glue_data.ι_IsOpenImmersion AlgebraicGeometry.LocallyRingedSpace.GlueData.ι_isOpenImmersion
@@ -191,7 +191,7 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
dsimp only [Functor.op, Opens.map, IsOpenMap.functor, unop_op, Opens.coe_mk]
congr
have := (𝖣.t_fac k i j).symm
- rw [←IsIso.inv_comp_eq] at this
+ rw [← IsIso.inv_comp_eq] at this
replace this := (congr_arg ((PresheafedSpace.Hom.base ·)) this).symm
replace this := congr_arg (ContinuousMap.toFun ·) this
dsimp at this
@@ -201,14 +201,14 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
erw [this, Set.image_comp, Set.image_comp, Set.preimage_image_eq]
swap
· refine Function.HasLeftInverse.injective ⟨(D.t i k).base, fun x => ?_⟩
- rw [←comp_apply, ←comp_base, D.t_inv, id_base, id_apply]
+ rw [← comp_apply, ← comp_base, D.t_inv, id_base, id_apply]
refine congr_arg (_ '' ·) ?_
refine congr_fun ?_ _
refine Set.image_eq_preimage_of_inverse ?_ ?_
· intro x
- rw [←comp_apply, ←comp_base, IsIso.inv_hom_id, id_base, id_apply]
+ rw [← comp_apply, ← comp_base, IsIso.inv_hom_id, id_base, id_apply]
· intro x
- rw [←comp_apply, ←comp_base, IsIso.hom_inv_id, id_base, id_apply]
+ rw [← comp_apply, ← comp_base, IsIso.hom_inv_id, id_base, id_apply]
· rw [← IsIso.eq_inv_comp, IsOpenImmersion.inv_invApp, Category.assoc,
(D.t' k i j).c.naturality_assoc]
simp_rw [← Category.assoc]
@@ -267,7 +267,7 @@ theorem ι_image_preimage_eq (i j : D.J) (U : Opens (D.U i).carrier) :
change (D.t i j ≫ D.t j i).base '' _ = _
rw [𝖣.t_inv]
simp
- · rw [←coe_comp, ← TopCat.mono_iff_injective]
+ · rw [← coe_comp, ← TopCat.mono_iff_injective]
infer_instance
#align algebraic_geometry.PresheafedSpace.glue_data.ι_image_preimage_eq AlgebraicGeometry.PresheafedSpace.GlueData.ι_image_preimage_eq
@@ -426,9 +426,9 @@ theorem ιInvApp_π {i : D.J} (U : Opens (D.U i).carrier) :
· exact h2.symm
· have := D.ι_gluedIso_inv (PresheafedSpace.forget _) i
dsimp at this
- rw [←this, coe_comp]
+ rw [← this, coe_comp]
refine Function.Injective.comp ?_ (TopCat.GlueData.ι_injective D.toTopGlueData i)
- rw [←TopCat.mono_iff_injective]
+ rw [← TopCat.mono_iff_injective]
infer_instance
delta ιInvApp
rw [limit.lift_π]
@@ -195,8 +195,10 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
replace this := (congr_arg ((PresheafedSpace.Hom.base ·)) this).symm
replace this := congr_arg (ContinuousMap.toFun ·) this
dsimp at this
- rw [coe_comp, coe_comp] at this
- rw [this, Set.image_comp, Set.image_comp, Set.preimage_image_eq]
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [coe_comp, coe_comp] at this
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [this, Set.image_comp, Set.image_comp, Set.preimage_image_eq]
swap
· refine Function.HasLeftInverse.injective ⟨(D.t i k).base, fun x => ?_⟩
rw [←comp_apply, ←comp_base, D.t_inv, id_base, id_apply]
@@ -195,10 +195,8 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
replace this := (congr_arg ((PresheafedSpace.Hom.base ·)) this).symm
replace this := congr_arg (ContinuousMap.toFun ·) this
dsimp at this
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [coe_comp, coe_comp] at this
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [this, Set.image_comp, Set.image_comp, Set.preimage_image_eq]
+ rw [coe_comp, coe_comp] at this
+ rw [this, Set.image_comp, Set.image_comp, Set.preimage_image_eq]
swap
· refine Function.HasLeftInverse.injective ⟨(D.t i k).base, fun x => ?_⟩
rw [←comp_apply, ←comp_base, D.t_inv, id_base, id_apply]
@@ -195,8 +195,10 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
replace this := (congr_arg ((PresheafedSpace.Hom.base ·)) this).symm
replace this := congr_arg (ContinuousMap.toFun ·) this
dsimp at this
- rw [coe_comp, coe_comp] at this
- rw [this, Set.image_comp, Set.image_comp, Set.preimage_image_eq]
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [coe_comp, coe_comp] at this
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [this, Set.image_comp, Set.image_comp, Set.preimage_image_eq]
swap
· refine Function.HasLeftInverse.injective ⟨(D.t i k).base, fun x => ?_⟩
rw [←comp_apply, ←comp_base, D.t_inv, id_base, id_apply]
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.
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-/
import Mathlib.Topology.Gluing
-import Mathlib.AlgebraicGeometry.OpenImmersion.Basic
-import Mathlib.AlgebraicGeometry.LocallyRingedSpace.HasColimits
+import Mathlib.Geometry.RingedSpace.OpenImmersion
+import Mathlib.Geometry.RingedSpace.LocallyRingedSpace.HasColimits
#align_import algebraic_geometry.presheafed_space.gluing from "leanprover-community/mathlib"@"533f62f4dd62a5aad24a04326e6e787c8f7e98b1"
@@ -42,7 +42,7 @@ Analogous results are also provided for `SheafedSpace` and `LocallyRingedSpace`.
Almost the whole file is dedicated to showing tht `ι i` is an open immersion. The fact that
this is an open embedding of topological spaces follows from `Mathlib/Topology/Gluing.lean`, and it
remains to construct `Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, ι i '' U)` for each `U ⊆ U i`.
-Since `Γ(𝒪_X, ι i '' U)` is the the limit of `diagram_over_open`, the components of the structure
+Since `Γ(𝒪_X, ι i '' U)` is the limit of `diagram_over_open`, the components of the structure
sheafs of the spaces in the gluing diagram, we need to construct a map
`ιInvApp_π_app : Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_V, U_V)` for each `V` in the gluing diagram.
@@ -192,15 +192,15 @@ theorem snd_invApp_t_app' (i j k : D.J) (U : Opens (pullback (D.f i j) (D.f i k)
congr
have := (𝖣.t_fac k i j).symm
rw [←IsIso.inv_comp_eq] at this
- replace this := (congr_arg ((PresheafedSpace.Hom.base .)) this).symm
- replace this := congr_arg (ContinuousMap.toFun .) this
+ replace this := (congr_arg ((PresheafedSpace.Hom.base ·)) this).symm
+ replace this := congr_arg (ContinuousMap.toFun ·) this
dsimp at this
rw [coe_comp, coe_comp] at this
rw [this, Set.image_comp, Set.image_comp, Set.preimage_image_eq]
swap
· refine Function.HasLeftInverse.injective ⟨(D.t i k).base, fun x => ?_⟩
rw [←comp_apply, ←comp_base, D.t_inv, id_base, id_apply]
- refine congr_arg (_ '' .) ?_
+ refine congr_arg (_ '' ·) ?_
refine congr_fun ?_ _
refine Set.image_eq_preimage_of_inverse ?_ ?_
· intro x
@@ -258,7 +258,7 @@ theorem ι_image_preimage_eq (i j : D.J) (U : Opens (D.U i).carrier) :
· refine' Eq.trans (D.toTopGlueData.preimage_image_eq_image' _ _ _) _
dsimp
rw [coe_comp, Set.image_comp]
- refine congr_arg (_ '' .) ?_
+ refine congr_arg (_ '' ·) ?_
rw [Set.eq_preimage_iff_image_eq, ← Set.image_comp]
swap
· apply CategoryTheory.ConcreteCategory.bijective_of_isIso
@@ -315,7 +315,7 @@ theorem opensImagePreimageMap_app_assoc (i j k : D.J) (U : Opens (D.U i).carrier
(π₂⁻¹ j, i, k) (unop _) ≫
(D.V (j, k)).presheaf.map
(eqToHom (opensImagePreimageMap_app' D i j k U).choose) ≫ f' := by
- simpa only [Category.assoc] using congr_arg (. ≫ f') (opensImagePreimageMap_app D i j k U)
+ simpa only [Category.assoc] using congr_arg (· ≫ f') (opensImagePreimageMap_app D i j k U)
#align algebraic_geometry.PresheafedSpace.glue_data.opens_image_preimage_map_app_assoc AlgebraicGeometry.PresheafedSpace.GlueData.opensImagePreimageMap_app_assoc
/-- (Implementation) Given an open subset of one of the spaces `U ⊆ Uᵢ`, the sheaf component of
@@ -345,9 +345,9 @@ def ιInvAppπApp {i : D.J} (U : Opens (D.U i).carrier) (j) :
rw [Set.preimage_preimage]
change (D.f j k ≫ 𝖣.ι j).base ⁻¹' _ = _
-- Porting note : used to be `congr 3`
- refine congr_arg (. ⁻¹' _) ?_
- convert congr_arg (ContinuousMap.toFun (α := D.V ⟨j, k⟩) (β := D.glued) .) ?_
- refine congr_arg (PresheafedSpace.Hom.base (C := C) .) ?_
+ refine congr_arg (· ⁻¹' _) ?_
+ convert congr_arg (ContinuousMap.toFun (α := D.V ⟨j, k⟩) (β := D.glued) ·) ?_
+ refine congr_arg (PresheafedSpace.Hom.base (C := C) ·) ?_
exact colimit.w 𝖣.diagram.multispan (WalkingMultispan.Hom.fst (j, k))
· exact D.opensImagePreimageMap i j U
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app_π_app AlgebraicGeometry.PresheafedSpace.GlueData.ιInvAppπApp
@@ -406,7 +406,7 @@ def ιInvApp {i : D.J} (U : Opens (D.U i).carrier) :
IsOpenImmersion.inv_naturality_assoc, IsOpenImmersion.app_invApp_assoc]
repeat' erw [← (D.V (j, k)).presheaf.map_comp]
-- Porting note : was just `congr`
- exact congr_arg ((D.V (j, k)).presheaf.map .) rfl } }
+ exact congr_arg ((D.V (j, k)).presheaf.map ·) rfl } }
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app AlgebraicGeometry.PresheafedSpace.GlueData.ιInvApp
/-- `ιInvApp` is the left inverse of `D.ι i` on `U`. -/
@@ -2,16 +2,13 @@
Copyright (c) 2021 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module algebraic_geometry.presheafed_space.gluing
-! leanprover-community/mathlib commit 533f62f4dd62a5aad24a04326e6e787c8f7e98b1
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Topology.Gluing
import Mathlib.AlgebraicGeometry.OpenImmersion.Basic
import Mathlib.AlgebraicGeometry.LocallyRingedSpace.HasColimits
+#align_import algebraic_geometry.presheafed_space.gluing from "leanprover-community/mathlib"@"533f62f4dd62a5aad24a04326e6e787c8f7e98b1"
+
/-!
# Gluing Structured spaces
@@ -356,7 +356,7 @@ def ιInvAppπApp {i : D.J} (U : Opens (D.U i).carrier) (j) :
#align algebraic_geometry.PresheafedSpace.glue_data.ι_inv_app_π_app AlgebraicGeometry.PresheafedSpace.GlueData.ιInvAppπApp
-- Porting note : time out started in `erw [... congr_app (pullbackSymmetry_hom_comp_snd _ _)]` and
--- the last congr has a very difficult `rfl : eqToHom _ ≫ eqToHom _ ≫ ... = eqToHom ... `
+-- the last congr has a very difficult `rfl : eqToHom _ ≫ eqToHom _ ≫ ... = eqToHom ... `
set_option maxHeartbeats 600000 in
/-- (Implementation) The natural map `Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, 𝖣.ι i '' U)`.
This forms the inverse of `(𝖣.ι i).c.app (op U)`. -/
@@ -23,19 +23,19 @@ provided.
## Main definitions
-* `algebraic_geometry.PresheafedSpace.glue_data`: A structure containing the family of gluing data.
-* `Category_theory.glue_data.glued`: The glued presheafed space.
+* `AlgebraicGeometry.PresheafedSpace.GlueData`: A structure containing the family of gluing data.
+* `CategoryTheory.GlueData.glued`: The glued presheafed space.
This is defined as the multicoequalizer of `∐ V i j ⇉ ∐ U i`, so that the general colimit API
can be used.
-* `Category_theory.glue_data.ι`: The immersion `ι i : U i ⟶ glued` for each `i : J`.
+* `CategoryTheory.GlueData.ι`: The immersion `ι i : U i ⟶ glued` for each `i : J`.
## Main results
-* `algebraic_geometry.PresheafedSpace.glue_data.ι_IsOpenImmersion`: The map `ι i : U i ⟶ glued`
+* `AlgebraicGeometry.PresheafedSpace.GlueData.ιIsOpenImmersion`: The map `ι i : U i ⟶ glued`
is an open immersion for each `i : J`.
-* `algebraic_geometry.PresheafedSpace.glue_data.ι_jointly_surjective` : The underlying maps of
+* `AlgebraicGeometry.PresheafedSpace.GlueData.ι_jointly_surjective` : The underlying maps of
`ι i : U i ⟶ glued` are jointly surjective.
-* `algebraic_geometry.PresheafedSpace.glue_data.V_pullback_cone_is_limit` : `V i j` is the pullback
+* `AlgebraicGeometry.PresheafedSpace.GlueData.vPullbackConeIsLimit` : `V i j` is the pullback
(intersection) of `U i` and `U j` over the glued space.
Analogous results are also provided for `SheafedSpace` and `LocallyRingedSpace`.
@@ -43,8 +43,8 @@ Analogous results are also provided for `SheafedSpace` and `LocallyRingedSpace`.
## Implementation details
Almost the whole file is dedicated to showing tht `ι i` is an open immersion. The fact that
-this is an open embedding of topological spaces follows from `topology.gluing.lean`, and it remains
-to construct `Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, ι i '' U)` for each `U ⊆ U i`.
+this is an open embedding of topological spaces follows from `Mathlib/Topology/Gluing.lean`, and it
+remains to construct `Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, ι i '' U)` for each `U ⊆ U i`.
Since `Γ(𝒪_X, ι i '' U)` is the the limit of `diagram_over_open`, the components of the structure
sheafs of the spaces in the gluing diagram, we need to construct a map
`ιInvApp_π_app : Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_V, U_V)` for each `V` in the gluing diagram.
The unported dependencies are