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

tactic: exact le_top
state_before: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ adjunction.unit.app X ⁻¹ᵁ U.unop ≤ ⊤
state_after: no goals

tactic: rw [← StructureSheaf.toOpen_res _ _ _ (homOfLE le_top), Category.assoc,
  NatTrans.naturality _ (homOfLE (le_top (a := U.unop))).op]
state_before: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ toOpen (↑(Scheme.Γ.rightOp.obj X).unop) U.unop ≫ (adjunction.unit.app X).val.c.app U = X.presheaf.map (homOfLE ⋯).op
state_after: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ toOpen ↑(Scheme.Γ.rightOp.obj X).unop ⊤ ≫
      (adjunction.unit.app X).val.c.app { unop := ⊤ } ≫
        ((adjunction.unit.app X).val.base _* ((𝟭 Scheme).obj X).presheaf).map (homOfLE ⋯).op =
    X.presheaf.map (homOfLE ⋯).op

tactic: show (ΓSpec.adjunction.counit.app (Scheme.Γ.rightOp.obj X)).unop ≫
  (Scheme.Γ.rightOp.map (ΓSpec.adjunction.unit.app X)).unop ≫ _ = _
state_before: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ toOpen ↑(Scheme.Γ.rightOp.obj X).unop ⊤ ≫
      (adjunction.unit.app X).val.c.app { unop := ⊤ } ≫
        ((adjunction.unit.app X).val.base _* ((𝟭 Scheme).obj X).presheaf).map (homOfLE ⋯).op =
    X.presheaf.map (homOfLE ⋯).op
state_after: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ (adjunction.counit.app (Scheme.Γ.rightOp.obj X)).unop ≫
      (Scheme.Γ.rightOp.map (adjunction.unit.app X)).unop ≫
        ((adjunction.unit.app X).val.base _* ((𝟭 Scheme).obj X).presheaf).map (homOfLE ⋯).op =
    X.presheaf.map (homOfLE ⋯).op

tactic: rw [← Category.assoc, ← unop_comp, ΓSpec.adjunction.left_triangle_components]
state_before: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ (adjunction.counit.app (Scheme.Γ.rightOp.obj X)).unop ≫
      (Scheme.Γ.rightOp.map (adjunction.unit.app X)).unop ≫
        ((adjunction.unit.app X).val.base _* ((𝟭 Scheme).obj X).presheaf).map (homOfLE ⋯).op =
    X.presheaf.map (homOfLE ⋯).op
state_after: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ (𝟙 (Scheme.Γ.rightOp.obj X)).unop ≫
      ((adjunction.unit.app X).val.base _* ((𝟭 Scheme).obj X).presheaf).map (homOfLE ⋯).op =
    X.presheaf.map (homOfLE ⋯).op

tactic: dsimp
state_before: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ (𝟙 (Scheme.Γ.rightOp.obj X)).unop ≫
      ((adjunction.unit.app X).val.base _* ((𝟭 Scheme).obj X).presheaf).map (homOfLE ⋯).op =
    X.presheaf.map (homOfLE ⋯).op
state_after: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ 𝟙 Γ(X, ⊤) ≫ X.presheaf.map ((Opens.map (adjunction.unit.app X).val.base).map (homOfLE ⋯)).op =
    X.presheaf.map (homOfLE ⋯).op

tactic: exact Category.id_comp _
state_before: X : Scheme
U : (Opens ↑↑((Scheme.Γ.rightOp ⋙ Scheme.Spec).obj X).toPresheafedSpace)ᵒᵖ
⊢ 𝟙 Γ(X, ⊤) ≫ X.presheaf.map ((Opens.map (adjunction.unit.app X).val.base).map (homOfLE ⋯)).op =
    X.presheaf.map (homOfLE ⋯).op
state_after: no goals