File: Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan
code: /-- A left Kan extension of `g` along `f` is an initial object in `LeftExtension f g`. -/
abbrev IsKan (t : LeftExtension f g) 
goal: Type (max (max v w) w)

full_name: CategoryTheory.Bicategory.LeftExtension.IsAbsKan
code: /-- An absolute left Kan extension is a Kan extension that commutes with any 1-morphism. -/
abbrev IsAbsKan (t : LeftExtension f g) 
goal: Type (max (max u v) w)

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.mk
code: /-- To show that a left extension `t` is a Kan extension, we need to show that for every left
extension `s` there is a unique morphism `t ⟶ s`. -/
abbrev mk (desc : ∀ s, t ⟶ s) (w : ∀ s τ, τ = desc s) :
    IsKan t 
goal: t.IsKan

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.desc
code: /-- The family of 2-morphisms out of a left Kan extension. -/
abbrev desc (H : IsKan t) (s : LeftExtension f g) : t.extension ⟶ s.extension 
goal: t.extension ⟶ s.extension

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.fac
code: @[reassoc (attr := simp)]
theorem fac (H : IsKan t) (s : LeftExtension f g) :
    t.unit ≫ f ◁ H.desc s = s.unit 
goal: CategoryTheory.CategoryStruct.comp t.unit (CategoryTheory.Bicategory.whiskerLeft f (H.desc s)) = s.unit

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.hom_ext
code: /-- Two 2-morphisms out of a left Kan extension are equal if their compositions with
each triangle 2-morphism are equal. -/
theorem hom_ext (H : IsKan t) {k : b ⟶ c} {τ τ' : t.extension ⟶ k}
    (w : t.unit ≫ f ◁ τ = t.unit ≫ f ◁ τ') : τ = τ' 
goal: τ = τ'

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.uniqueUpToIso
code: /-- Kan extensions on `g` along `f` are unique up to isomorphism. -/
def uniqueUpToIso (P : IsKan s) (Q : IsKan t) : s ≅ t 
goal: s ≅ t

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.uniqueUpToIso_hom_right
code: @[simp]
theorem uniqueUpToIso_hom_right (P : IsKan s) (Q : IsKan t) :
    (uniqueUpToIso P Q).hom.right = P.desc t 
goal: (P.uniqueUpToIso Q).hom.right = P.desc t

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.uniqueUpToIso_inv_right
code: @[simp]
theorem uniqueUpToIso_inv_right (P : IsKan s) (Q : IsKan t) :
    (uniqueUpToIso P Q).inv.right = Q.desc s 
goal: (P.uniqueUpToIso Q).inv.right = Q.desc s

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.ofIsoKan
code: /-- Transport evidence that a left extension is a Kan extension across an isomorphism
of extensions. -/
def ofIsoKan (P : IsKan s) (i : s ≅ t) : IsKan t 
goal: t.IsKan

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.ofCompId
code: /-- If `t : LeftExtension f (g ≫ 𝟙 c)` is a Kan extension, then `t.ofCompId : LeftExtension f g`
is also a Kan extension. -/
def ofCompId (t : LeftExtension f (g ≫ 𝟙 c)) (P : IsKan t) : IsKan t.ofCompId 
goal: t.ofCompId.IsKan

full_name: CategoryTheory.Bicategory.LeftExtension.IsKan.whiskerOfCommute
code: /-- If `s ≅ t` and `IsKan (s.whisker h)`, then `IsKan (t.whisker h)`. -/
def whiskerOfCommute (s t : LeftExtension f g) (i : s ≅ t) {x : B} (h : c ⟶ x)
    (P : IsKan (s.whisker h)) :
    IsKan (t.whisker h) 
goal: (t.whisker h).IsKan

full_name: CategoryTheory.Bicategory.LeftExtension.IsAbsKan.desc
code: /-- The family of 2-morphisms out of an absolute left Kan extension. -/
abbrev desc (H : IsAbsKan t) {x : B} {h : c ⟶ x} (s : LeftExtension f (g ≫ h)) :
    t.extension ≫ h ⟶ s.extension 
goal: CategoryTheory.CategoryStruct.comp t.extension h ⟶ s.extension

full_name: CategoryTheory.Bicategory.LeftExtension.IsAbsKan.isKan
code: /-- An absolute left Kan extension is a left Kan extension. -/
def isKan (H : IsAbsKan t) : IsKan t 
goal: t.IsKan

full_name: CategoryTheory.Bicategory.LeftExtension.IsAbsKan.ofIsoAbsKan
code: /-- Transport evidence that a left extension is a Kan extension across an isomorphism
of extensions. -/
def ofIsoAbsKan (P : IsAbsKan s) (i : s ≅ t) : IsAbsKan t 
goal: t.IsAbsKan

full_name: CategoryTheory.Bicategory.LeftLift.IsKan
code: /-- A left Kan lift of `g` along `f` is an initial object in `LeftLift f g`. -/
abbrev IsKan (t : LeftLift f g) 
goal: Type (max (max v w) w)

full_name: CategoryTheory.Bicategory.LeftLift.IsAbsKan
code: /-- An absolute left Kan lift is a Kan lift such that every 1-morphism commutes with it. -/
abbrev IsAbsKan (t : LeftLift f g) 
goal: Type (max (max u v) w)

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.mk
code: /-- To show that a left lift `t` is a Kan lift, we need to show that for every left lift `s`
there is a unique morphism `t ⟶ s`. -/
abbrev mk (desc : ∀ s, t ⟶ s) (w : ∀ s τ, τ = desc s) :
    IsKan t 
goal: t.IsKan

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.desc
code: /-- The family of 2-morphisms out of a left Kan lift. -/
abbrev desc (H : IsKan t) (s : LeftLift f g) : t.lift ⟶ s.lift 
goal: t.lift ⟶ s.lift

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.fac
code: @[reassoc (attr := simp)]
theorem fac (H : IsKan t) (s : LeftLift f g) :
    t.unit ≫ H.desc s ▷ f = s.unit 
goal: CategoryTheory.CategoryStruct.comp t.unit (CategoryTheory.Bicategory.whiskerRight (H.desc s) f) = s.unit

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.hom_ext
code: /-- Two 2-morphisms out of a left Kan lift are equal if their compositions with
each triangle 2-morphism are equal. -/
theorem hom_ext (H : IsKan t) {k : c ⟶ b} {τ τ' : t.lift ⟶ k}
    (w : t.unit ≫ τ ▷ f = t.unit ≫ τ' ▷ f) : τ = τ' 
goal: τ = τ'

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.uniqueUpToIso
code: /-- Kan lifts on `g` along `f` are unique up to isomorphism. -/
def uniqueUpToIso (P : IsKan s) (Q : IsKan t) : s ≅ t 
goal: s ≅ t

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.uniqueUpToIso_hom_right
code: @[simp]
theorem uniqueUpToIso_hom_right (P : IsKan s) (Q : IsKan t) :
    (uniqueUpToIso P Q).hom.right = P.desc t 
goal: (P.uniqueUpToIso Q).hom.right = P.desc t

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.uniqueUpToIso_inv_right
code: @[simp]
theorem uniqueUpToIso_inv_right (P : IsKan s) (Q : IsKan t) :
    (uniqueUpToIso P Q).inv.right = Q.desc s 
goal: (P.uniqueUpToIso Q).inv.right = Q.desc s

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.ofIsoKan
code: /-- Transport evidence that a left lift is a Kan lift across an isomorphism of lifts. -/
def ofIsoKan (P : IsKan s) (i : s ≅ t) : IsKan t 
goal: t.IsKan

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.ofIdComp
code: /-- If `t : LeftLift f (𝟙 c ≫ g)` is a Kan lift, then `t.ofIdComp : LeftLift f g` is also
a Kan lift. -/
def ofIdComp (t : LeftLift f (𝟙 c ≫ g)) (P : IsKan t) : IsKan t.ofIdComp 
goal: t.ofIdComp.IsKan

full_name: CategoryTheory.Bicategory.LeftLift.IsKan.whiskerOfCommute
code: /-- If `s ≅ t` and `IsKan (s.whisker h)`, then `IsKan (t.whisker h)`. -/
def whiskerOfCommute (s t : LeftLift f g) (i : s ≅ t) {x : B} (h : x ⟶ c)
    (P : IsKan (s.whisker h)) :
    IsKan (t.whisker h) 
goal: (t.whisker h).IsKan

full_name: CategoryTheory.Bicategory.LeftLift.IsAbsKan.desc
code: /-- The family of 2-morphisms out of an absolute left Kan lift. -/
abbrev desc (H : IsAbsKan t) {x : B} {h : x ⟶ c} (s : LeftLift f (h ≫ g)) :
    h ≫ t.lift ⟶ s.lift 
goal: CategoryTheory.CategoryStruct.comp h t.lift ⟶ s.lift

full_name: CategoryTheory.Bicategory.LeftLift.IsAbsKan.isKan
code: /-- An absolute left Kan lift is a left Kan lift. -/
def isKan (H : IsAbsKan t) : IsKan t 
goal: t.IsKan

full_name: CategoryTheory.Bicategory.LeftLift.IsAbsKan.ofIsoAbsKan
code: /-- Transport evidence that a left lift is a Kan lift across an isomorphism of lifts. -/
def ofIsoAbsKan (P : IsAbsKan s) (i : s ≅ t) : IsAbsKan t 
goal: t.IsAbsKan

full_name: CategoryTheory.Bicategory.RightExtension.IsKan
code: /-- A right Kan extension of `g` along `f` is a terminal object in `RightExtension f g`. -/
abbrev IsKan (t : RightExtension f g) 
goal: Type (max (max v w) w)

full_name: CategoryTheory.Bicategory.RightLift.IsKan
code: /-- A right Kan lift of `g` along `f` is a terminal object in `RightLift f g`. -/
abbrev IsKan (t : RightLift f g) 
goal: Type (max (max v w) w)