Theorem: AlgebraicGeometry.ΓSpec.toOpen_comp_locallyRingedSpaceAdjunction_homEquiv_app
File: Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean

tactic: rw [← StructureSheaf.toOpen_res _ _ _ (homOfLE le_top), Category.assoc,
  NatTrans.naturality _ (homOfLE (le_top (a := U.unop))).op,
  show (toOpen R ⊤) = (toOpen R ⊤).op.unop from rfl,
  ← locallyRingedSpaceAdjunction_counit_app']
state_before: X : LocallyRingedSpace
R : Type u
inst✝ : CommRing R
f : Γ.rightOp.obj X ⟶ { unop := CommRingCat.of R }
U : (Opens ↑↑(Spec.toLocallyRingedSpace.obj { unop := CommRingCat.of R }).toPresheafedSpace)ᵒᵖ
⊢ toOpen R U.unop ≫ ((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.c.app U =
    f.unop ≫ X.presheaf.map (homOfLE ⋯).op
state_after: X : LocallyRingedSpace
R : Type u
inst✝ : CommRing R
f : Γ.rightOp.obj X ⟶ { unop := CommRingCat.of R }
U : (Opens ↑↑(Spec.toLocallyRingedSpace.obj { unop := CommRingCat.of R }).toPresheafedSpace)ᵒᵖ
⊢ (locallyRingedSpaceAdjunction.counit.app { unop := CommRingCat.of R }).unop ≫
      ((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.c.app { unop := ⊤ } ≫
        (((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.base _* X.presheaf).map
          (homOfLE ⋯).op =
    f.unop ≫ X.presheaf.map (homOfLE ⋯).op

tactic: simp_rw [← Γ_map_op]
state_before: X : LocallyRingedSpace
R : Type u
inst✝ : CommRing R
f : Γ.rightOp.obj X ⟶ { unop := CommRingCat.of R }
U : (Opens ↑↑(Spec.toLocallyRingedSpace.obj { unop := CommRingCat.of R }).toPresheafedSpace)ᵒᵖ
⊢ (locallyRingedSpaceAdjunction.counit.app { unop := CommRingCat.of R }).unop ≫
      ((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.c.app { unop := ⊤ } ≫
        (((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.base _* X.presheaf).map
          (homOfLE ⋯).op =
    f.unop ≫ X.presheaf.map (homOfLE ⋯).op
state_after: X : LocallyRingedSpace
R : Type u
inst✝ : CommRing R
f : Γ.rightOp.obj X ⟶ { unop := CommRingCat.of R }
U : (Opens ↑↑(Spec.toLocallyRingedSpace.obj { unop := CommRingCat.of R }).toPresheafedSpace)ᵒᵖ
⊢ (locallyRingedSpaceAdjunction.counit.app { unop := CommRingCat.of R }).unop ≫
      Γ.map ((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).op ≫
        (((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.base _* X.presheaf).map
          (homOfLE ⋯).op =
    f.unop ≫ X.presheaf.map (homOfLE ⋯).op

tactic: rw [← Γ.rightOp_map_unop, ← Category.assoc, ← unop_comp, ← Adjunction.homEquiv_counit,
  Equiv.symm_apply_apply]
state_before: X : LocallyRingedSpace
R : Type u
inst✝ : CommRing R
f : Γ.rightOp.obj X ⟶ { unop := CommRingCat.of R }
U : (Opens ↑↑(Spec.toLocallyRingedSpace.obj { unop := CommRingCat.of R }).toPresheafedSpace)ᵒᵖ
⊢ (locallyRingedSpaceAdjunction.counit.app { unop := CommRingCat.of R }).unop ≫
      Γ.map ((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).op ≫
        (((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.base _* X.presheaf).map
          (homOfLE ⋯).op =
    f.unop ≫ X.presheaf.map (homOfLE ⋯).op
state_after: X : LocallyRingedSpace
R : Type u
inst✝ : CommRing R
f : Γ.rightOp.obj X ⟶ { unop := CommRingCat.of R }
U : (Opens ↑↑(Spec.toLocallyRingedSpace.obj { unop := CommRingCat.of R }).toPresheafedSpace)ᵒᵖ
⊢ f.unop ≫
      (((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.base _* X.presheaf).map
        (homOfLE ⋯).op =
    f.unop ≫ X.presheaf.map (homOfLE ⋯).op

tactic: rfl
state_before: X : LocallyRingedSpace
R : Type u
inst✝ : CommRing R
f : Γ.rightOp.obj X ⟶ { unop := CommRingCat.of R }
U : (Opens ↑↑(Spec.toLocallyRingedSpace.obj { unop := CommRingCat.of R }).toPresheafedSpace)ᵒᵖ
⊢ f.unop ≫
      (((locallyRingedSpaceAdjunction.homEquiv X { unop := CommRingCat.of R }) f).val.base _* X.presheaf).map
        (homOfLE ⋯).op =
    f.unop ≫ X.presheaf.map (homOfLE ⋯).op
state_after: no goals