Theorem: CategoryTheory.GrothendieckTopology.diagramCompIso_hom_ι
File: Mathlib/CategoryTheory/Sites/CompatiblePlus.lean

tactic: delta diagramCompIso
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w₁
inst✝⁴ : Category.{max v u, w₁} D
E : Type w₂
inst✝³ : Category.{max v u, w₂} E
F : D ⥤ E
inst✝² : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) D
inst✝¹ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) E
inst✝ : (X : C) → (W : J.Cover X) → (P : Cᵒᵖ ⥤ D) → PreservesLimit (W.index P).multicospan F
P : Cᵒᵖ ⥤ D
X : C
W : (J.Cover X)ᵒᵖ
i : W.unop.Arrow
⊢ (J.diagramCompIso F P X).hom.app W ≫ Multiequalizer.ι (W.unop.index (P ⋙ F)) i =
    F.map (Multiequalizer.ι (W.unop.index P) i)
state_after: C : Type u
inst✝⁵ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w₁
inst✝⁴ : Category.{max v u, w₁} D
E : Type w₂
inst✝³ : Category.{max v u, w₂} E
F : D ⥤ E
inst✝² : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) D
inst✝¹ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) E
inst✝ : (X : C) → (W : J.Cover X) → (P : Cᵒᵖ ⥤ D) → PreservesLimit (W.index P).multicospan F
P : Cᵒᵖ ⥤ D
X : C
W : (J.Cover X)ᵒᵖ
i : W.unop.Arrow
⊢ (NatIso.ofComponents
              (fun W =>
                (isLimitOfPreserves F (limit.isLimit (W.unop.index P).multicospan)).conePointUniqueUpToIso
                    (limit.isLimit ((W.unop.index P).multicospan ⋙ F)) ≪≫
                  HasLimit.isoOfNatIso (Cover.multicospanComp F P W.unop).symm)
              ⋯).hom.app
        W ≫
      Multiequalizer.ι (W.unop.index (P ⋙ F)) i =
    F.map (Multiequalizer.ι (W.unop.index P) i)

tactic: dsimp
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w₁
inst✝⁴ : Category.{max v u, w₁} D
E : Type w₂
inst✝³ : Category.{max v u, w₂} E
F : D ⥤ E
inst✝² : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) D
inst✝¹ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) E
inst✝ : (X : C) → (W : J.Cover X) → (P : Cᵒᵖ ⥤ D) → PreservesLimit (W.index P).multicospan F
P : Cᵒᵖ ⥤ D
X : C
W : (J.Cover X)ᵒᵖ
i : W.unop.Arrow
⊢ (NatIso.ofComponents
              (fun W =>
                (isLimitOfPreserves F (limit.isLimit (W.unop.index P).multicospan)).conePointUniqueUpToIso
                    (limit.isLimit ((W.unop.index P).multicospan ⋙ F)) ≪≫
                  HasLimit.isoOfNatIso (Cover.multicospanComp F P W.unop).symm)
              ⋯).hom.app
        W ≫
      Multiequalizer.ι (W.unop.index (P ⋙ F)) i =
    F.map (Multiequalizer.ι (W.unop.index P) i)
state_after: C : Type u
inst✝⁵ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w₁
inst✝⁴ : Category.{max v u, w₁} D
E : Type w₂
inst✝³ : Category.{max v u, w₂} E
F : D ⥤ E
inst✝² : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) D
inst✝¹ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) E
inst✝ : (X : C) → (W : J.Cover X) → (P : Cᵒᵖ ⥤ D) → PreservesLimit (W.index P).multicospan F
P : Cᵒᵖ ⥤ D
X : C
W : (J.Cover X)ᵒᵖ
i : W.unop.Arrow
⊢ (((isLimitOfPreserves F (limit.isLimit (W.unop.index P).multicospan)).conePointUniqueUpToIso
            (limit.isLimit ((W.unop.index P).multicospan ⋙ F))).hom ≫
        (HasLimit.isoOfNatIso (Cover.multicospanComp F P W.unop).symm).hom) ≫
      Multiequalizer.ι (W.unop.index (P ⋙ F)) i =
    F.map (Multiequalizer.ι (W.unop.index P) i)

tactic: simp
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w₁
inst✝⁴ : Category.{max v u, w₁} D
E : Type w₂
inst✝³ : Category.{max v u, w₂} E
F : D ⥤ E
inst✝² : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) D
inst✝¹ : ∀ (α β : Type (max v u)) (fst snd : β → α), HasLimitsOfShape (WalkingMulticospan fst snd) E
inst✝ : (X : C) → (W : J.Cover X) → (P : Cᵒᵖ ⥤ D) → PreservesLimit (W.index P).multicospan F
P : Cᵒᵖ ⥤ D
X : C
W : (J.Cover X)ᵒᵖ
i : W.unop.Arrow
⊢ (((isLimitOfPreserves F (limit.isLimit (W.unop.index P).multicospan)).conePointUniqueUpToIso
            (limit.isLimit ((W.unop.index P).multicospan ⋙ F))).hom ≫
        (HasLimit.isoOfNatIso (Cover.multicospanComp F P W.unop).symm).hom) ≫
      Multiequalizer.ι (W.unop.index (P ⋙ F)) i =
    F.map (Multiequalizer.ι (W.unop.index P) i)
state_after: no goals