Theorem: CategoryTheory.Bicategory.isLeftAdjoint_TFAE
File: Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean

Proof steps:
state_before: B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
⊢ [IsLeftAdjoint f, HasAbsLeftKanExtension f (𝟙 a), ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f].TFAE
state_after: case tfae_1_to_2
B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
⊢ IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)

B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
tfae_1_to_2 : IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)
⊢ [IsLeftAdjoint f, HasAbsLeftKanExtension f (𝟙 a), ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f].TFAE
tactic: tfae_have 1 → 2
state_before: B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
tfae_1_to_2 : IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)
⊢ [IsLeftAdjoint f, HasAbsLeftKanExtension f (𝟙 a), ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f].TFAE
state_after: case tfae_2_to_3
B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
tfae_1_to_2 : IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)
⊢ HasAbsLeftKanExtension f (𝟙 a) → ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f

B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
tfae_1_to_2 : IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)
tfae_2_to_3 : HasAbsLeftKanExtension f (𝟙 a) → ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f
⊢ [IsLeftAdjoint f, HasAbsLeftKanExtension f (𝟙 a), ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f].TFAE
tactic: tfae_have 2 → 3
state_before: B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
tfae_1_to_2 : IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)
tfae_2_to_3 : HasAbsLeftKanExtension f (𝟙 a) → ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f
⊢ [IsLeftAdjoint f, HasAbsLeftKanExtension f (𝟙 a), ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f].TFAE
state_after: case tfae_3_to_1
B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
tfae_1_to_2 : IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)
tfae_2_to_3 : HasAbsLeftKanExtension f (𝟙 a) → ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f
⊢ (∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f) → IsLeftAdjoint f

B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
tfae_1_to_2 : IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)
tfae_2_to_3 : HasAbsLeftKanExtension f (𝟙 a) → ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f
tfae_3_to_1 : (∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f) → IsLeftAdjoint f
⊢ [IsLeftAdjoint f, HasAbsLeftKanExtension f (𝟙 a), ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f].TFAE
tactic: tfae_have 3 → 1
state_before: B : Type u
inst✝ : Bicategory B
a b c : B
f : a ⟶ b
tfae_1_to_2 : IsLeftAdjoint f → HasAbsLeftKanExtension f (𝟙 a)
tfae_2_to_3 : HasAbsLeftKanExtension f (𝟙 a) → ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f
tfae_3_to_1 : (∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f) → IsLeftAdjoint f
⊢ [IsLeftAdjoint f, HasAbsLeftKanExtension f (𝟙 a), ∃ (x : HasLeftKanExtension f (𝟙 a)), Lan.CommuteWith f (𝟙 a) f].TFAE
state_after: no goals
tactic: tfae_finish