Theorem: CategoryTheory.evaluationLeftAdjoint_obj_map
File: Mathlib/CategoryTheory/Adjunction/Evaluation.lean

Proof steps:
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
c : C
x✝ d₂ : D
f : x✝ ⟶ d₂
⊢ ∀ ⦃X Y : C⦄ (f_1 : X ⟶ Y),
    ((fun d =>
                { obj := fun t => ∐ fun x => d, map := fun {X Y} f => Sigma.desc fun g => Sigma.ι (fun x => d) (g ≫ f),
                  map_id := ⋯, map_comp := ⋯ })
              x✝).map
          f_1 ≫
        (fun e => Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) Y =
      (fun e => Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) X ≫
        ((fun d =>
                { obj := fun t => ∐ fun x => d, map := fun {X Y} f => Sigma.desc fun g => Sigma.ι (fun x => d) (g ≫ f),
                  map_id := ⋯, map_comp := ⋯ })
              d₂).map
          f_1
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
c : C
x✝ d₂ : D
f : x✝ ⟶ d₂
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
⊢ ((fun d =>
              { obj := fun t => ∐ fun x => d, map := fun {X Y} f => Sigma.desc fun g => Sigma.ι (fun x => d) (g ≫ f),
                map_id := ⋯, map_comp := ⋯ })
            x✝).map
        f✝ ≫
      (fun e => Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) Y✝ =
    (fun e => Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) X✝ ≫
      ((fun d =>
              { obj := fun t => ∐ fun x => d, map := fun {X Y} f => Sigma.desc fun g => Sigma.ι (fun x => d) (g ≫ f),
                map_id := ⋯, map_comp := ⋯ })
            d₂).map
        f✝
tactic: intros
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
c : C
x✝ d₂ : D
f : x✝ ⟶ d₂
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
⊢ ((fun d =>
              { obj := fun t => ∐ fun x => d, map := fun {X Y} f => Sigma.desc fun g => Sigma.ι (fun x => d) (g ≫ f),
                map_id := ⋯, map_comp := ⋯ })
            x✝).map
        f✝ ≫
      (fun e => Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) Y✝ =
    (fun e => Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) X✝ ≫
      ((fun d =>
              { obj := fun t => ∐ fun x => d, map := fun {X Y} f => Sigma.desc fun g => Sigma.ι (fun x => d) (g ≫ f),
                map_id := ⋯, map_comp := ⋯ })
            d₂).map
        f✝
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
c : C
x✝ d₂ : D
f : x✝ ⟶ d₂
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
⊢ ((Sigma.desc fun g => Sigma.ι (fun x => x✝) (g ≫ f✝)) ≫ Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) =
    (Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) ≫ Sigma.desc fun g => Sigma.ι (fun x => d₂) (g ≫ f✝)
tactic: dsimp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
c : C
x✝ d₂ : D
f : x✝ ⟶ d₂
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
⊢ ((Sigma.desc fun g => Sigma.ι (fun x => x✝) (g ≫ f✝)) ≫ Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) =
    (Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) ≫ Sigma.desc fun g => Sigma.ι (fun x => d₂) (g ≫ f✝)
state_after: case h
C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
c : C
x✝ d₂ : D
f : x✝ ⟶ d₂
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
b✝ : c ⟶ X✝
⊢ (Sigma.ι (fun x => x✝) b✝ ≫
      (Sigma.desc fun g => Sigma.ι (fun x => x✝) (g ≫ f✝)) ≫ Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) =
    Sigma.ι (fun x => x✝) b✝ ≫
      (Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) ≫ Sigma.desc fun g => Sigma.ι (fun x => d₂) (g ≫ f✝)
tactic: ext
state_before: case h
C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : ∀ (a b : C), HasCoproductsOfShape (a ⟶ b) D
c : C
x✝ d₂ : D
f : x✝ ⟶ d₂
X✝ Y✝ : C
f✝ : X✝ ⟶ Y✝
b✝ : c ⟶ X✝
⊢ (Sigma.ι (fun x => x✝) b✝ ≫
      (Sigma.desc fun g => Sigma.ι (fun x => x✝) (g ≫ f✝)) ≫ Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) =
    Sigma.ι (fun x => x✝) b✝ ≫
      (Sigma.desc fun h => f ≫ Sigma.ι (fun x => d₂) h) ≫ Sigma.desc fun g => Sigma.ι (fun x => d₂) (g ≫ f✝)
state_after: no goals
tactic: simp