Theorem: smoothSheafCommRing.forgetStalk_inv_comp_eval
File: Mathlib/Geometry/Manifold/Sheaf/Smooth.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
⊢ (forgetStalk IM I M R x).inv ≫ ⇑(evalHom IM I M R x) = smoothSheaf.evalHom IM I R x
state_after: case w
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
⊢ ∀ (j : (OpenNhds x)ᵒᵖ),
    colimit.ι
          (((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑(TopCat.of M))ᵒᵖ (Type u)).obj (OpenNhds.inclusion x).op).obj
            (smoothSheaf IM I M R).presheaf)
          j ≫
        (forgetStalk IM I M R x).inv ≫ ⇑(evalHom IM I M R x) =
      colimit.ι
          (((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑(TopCat.of M))ᵒᵖ (Type u)).obj (OpenNhds.inclusion x).op).obj
            (smoothSheaf IM I M R).presheaf)
          j ≫
        smoothSheaf.evalHom IM I R x
tactic: apply Limits.colimit.hom_ext
state_before: case w
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
⊢ ∀ (j : (OpenNhds x)ᵒᵖ),
    colimit.ι
          (((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑(TopCat.of M))ᵒᵖ (Type u)).obj (OpenNhds.inclusion x).op).obj
            (smoothSheaf IM I M R).presheaf)
          j ≫
        (forgetStalk IM I M R x).inv ≫ ⇑(evalHom IM I M R x) =
      colimit.ι
          (((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑(TopCat.of M))ᵒᵖ (Type u)).obj (OpenNhds.inclusion x).op).obj
            (smoothSheaf IM I M R).presheaf)
          j ≫
        smoothSheaf.evalHom IM I R x
state_after: case w
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
U : (OpenNhds x)ᵒᵖ
⊢ colimit.ι
        (((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑(TopCat.of M))ᵒᵖ (Type u)).obj (OpenNhds.inclusion x).op).obj
          (smoothSheaf IM I M R).presheaf)
        U ≫
      (forgetStalk IM I M R x).inv ≫ ⇑(evalHom IM I M R x) =
    colimit.ι
        (((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑(TopCat.of M))ᵒᵖ (Type u)).obj (OpenNhds.inclusion x).op).obj
          (smoothSheaf IM I M R).presheaf)
        U ≫
      smoothSheaf.evalHom IM I R x
tactic: intro U
state_before: case w
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
U : (OpenNhds x)ᵒᵖ
⊢ colimit.ι
        (((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑(TopCat.of M))ᵒᵖ (Type u)).obj (OpenNhds.inclusion x).op).obj
          (smoothSheaf IM I M R).presheaf)
        U ≫
      (forgetStalk IM I M R x).inv ≫ ⇑(evalHom IM I M R x) =
    colimit.ι
        (((whiskeringLeft (OpenNhds x)ᵒᵖ (Opens ↑(TopCat.of M))ᵒᵖ (Type u)).obj (OpenNhds.inclusion x).op).obj
          (smoothSheaf IM I M R).presheaf)
        U ≫
      smoothSheaf.evalHom IM I R x
state_after: case w
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
U : (OpenNhds x)ᵒᵖ
⊢ colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheaf IM I M R).presheaf) U ≫
      (forgetStalk IM I M R x).inv ≫ ⇑(evalHom IM I M R x) =
    colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheaf IM I M R).presheaf) U ≫ smoothSheaf.evalHom IM I R x
tactic: show (colimit.ι _ U) ≫ _ = colimit.ι ((OpenNhds.inclusion x).op ⋙ _) U ≫ _
state_before: case w
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
U : (OpenNhds x)ᵒᵖ
⊢ colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheaf IM I M R).presheaf) U ≫
      (forgetStalk IM I M R x).inv ≫ ⇑(evalHom IM I M R x) =
    colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheaf IM I M R).presheaf) U ≫ smoothSheaf.evalHom IM I R x
state_after: case w
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
U : (OpenNhds x)ᵒᵖ
⊢ (forget CommRingCat).map (colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheafCommRing IM I M R).presheaf) U) ≫
      ⇑(evalHom IM I M R x) =
    colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheaf IM I M R).presheaf) U ≫ smoothSheaf.evalHom IM I R x
tactic: rw [smoothSheafCommRing.ι_forgetStalk_inv_assoc]
state_before: case w
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
U : (OpenNhds x)ᵒᵖ
⊢ (forget CommRingCat).map (colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheafCommRing IM I M R).presheaf) U) ≫
      ⇑(evalHom IM I M R x) =
    colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheaf IM I M R).presheaf) U ≫ smoothSheaf.evalHom IM I R x
state_after: case h.e'_3
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
U : (OpenNhds x)ᵒᵖ
⊢ colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheaf IM I M R).presheaf) U ≫ smoothSheaf.evalHom IM I R x =
    (forget CommRingCat).map (evalAt IM I M R x (unop U))
tactic: convert congr_arg (fun i ↦ (forget CommRingCat).map i) (smoothSheafCommRing.ι_evalHom ..)
state_before: case h.e'_3
𝕜 : Type u_1
inst✝²¹ : NontriviallyNormedField 𝕜
EM : Type u_2
inst✝²⁰ : NormedAddCommGroup EM
inst✝¹⁹ : NormedSpace 𝕜 EM
HM : Type u_3
inst✝¹⁸ : TopologicalSpace HM
IM : ModelWithCorners 𝕜 EM HM
E : Type u_4
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_5
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_6
inst✝¹⁴ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E H'
M : Type u
inst✝¹³ : TopologicalSpace M
inst✝¹² : ChartedSpace HM M
N G A A' R : Type u
inst✝¹¹ : TopologicalSpace N
inst✝¹⁰ : ChartedSpace H N
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : TopologicalSpace A
inst✝⁶ : ChartedSpace H A
inst✝⁵ : TopologicalSpace A'
inst✝⁴ : ChartedSpace H' A'
inst✝³ : TopologicalSpace R
inst✝² : ChartedSpace H R
inst✝¹ : CommRing R
inst✝ : SmoothRing I R
x : ↑(TopCat.of M)
U : (OpenNhds x)ᵒᵖ
⊢ colimit.ι ((OpenNhds.inclusion x).op ⋙ (smoothSheaf IM I M R).presheaf) U ≫ smoothSheaf.evalHom IM I R x =
    (forget CommRingCat).map (evalAt IM I M R x (unop U))
state_after: no goals
tactic: exact smoothSheaf.ι_evalHom IM I R x U