Theorem: CategoryTheory.Ran.reflective
File: Mathlib/CategoryTheory/Limits/KanExtension.lean

tactic: simp only [NatTrans.isIso_iff_isIso_app]
state_before: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
⊢ IsIso (adjunction D ι).counit
state_after: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
⊢ ∀ (X : S ⥤ D) (X_1 : S), IsIso (((adjunction D ι).counit.app X).app X_1)

tactic: intro F X
state_before: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
⊢ ∀ (X : S ⥤ D) (X_1 : S), IsIso (((adjunction D ι).counit.app X).app X_1)
state_after: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
F : S ⥤ D
X : S
⊢ IsIso (((adjunction D ι).counit.app F).app X)

tactic: dsimp [adjunction, equiv]
state_before: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
F : S ⥤ D
X : S
⊢ IsIso (((adjunction D ι).counit.app F).app X)
state_after: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
F : S ⥤ D
X : S
⊢ IsIso (𝟙 (limit (diagram ι F (ι.obj X))) ≫ limit.π (diagram ι F (ι.obj X)) (StructuredArrow.mk (𝟙 (ι.obj X))))

tactic: simp only [Category.id_comp]
state_before: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
F : S ⥤ D
X : S
⊢ IsIso (𝟙 (limit (diagram ι F (ι.obj X))) ≫ limit.π (diagram ι F (ι.obj X)) (StructuredArrow.mk (𝟙 (ι.obj X))))
state_after: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
F : S ⥤ D
X : S
⊢ IsIso (limit.π (diagram ι F (ι.obj X)) (StructuredArrow.mk (𝟙 (ι.obj X))))

tactic: exact ((limit.isLimit _).conePointUniqueUpToIso
  (limitOfDiagramInitial StructuredArrow.mkIdInitial _)).isIso_hom
state_before: S : Type u₁
L : Type u₂
D : Type u₃
inst✝⁵ : Category.{v₁, u₁} S
inst✝⁴ : Category.{v₂, u₂} L
inst✝³ : Category.{v₃, u₃} D
ι : S ⥤ L
inst✝² : ι.Full
inst✝¹ : ι.Faithful
inst✝ : ∀ (X : L), HasLimitsOfShape (StructuredArrow X ι) D
F : S ⥤ D
X : S
⊢ IsIso (limit.π (diagram ι F (ι.obj X)) (StructuredArrow.mk (𝟙 (ι.obj X))))
state_after: no goals