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

Proof steps:
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 (op U✝))
⊢ (((sheafedSpaceMap (f ≫ g)).c ≫ whiskerRight (eqToHom ⋯) (sheafedSpaceObj T).presheaf).app (op U✝)) x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app (op U✝)) x✝
tactic: ext
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 (op U✝))
⊢ (((sheafedSpaceMap (f ≫ g)).c ≫ whiskerRight (eqToHom ⋯) (sheafedSpaceObj T).presheaf).app (op U✝)) x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app (op 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 (op U✝))
⊢ (comap (f ≫ g) (unop (op U✝)) ((TopologicalSpace.Opens.map (topMap (f ≫ g))).obj (unop (op U✝))) ⋯ ≫
        (sheafedSpaceObj T).presheaf.map
          ((𝟙 (TopologicalSpace.Opens.map (sheafedSpaceMap (f ≫ g)).base).op).app (op U✝)))
      x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app (op 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 (op U✝))
⊢ (comap (f ≫ g) (unop (op U✝)) ((TopologicalSpace.Opens.map (topMap (f ≫ g))).obj (unop (op U✝))) ⋯ ≫
        (sheafedSpaceObj T).presheaf.map
          ((𝟙 (TopologicalSpace.Opens.map (sheafedSpaceMap (f ≫ g)).base).op).app (op U✝)))
      x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app (op 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 (op U✝))
⊢ ((comap g ?w.w.V ((TopologicalSpace.Opens.map (topMap (f ≫ g))).obj (unop (op U✝))) ?w.w.hVW).comp
        (comap f (unop (op U✝)) ?w.w.V ?w.w.hUV))
      x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app (op 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 (op 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 (op U✝))
⊢ ∀ p ∈ ?w.w.V, (PrimeSpectrum.comap f) p ∈ unop (op U✝)

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 (op U✝))
⊢ ∀ p ∈ (TopologicalSpace.Opens.map (topMap (f ≫ g))).obj (unop (op U✝)), (PrimeSpectrum.comap g) p ∈ ?w.w.V
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 (op U✝))
⊢ ((comap g ?w.w.V ((TopologicalSpace.Opens.map (topMap (f ≫ g))).obj (unop (op U✝))) ?w.w.hVW).comp
        (comap f (unop (op U✝)) ?w.w.V ?w.w.hUV))
      x✝ =
    ((sheafedSpaceMap g ≫ sheafedSpaceMap f).c.app (op 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 (op 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 (op U✝))
⊢ ∀ p ∈ ?w.w.V, (PrimeSpectrum.comap f) p ∈ unop (op U✝)

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 (op U✝))
⊢ ∀ p ∈ (TopologicalSpace.Opens.map (topMap (f ≫ g))).obj (unop (op U✝)), (PrimeSpectrum.comap g) p ∈ ?w.w.V
state_after: no goals
tactic: rfl