Theorem: AlgebraicGeometry.LocallyRingedSpace.toΓSpecSheafedSpace_app_eq
File: Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean

tactic: have := TopCat.Sheaf.extend_hom_app (Spec.toSheafedSpace.obj (op (Γ.obj (op X)))).presheaf
  ((TopCat.Sheaf.pushforward _ X.toΓSpecBase).obj X.𝒪)
  isBasis_basic_opens X.toΓSpecCBasicOpens r
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
⊢ X.toΓSpecSheafedSpace.c.app { unop := basicOpen r } = X.toΓSpecCApp r
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
this :
  ((TopCat.Sheaf.restrictHomEquivHom (Spec.toSheafedSpace.obj { unop := Γ.obj { unop := X } }).presheaf
            ((TopCat.Sheaf.pushforward CommRingCat X.toΓSpecBase).obj X.𝒪) ⋯)
          X.toΓSpecCBasicOpens).app
      { unop := basicOpen r } =
    X.toΓSpecCBasicOpens.app { unop := r }
⊢ X.toΓSpecSheafedSpace.c.app { unop := basicOpen r } = X.toΓSpecCApp r

tactic: dsimp at this
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
this :
  ((TopCat.Sheaf.restrictHomEquivHom (Spec.toSheafedSpace.obj { unop := Γ.obj { unop := X } }).presheaf
            ((TopCat.Sheaf.pushforward CommRingCat X.toΓSpecBase).obj X.𝒪) ⋯)
          X.toΓSpecCBasicOpens).app
      { unop := basicOpen r } =
    X.toΓSpecCBasicOpens.app { unop := r }
⊢ X.toΓSpecSheafedSpace.c.app { unop := basicOpen r } = X.toΓSpecCApp r
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
this :
  ((TopCat.Sheaf.restrictHomEquivHom (structureSheaf ↑(X.presheaf.obj { unop := ⊤ })).val
            ((TopCat.Sheaf.pushforward CommRingCat X.toΓSpecBase).obj X.𝒪) ⋯)
          X.toΓSpecCBasicOpens).app
      { unop := basicOpen r } =
    X.toΓSpecCApp r
⊢ X.toΓSpecSheafedSpace.c.app { unop := basicOpen r } = X.toΓSpecCApp r

tactic: rw [← this]
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
this :
  ((TopCat.Sheaf.restrictHomEquivHom (structureSheaf ↑(X.presheaf.obj { unop := ⊤ })).val
            ((TopCat.Sheaf.pushforward CommRingCat X.toΓSpecBase).obj X.𝒪) ⋯)
          X.toΓSpecCBasicOpens).app
      { unop := basicOpen r } =
    X.toΓSpecCApp r
⊢ X.toΓSpecSheafedSpace.c.app { unop := basicOpen r } = X.toΓSpecCApp r
state_after: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
this :
  ((TopCat.Sheaf.restrictHomEquivHom (structureSheaf ↑(X.presheaf.obj { unop := ⊤ })).val
            ((TopCat.Sheaf.pushforward CommRingCat X.toΓSpecBase).obj X.𝒪) ⋯)
          X.toΓSpecCBasicOpens).app
      { unop := basicOpen r } =
    X.toΓSpecCApp r
⊢ X.toΓSpecSheafedSpace.c.app { unop := basicOpen r } =
    ((TopCat.Sheaf.restrictHomEquivHom (structureSheaf ↑(X.presheaf.obj { unop := ⊤ })).val
            ((TopCat.Sheaf.pushforward CommRingCat X.toΓSpecBase).obj X.𝒪) ⋯)
          X.toΓSpecCBasicOpens).app
      { unop := basicOpen r }

tactic: dsimp
state_before: X : LocallyRingedSpace
r : ↑(Γ.obj { unop := X })
this :
  ((TopCat.Sheaf.restrictHomEquivHom (structureSheaf ↑(X.presheaf.obj { unop := ⊤ })).val
            ((TopCat.Sheaf.pushforward CommRingCat X.toΓSpecBase).obj X.𝒪) ⋯)
          X.toΓSpecCBasicOpens).app
      { unop := basicOpen r } =
    X.toΓSpecCApp r
⊢ X.toΓSpecSheafedSpace.c.app { unop := basicOpen r } =
    ((TopCat.Sheaf.restrictHomEquivHom (structureSheaf ↑(X.presheaf.obj { unop := ⊤ })).val
            ((TopCat.Sheaf.pushforward CommRingCat X.toΓSpecBase).obj X.𝒪) ⋯)
          X.toΓSpecCBasicOpens).app
      { unop := basicOpen r }
state_after: no goals