Theorem: AlgebraicGeometry.LocallyRingedSpace.toStalk_stalkMap_toΓSpec
File: Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean

tactic: rw [PresheafedSpace.stalkMap]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ toStalk (↑{ unop := Γ.obj { unop := X } }.unop) (X.toΓSpecSheafedSpace.base x) ≫
      PresheafedSpace.stalkMap X.toΓSpecSheafedSpace x =
    X.ΓToStalk x
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ toStalk (↑{ unop := Γ.obj { unop := X } }.unop) (X.toΓSpecSheafedSpace.base x) ≫
      (stalkFunctor CommRingCat (X.toΓSpecSheafedSpace.base x)).map X.toΓSpecSheafedSpace.c ≫
        stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x

tactic: erw [← toOpen_germ _ (basicOpen (1 : Γ.obj (op X)))
    ⟨X.toΓSpecFun x, by rw [basicOpen_one]; trivial⟩]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ toStalk (↑{ unop := Γ.obj { unop := X } }.unop) (X.toΓSpecSheafedSpace.base x) ≫
      (stalkFunctor CommRingCat (X.toΓSpecSheafedSpace.base x)).map X.toΓSpecSheafedSpace.c ≫
        stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (toOpen (↑(Γ.obj { unop := X })) (basicOpen 1) ≫
        (structureSheaf ↑(Γ.obj { unop := X })).presheaf.germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      (stalkFunctor CommRingCat (X.toΓSpecSheafedSpace.base x)).map X.toΓSpecSheafedSpace.c ≫
        stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x

tactic: rw [← Category.assoc, Category.assoc (toOpen _ _)]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (toOpen (↑(Γ.obj { unop := X })) (basicOpen 1) ≫
        (structureSheaf ↑(Γ.obj { unop := X })).presheaf.germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      (stalkFunctor CommRingCat (X.toΓSpecSheafedSpace.base x)).map X.toΓSpecSheafedSpace.c ≫
        stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (toOpen (↑(Γ.obj { unop := X })) (basicOpen 1) ≫
        (structureSheaf ↑(Γ.obj { unop := X })).presheaf.germ ⟨X.toΓSpecFun x, ⋯⟩ ≫
          (stalkFunctor CommRingCat (X.toΓSpecSheafedSpace.base x)).map X.toΓSpecSheafedSpace.c) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x

tactic: erw [stalkFunctor_map_germ]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (toOpen (↑(Γ.obj { unop := X })) (basicOpen 1) ≫
        (structureSheaf ↑(Γ.obj { unop := X })).presheaf.germ ⟨X.toΓSpecFun x, ⋯⟩ ≫
          (stalkFunctor CommRingCat (X.toΓSpecSheafedSpace.base x)).map X.toΓSpecSheafedSpace.c) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (toOpen (↑(Γ.obj { unop := X })) (basicOpen 1) ≫
        X.toΓSpecSheafedSpace.c.app { unop := basicOpen 1 } ≫
          (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x

tactic: rw [← Category.assoc, toΓSpecSheafedSpace_app_spec]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (toOpen (↑(Γ.obj { unop := X })) (basicOpen 1) ≫
        X.toΓSpecSheafedSpace.c.app { unop := basicOpen 1 } ≫
          (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (X.toToΓSpecMapBasicOpen 1 ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x

tactic: unfold ΓToStalk
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (X.toToΓSpecMapBasicOpen 1 ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.ΓToStalk x
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (X.toToΓSpecMapBasicOpen 1 ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.presheaf.germ ⟨x, trivial⟩

tactic: rw [← stalkPushforward_germ _ X.toΓSpecBase X.presheaf ⊤]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (X.toToΓSpecMapBasicOpen 1 ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    X.presheaf.germ ⟨x, trivial⟩
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (X.toToΓSpecMapBasicOpen 1 ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    (X.toΓSpecBase _* X.presheaf).germ ⟨X.toΓSpecBase ↑⟨x, trivial⟩, ⋯⟩ ≫
      stalkPushforward CommRingCat X.toΓSpecBase X.presheaf ↑⟨x, trivial⟩

tactic: congr 1
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (X.toToΓSpecMapBasicOpen 1 ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩) ≫
      stalkPushforward CommRingCat X.toΓSpecSheafedSpace.base X.presheaf x =
    (X.toΓSpecBase _* X.presheaf).germ ⟨X.toΓSpecBase ↑⟨x, trivial⟩, ⋯⟩ ≫
      stalkPushforward CommRingCat X.toΓSpecBase X.presheaf ↑⟨x, trivial⟩
state_after: case e_a
X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ X.toToΓSpecMapBasicOpen 1 ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩ =
    (X.toΓSpecBase _* X.presheaf).germ ⟨X.toΓSpecBase ↑⟨x, trivial⟩, ⋯⟩

tactic: change (X.toΓSpecBase _* X.presheaf).map le_top.hom.op ≫ _ = _
state_before: case e_a
X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ X.toToΓSpecMapBasicOpen 1 ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩ =
    (X.toΓSpecBase _* X.presheaf).germ ⟨X.toΓSpecBase ↑⟨x, trivial⟩, ⋯⟩
state_after: case e_a
X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (X.toΓSpecBase _* X.presheaf).map ⋯.hom.op ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩ =
    (X.toΓSpecBase _* X.presheaf).germ ⟨X.toΓSpecBase ↑⟨x, trivial⟩, ⋯⟩

tactic: apply germ_res
state_before: case e_a
X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ (X.toΓSpecBase _* X.presheaf).map ⋯.hom.op ≫ (X.toΓSpecSheafedSpace.base _* X.presheaf).germ ⟨X.toΓSpecFun x, ⋯⟩ =
    (X.toΓSpecBase _* X.presheaf).germ ⟨X.toΓSpecBase ↑⟨x, trivial⟩, ⋯⟩
state_after: no goals

tactic: rw [basicOpen_one]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ X.toΓSpecFun x ∈ basicOpen 1
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ X.toΓSpecFun x ∈ ⊤

tactic: trivial
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
x : ↑X.toTopCat
⊢ X.toΓSpecFun x ∈ ⊤
state_after: no goals