Theorem: AlgebraicGeometry.Spec.sheafedSpaceMap_comp
File: Mathlib/AlgebraicGeometry/Spec.lean

tactic: ext
state_before: R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
⊢ (sheafedSpaceMap (f ≫ g)).c ≫ whiskerRight (eqToHom ⋯) (sheafedSpaceObj T).presheaf =
    (sheafedSpaceMap g ≫ sheafedSpaceMap f).c
state_after: case w.w
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ (((sheafedSpaceMap (f ≫ g)).c ≫ whiskerRight (eqToHom ⋯) (sheafedSpaceObj T).presheaf).app { unop := U✝ }) x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app { unop := U✝ }) x✝

tactic: rw [NatTrans.comp_app, sheafedSpaceMap_c_app, whiskerRight_app, eqToHom_refl]
state_before: case w.w
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ (((sheafedSpaceMap (f ≫ g)).c ≫ whiskerRight (eqToHom ⋯) (sheafedSpaceObj T).presheaf).app { unop := U✝ }) x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app { unop := U✝ }) x✝
state_after: case w.w
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ (comap (f ≫ g) { unop := U✝ }.unop ((TopologicalSpace.Opens.map (topMap (f ≫ g))).obj { unop := U✝ }.unop) ⋯ ≫
        (sheafedSpaceObj T).presheaf.map
          ((𝟙 (TopologicalSpace.Opens.map (sheafedSpaceMap (f ≫ g)).base).op).app { unop := U✝ }))
      x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app { unop := U✝ }) x✝

tactic: erw [(sheafedSpaceObj T).presheaf.map_id, Category.comp_id, comap_comp]
state_before: case w.w
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ (comap (f ≫ g) { unop := U✝ }.unop ((TopologicalSpace.Opens.map (topMap (f ≫ g))).obj { unop := U✝ }.unop) ⋯ ≫
        (sheafedSpaceObj T).presheaf.map
          ((𝟙 (TopologicalSpace.Opens.map (sheafedSpaceMap (f ≫ g)).base).op).app { unop := U✝ }))
      x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app { unop := U✝ }) x✝
state_after: case w.w
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ ((comap g ?w.w.V ((TopologicalSpace.Opens.map (topMap (f ≫ g))).obj { unop := U✝ }.unop) ?w.w.hVW).comp
        (comap f { unop := U✝ }.unop ?w.w.V ?w.w.hUV))
      x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app { unop := U✝ }) x✝

case w.w.V
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ TopologicalSpace.Opens ↑(PrimeSpectrum.Top ↑S)

case w.w.hUV
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ ∀ p ∈ ?w.w.V, (PrimeSpectrum.comap f) p ∈ { unop := U✝ }.unop

case w.w.hVW
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ ∀ p ∈ (TopologicalSpace.Opens.map (topMap (f ≫ g))).obj { unop := U✝ }.unop, (PrimeSpectrum.comap g) p ∈ ?w.w.V

tactic: rfl
state_before: case w.w
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ ((comap g ?w.w.V ((TopologicalSpace.Opens.map (topMap (f ≫ g))).obj { unop := U✝ }.unop) ?w.w.hVW).comp
        (comap f { unop := U✝ }.unop ?w.w.V ?w.w.hUV))
      x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app { unop := U✝ }) x✝

case w.w.V
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ TopologicalSpace.Opens ↑(PrimeSpectrum.Top ↑S)

case w.w.hUV
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ ∀ p ∈ ?w.w.V, (PrimeSpectrum.comap f) p ∈ { unop := U✝ }.unop

case w.w.hVW
R S T : CommRingCat
f : R ⟶ S
g : S ⟶ T
U✝ : TopologicalSpace.Opens ↑↑(sheafedSpaceObj R).toPresheafedSpace
x✝ : (forget CommRingCat).obj ((sheafedSpaceObj R).presheaf.obj { unop := U✝ })
⊢ ∀ p ∈ (TopologicalSpace.Opens.map (topMap (f ≫ g))).obj { unop := U✝ }.unop, (PrimeSpectrum.comap g) p ∈ ?w.w.V
state_after: no goals