ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.Pseudofunctor.mkOfLax'_toPrelaxFunctor
@[simps!]
noncomputable def mkOfLax' (F : LaxFunctor B C) [∀ a, IsIso (F.mapId a)]
    [∀ {a b c} (f : a ⟶ b) (g : b ⟶ c), IsIso (F.mapComp f g)] : Pseudofunctor B C 
Arguments: {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.LaxFunctor B C) [∀ (a : B), CategoryTheory.IsIso (F.mapId a)] [∀ {a b c : B} (f : a ⟶ b) (g : b ⟶ c), CategoryTheory.IsIso (F.mapComp f g)]
Goal: (CategoryTheory.Pseudofunctor.mkOfLax' F).toPrelaxFunctor = F.toPrelaxFunctor
-- CategoryTheory.Pseudofunctor.mkOfLax'_mapComp_inv
@[simps!]
noncomputable def mkOfLax' (F : LaxFunctor B C) [∀ a, IsIso (F.mapId a)]
    [∀ {a b c} (f : a ⟶ b) (g : b ⟶ c), IsIso (F.mapComp f g)] : Pseudofunctor B C 
Arguments: {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.LaxFunctor B C) [∀ (a : B), CategoryTheory.IsIso (F.mapId a)] [∀ {a b c : B} (f : a ⟶ b) (g : b ⟶ c), CategoryTheory.IsIso (F.mapComp f g)]
Goal: ∀ {a b c : B} (f : a ⟶ b) (g : b ⟶ c), ((CategoryTheory.Pseudofunctor.mkOfLax' F).mapComp f g).inv = F.mapComp f g
-- CategoryTheory.Pseudofunctor.mkOfLax'_mapComp_hom
@[simps!]
noncomputable def mkOfLax' (F : LaxFunctor B C) [∀ a, IsIso (F.mapId a)]
    [∀ {a b c} (f : a ⟶ b) (g : b ⟶ c), IsIso (F.mapComp f g)] : Pseudofunctor B C 
Arguments: {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.LaxFunctor B C) [∀ (a : B), CategoryTheory.IsIso (F.mapId a)] [∀ {a b c : B} (f : a ⟶ b) (g : b ⟶ c), CategoryTheory.IsIso (F.mapComp f g)]
Goal: ∀ {a b c : B} (f : a ⟶ b) (g : b ⟶ c),
  ((CategoryTheory.Pseudofunctor.mkOfLax' F).mapComp f g).hom = CategoryTheory.inv (F.mapComp f g)
-- CategoryTheory.Pseudofunctor.mkOfLax'_mapId_hom
@[simps!]
noncomputable def mkOfLax' (F : LaxFunctor B C) [∀ a, IsIso (F.mapId a)]
    [∀ {a b c} (f : a ⟶ b) (g : b ⟶ c), IsIso (F.mapComp f g)] : Pseudofunctor B C 
Arguments: {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.LaxFunctor B C) [∀ (a : B), CategoryTheory.IsIso (F.mapId a)] [∀ {a b c : B} (f : a ⟶ b) (g : b ⟶ c), CategoryTheory.IsIso (F.mapComp f g)] (a : B)
Goal: ((CategoryTheory.Pseudofunctor.mkOfLax' F).mapId a).hom = CategoryTheory.inv (F.mapId a)
-- CategoryTheory.Functor.lanAdjunction_unit
@[simp]
lemma lanAdjunction_unit : (L.lanAdjunction H).unit = L.lanUnit 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) (H : Type u_3) [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F]
Goal: (L.lanAdjunction H).unit = L.lanUnit
-- CategoryTheory.Functor.lanAdjunction_counit_app
lemma lanAdjunction_counit_app (G : D ⥤ H) :
    (L.lanAdjunction H).counit.app G =
      descOfIsLeftKanExtension (L.lan.obj (L ⋙ G)) (L.lanUnit.app (L ⋙ G)) G (𝟙 (L ⋙ G)) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (G : CategoryTheory.Functor D H)
Goal: (L.lanAdjunction H).counit.app G =
  (L.lan.obj (L.comp G)).descOfIsLeftKanExtension (L.lanUnit.app (L.comp G)) G
    (CategoryTheory.CategoryStruct.id (L.comp G))
-- CategoryTheory.Functor.lanUnit_app_whiskerLeft_lanAdjunction_counit_app
@[reassoc (attr := simp)]
lemma lanUnit_app_whiskerLeft_lanAdjunction_counit_app (G : D ⥤ H) :
    L.lanUnit.app (L ⋙ G) ≫ whiskerLeft L ((L.lanAdjunction H).counit.app G) = 𝟙 (L ⋙ G) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (G : CategoryTheory.Functor D H)
Goal: CategoryTheory.CategoryStruct.comp (L.lanUnit.app (L.comp G))
    (CategoryTheory.whiskerLeft L ((L.lanAdjunction H).counit.app G)) =
  CategoryTheory.CategoryStruct.id (L.comp G)
-- CategoryTheory.Functor.lanUnit_app_app_lanAdjunction_counit_app_app
@[reassoc (attr := simp)]
lemma lanUnit_app_app_lanAdjunction_counit_app_app (G : D ⥤ H) (X : C) :
    (L.lanUnit.app (L ⋙ G)).app X ≫ ((L.lanAdjunction H).counit.app G).app (L.obj X) = 𝟙 _ 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (G : CategoryTheory.Functor D H) (X : C)
Goal: CategoryTheory.CategoryStruct.comp ((L.lanUnit.app (L.comp G)).app X)
    (((L.lanAdjunction H).counit.app G).app (L.obj X)) =
  CategoryTheory.CategoryStruct.id (((CategoryTheory.Functor.id (CategoryTheory.Functor C H)).obj (L.comp G)).obj X)
-- CategoryTheory.Functor.isIso_lanAdjunction_counit_app_iff
lemma isIso_lanAdjunction_counit_app_iff (G : D ⥤ H) :
    IsIso ((L.lanAdjunction H).counit.app G) ↔ G.IsLeftKanExtension (𝟙 (L ⋙ G)) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasLeftKanExtension F] (G : CategoryTheory.Functor D H)
Goal: CategoryTheory.IsIso ((L.lanAdjunction H).counit.app G) ↔
  G.IsLeftKanExtension (CategoryTheory.CategoryStruct.id (L.comp G))
-- CategoryTheory.Functor.ranAdjunction_counit
@[simp]
lemma ranAdjunction_counit : (L.ranAdjunction H).counit = L.ranCounit 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_6, u_2} D] (L : CategoryTheory.Functor C D) (H : Type u_3) [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F]
Goal: (L.ranAdjunction H).counit = L.ranCounit
-- CategoryTheory.Functor.ranAdjunction_unit_app
lemma ranAdjunction_unit_app (G : D ⥤ H) :
    (L.ranAdjunction H).unit.app G =
      liftOfIsRightKanExtension (L.ran.obj (L ⋙ G)) (L.ranCounit.app (L ⋙ G)) G (𝟙 (L ⋙ G)) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (G : CategoryTheory.Functor D H)
Goal: (L.ranAdjunction H).unit.app G =
  (L.ran.obj (L.comp G)).liftOfIsRightKanExtension (L.ranCounit.app (L.comp G)) G
    (CategoryTheory.CategoryStruct.id (L.comp G))
-- CategoryTheory.Functor.ranCounit_app_whiskerLeft_ranAdjunction_unit_app
@[reassoc (attr := simp)]
lemma ranCounit_app_whiskerLeft_ranAdjunction_unit_app (G : D ⥤ H) :
    whiskerLeft L ((L.ranAdjunction H).unit.app G) ≫ L.ranCounit.app (L ⋙ G) = 𝟙 (L ⋙ G) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (G : CategoryTheory.Functor D H)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.whiskerLeft L ((L.ranAdjunction H).unit.app G))
    (L.ranCounit.app (L.comp G)) =
  CategoryTheory.CategoryStruct.id (L.comp G)
-- CategoryTheory.Functor.ranCounit_app_app_ranAdjunction_unit_app_app
@[reassoc (attr := simp)]
lemma ranCounit_app_app_ranAdjunction_unit_app_app (G : D ⥤ H) (X : C) :
    ((L.ranAdjunction H).unit.app G).app (L.obj X) ≫ (L.ranCounit.app (L ⋙ G)).app X = 𝟙 _ 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (G : CategoryTheory.Functor D H) (X : C)
Goal: CategoryTheory.CategoryStruct.comp (((L.ranAdjunction H).unit.app G).app (L.obj X))
    ((L.ranCounit.app (L.comp G)).app X) =
  CategoryTheory.CategoryStruct.id (((CategoryTheory.Functor.id (CategoryTheory.Functor D H)).obj G).obj (L.obj X))
-- CategoryTheory.Functor.isIso_ranAdjunction_unit_app_iff
lemma isIso_ranAdjunction_unit_app_iff (G : D ⥤ H) :
    IsIso ((L.ranAdjunction H).unit.app G) ↔ G.IsRightKanExtension (𝟙 (L ⋙ G)) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_6, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (L : CategoryTheory.Functor C D) {H : Type u_3} [CategoryTheory.Category.{u_5, u_3} H] [∀ (F : CategoryTheory.Functor C H), L.HasRightKanExtension F] (G : CategoryTheory.Functor D H)
Goal: CategoryTheory.IsIso ((L.ranAdjunction H).unit.app G) ↔
  G.IsRightKanExtension (CategoryTheory.CategoryStruct.id (L.comp G))
-- CategoryTheory.IsPreconnected.iso_constant
class IsPreconnected (J : Type u₁) [Category.{v₁} J] : Prop where
  iso_constant :
    ∀ {α : Type u₁} (F : J ⥤ Discrete α) (j : J), Nonempty (F ≅ (Functor.const J).obj (F.obj j))
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [self : CategoryTheory.IsPreconnected J] {α : Type u₁} (F : CategoryTheory.Functor J (CategoryTheory.Discrete α)) (j : J)
Goal: Nonempty (F ≅ (CategoryTheory.Functor.const J).obj (F.obj j))
-- CategoryTheory.IsConnected.is_nonempty
class IsConnected (J : Type u₁) [Category.{v₁} J] extends IsPreconnected J : Prop where
  [is_nonempty : Nonempty J]
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [self : CategoryTheory.IsConnected J]
Goal: Nonempty J
-- CategoryTheory.any_functor_const_on_obj
theorem any_functor_const_on_obj [IsPreconnected J] {α : Type u₂} (F : J ⥤ Discrete α) (j j' : J) :
    F.obj j = F.obj j' 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsPreconnected J] {α : Type u₂} (F : CategoryTheory.Functor J (CategoryTheory.Discrete α)) (j j' : J)
Goal: F.obj j = F.obj j'
-- CategoryTheory.IsPreconnected.of_any_functor_const_on_obj
theorem IsPreconnected.of_any_functor_const_on_obj
    (h : ∀ {α : Type u₁} (F : J ⥤ Discrete α), ∀ j j' : J, F.obj j = F.obj j') :
    IsPreconnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] (h : ∀ {α : Type u₁} (F : CategoryTheory.Functor J (CategoryTheory.Discrete α)) (j j' : J), F.obj j = F.obj j')
Goal: CategoryTheory.IsPreconnected J
-- CategoryTheory.IsConnected.of_any_functor_const_on_obj
theorem IsConnected.of_any_functor_const_on_obj [Nonempty J]
    (h : ∀ {α : Type u₁} (F : J ⥤ Discrete α), ∀ j j' : J, F.obj j = F.obj j') : IsConnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [Nonempty J] (h : ∀ {α : Type u₁} (F : CategoryTheory.Functor J (CategoryTheory.Discrete α)) (j j' : J), F.obj j = F.obj j')
Goal: CategoryTheory.IsConnected J
-- CategoryTheory.constant_of_preserves_morphisms
theorem constant_of_preserves_morphisms [IsPreconnected J] {α : Type u₂} (F : J → α)
    (h : ∀ (j₁ j₂ : J) (_ : j₁ ⟶ j₂), F j₁ = F j₂) (j j' : J) : F j = F j' 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsPreconnected J] {α : Type u₂} (F : J → α) (h : ∀ (j₁ j₂ : J), (j₁ ⟶ j₂) → F j₁ = F j₂) (j j' : J)
Goal: F j = F j'
-- CategoryTheory.IsPreconnected.of_constant_of_preserves_morphisms
theorem IsPreconnected.of_constant_of_preserves_morphisms
    (h : ∀ {α : Type u₁} (F : J → α),
      (∀ {j₁ j₂ : J} (_ : j₁ ⟶ j₂), F j₁ = F j₂) → ∀ j j' : J, F j = F j') :
    IsPreconnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] (h : ∀ {α : Type u₁} (F : J → α), (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂) → ∀ (j j' : J), F j = F j')
Goal: CategoryTheory.IsPreconnected J
-- CategoryTheory.IsConnected.of_constant_of_preserves_morphisms
theorem IsConnected.of_constant_of_preserves_morphisms [Nonempty J]
    (h : ∀ {α : Type u₁} (F : J → α),
      (∀ {j₁ j₂ : J} (_ : j₁ ⟶ j₂), F j₁ = F j₂) → ∀ j j' : J, F j = F j') :
    IsConnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [Nonempty J] (h : ∀ {α : Type u₁} (F : J → α), (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂) → ∀ (j j' : J), F j = F j')
Goal: CategoryTheory.IsConnected J
-- CategoryTheory.induct_on_objects
theorem induct_on_objects [IsPreconnected J] (p : Set J) {j₀ : J} (h0 : j₀ ∈ p)
    (h1 : ∀ {j₁ j₂ : J} (_ : j₁ ⟶ j₂), j₁ ∈ p ↔ j₂ ∈ p) (j : J) : j ∈ p 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsPreconnected J] (p : Set J) {j₀ : J} (h0 : j₀ ∈ p) (h1 : ∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → (j₁ ∈ p ↔ j₂ ∈ p)) (j : J)
Goal: j ∈ p
-- CategoryTheory.IsConnected.of_induct
theorem IsConnected.of_induct {j₀ : J}
    (h : ∀ p : Set J, j₀ ∈ p → (∀ {j₁ j₂ : J} (_ : j₁ ⟶ j₂), j₁ ∈ p ↔ j₂ ∈ p) → ∀ j : J, j ∈ p) :
    IsConnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₀ : J} (h : ∀ (p : Set J), j₀ ∈ p → (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → (j₁ ∈ p ↔ j₂ ∈ p)) → ∀ (j : J), j ∈ p)
Goal: CategoryTheory.IsConnected J
-- CategoryTheory.isPreconnected_induction
theorem isPreconnected_induction [IsPreconnected J] (Z : J → Sort*)
    (h₁ : ∀ {j₁ j₂ : J} (_ : j₁ ⟶ j₂), Z j₁ → Z j₂) (h₂ : ∀ {j₁ j₂ : J} (_ : j₁ ⟶ j₂), Z j₂ → Z j₁)
    {j₀ : J} (x : Z j₀) (j : J) : Nonempty (Z j) 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsPreconnected J] (Z : J → Sort u_1) (h₁ : {j₁ j₂ : J} → (j₁ ⟶ j₂) → Z j₁ → Z j₂) (h₂ : {j₁ j₂ : J} → (j₁ ⟶ j₂) → Z j₂ → Z j₁) {j₀ : J} (x : Z j₀) (j : J)
Goal: Nonempty (Z j)
-- CategoryTheory.isPreconnected_of_equivalent
theorem isPreconnected_of_equivalent {K : Type u₂} [Category.{v₂} K] [IsPreconnected J]
    (e : J ≌ K) : IsPreconnected K 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] [CategoryTheory.IsPreconnected J] (e : J ≌ K)
Goal: CategoryTheory.IsPreconnected K
-- CategoryTheory.isPreconnected_iff_of_equivalence
lemma isPreconnected_iff_of_equivalence {K : Type u₂} [Category.{v₂} K] (e : J ≌ K) :
    IsPreconnected J ↔ IsPreconnected K 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] (e : J ≌ K)
Goal: CategoryTheory.IsPreconnected J ↔ CategoryTheory.IsPreconnected K
-- CategoryTheory.isConnected_of_equivalent
theorem isConnected_of_equivalent {K : Type u₂} [Category.{v₂} K] (e : J ≌ K) [IsConnected J] :
    IsConnected K 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] (e : J ≌ K) [CategoryTheory.IsConnected J]
Goal: CategoryTheory.IsConnected K
-- CategoryTheory.isConnected_iff_of_equivalence
lemma isConnected_iff_of_equivalence {K : Type u₂} [Category.{v₂} K] (e : J ≌ K) :
    IsConnected J ↔ IsConnected K 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] (e : J ≌ K)
Goal: CategoryTheory.IsConnected J ↔ CategoryTheory.IsConnected K
-- CategoryTheory.isPreconnected_of_isPreconnected_op
theorem isPreconnected_of_isPreconnected_op [IsPreconnected Jᵒᵖ] : IsPreconnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsPreconnected Jᵒᵖ]
Goal: CategoryTheory.IsPreconnected J
-- CategoryTheory.isConnected_of_isConnected_op
theorem isConnected_of_isConnected_op [IsConnected Jᵒᵖ] : IsConnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsConnected Jᵒᵖ]
Goal: CategoryTheory.IsConnected J
-- CategoryTheory.Zag.refl
theorem Zag.refl (X : J) : Zag X X 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] (X : J)
Goal: CategoryTheory.Zag X X
-- CategoryTheory.zag_symmetric
theorem zag_symmetric : Symmetric (@Zag J _) 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J]
Goal: Symmetric CategoryTheory.Zag
-- CategoryTheory.Zag.symm
theorem Zag.symm {j₁ j₂ : J} (h : Zag j₁ j₂) : Zag j₂ j₁ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ : J} (h : CategoryTheory.Zag j₁ j₂)
Goal: CategoryTheory.Zag j₂ j₁
-- CategoryTheory.Zag.of_hom
theorem Zag.of_hom {j₁ j₂ : J} (f : j₁ ⟶ j₂) : Zag j₁ j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ : J} (f : j₁ ⟶ j₂)
Goal: CategoryTheory.Zag j₁ j₂
-- CategoryTheory.Zag.of_inv
theorem Zag.of_inv {j₁ j₂ : J} (f : j₂ ⟶ j₁) : Zag j₁ j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ : J} (f : j₂ ⟶ j₁)
Goal: CategoryTheory.Zag j₁ j₂
-- CategoryTheory.zigzag_symmetric
theorem zigzag_symmetric : Symmetric (@Zigzag J _) 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J]
Goal: Symmetric CategoryTheory.Zigzag
-- CategoryTheory.zigzag_equivalence
theorem zigzag_equivalence : _root_.Equivalence (@Zigzag J _) 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J]
Goal: Equivalence CategoryTheory.Zigzag
-- CategoryTheory.Zigzag.refl
theorem Zigzag.refl (X : J) : Zigzag X X 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] (X : J)
Goal: CategoryTheory.Zigzag X X
-- CategoryTheory.Zigzag.symm
theorem Zigzag.symm {j₁ j₂ : J} (h : Zigzag j₁ j₂) : Zigzag j₂ j₁ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ : J} (h : CategoryTheory.Zigzag j₁ j₂)
Goal: CategoryTheory.Zigzag j₂ j₁
-- CategoryTheory.Zigzag.trans
theorem Zigzag.trans {j₁ j₂ j₃ : J} (h₁ : Zigzag j₁ j₂) (h₂ : Zigzag j₂ j₃) : Zigzag j₁ j₃ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ j₃ : J} (h₁ : CategoryTheory.Zigzag j₁ j₂) (h₂ : CategoryTheory.Zigzag j₂ j₃)
Goal: CategoryTheory.Zigzag j₁ j₃
-- CategoryTheory.Zigzag.of_zag
theorem Zigzag.of_zag {j₁ j₂ : J} (h : Zag j₁ j₂) : Zigzag j₁ j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ : J} (h : CategoryTheory.Zag j₁ j₂)
Goal: CategoryTheory.Zigzag j₁ j₂
-- CategoryTheory.Zigzag.of_hom
theorem Zigzag.of_hom {j₁ j₂ : J} (f : j₁ ⟶ j₂) : Zigzag j₁ j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ : J} (f : j₁ ⟶ j₂)
Goal: CategoryTheory.Zigzag j₁ j₂
-- CategoryTheory.Zigzag.of_inv
theorem Zigzag.of_inv {j₁ j₂ : J} (f : j₂ ⟶ j₁) : Zigzag j₁ j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ : J} (f : j₂ ⟶ j₁)
Goal: CategoryTheory.Zigzag j₁ j₂
-- CategoryTheory.Zigzag.of_zag_trans
theorem Zigzag.of_zag_trans {j₁ j₂ j₃ : J} (h₁ : Zag j₁ j₂) (h₂ : Zag j₂ j₃) : Zigzag j₁ j₃ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ j₃ : J} (h₁ : CategoryTheory.Zag j₁ j₂) (h₂ : CategoryTheory.Zag j₂ j₃)
Goal: CategoryTheory.Zigzag j₁ j₃
-- CategoryTheory.Zigzag.of_hom_hom
theorem Zigzag.of_hom_hom {j₁ j₂ j₃ : J} (f₁₂ : j₁ ⟶ j₂) (f₂₃ : j₂ ⟶ j₃) : Zigzag j₁ j₃ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ j₃ : J} (f₁₂ : j₁ ⟶ j₂) (f₂₃ : j₂ ⟶ j₃)
Goal: CategoryTheory.Zigzag j₁ j₃
-- CategoryTheory.Zigzag.of_hom_inv
theorem Zigzag.of_hom_inv {j₁ j₂ j₃ : J} (f₁₂ : j₁ ⟶ j₂) (f₃₂ : j₃ ⟶ j₂) : Zigzag j₁ j₃ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ j₃ : J} (f₁₂ : j₁ ⟶ j₂) (f₃₂ : j₃ ⟶ j₂)
Goal: CategoryTheory.Zigzag j₁ j₃
-- CategoryTheory.Zigzag.of_inv_hom
theorem Zigzag.of_inv_hom {j₁ j₂ j₃ : J} (f₂₁ : j₂ ⟶ j₁) (f₂₃ : j₂ ⟶ j₃) : Zigzag j₁ j₃ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ j₃ : J} (f₂₁ : j₂ ⟶ j₁) (f₂₃ : j₂ ⟶ j₃)
Goal: CategoryTheory.Zigzag j₁ j₃
-- CategoryTheory.Zigzag.of_inv_inv
theorem Zigzag.of_inv_inv {j₁ j₂ j₃ : J} (f₂₁ : j₂ ⟶ j₁) (f₃₂ : j₃ ⟶ j₂) : Zigzag j₁ j₃ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {j₁ j₂ j₃ : J} (f₂₁ : j₂ ⟶ j₁) (f₃₂ : j₃ ⟶ j₂)
Goal: CategoryTheory.Zigzag j₁ j₃
-- CategoryTheory.zigzag_obj_of_zigzag
theorem zigzag_obj_of_zigzag (F : J ⥤ K) {j₁ j₂ : J} (h : Zigzag j₁ j₂) :
    Zigzag (F.obj j₁) (F.obj j₂) 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] (F : CategoryTheory.Functor J K) {j₁ j₂ : J} (h : CategoryTheory.Zigzag j₁ j₂)
Goal: CategoryTheory.Zigzag (F.obj j₁) (F.obj j₂)
-- CategoryTheory.zag_of_zag_obj
theorem zag_of_zag_obj (F : J ⥤ K) [F.Full] {j₁ j₂ : J} (h : Zag (F.obj j₁) (F.obj j₂)) :
    Zag j₁ j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] (F : CategoryTheory.Functor J K) [F.Full] {j₁ j₂ : J} (h : CategoryTheory.Zag (F.obj j₁) (F.obj j₂))
Goal: CategoryTheory.Zag j₁ j₂
-- CategoryTheory.equiv_relation
theorem equiv_relation [IsPreconnected J] (r : J → J → Prop) (hr : _root_.Equivalence r)
    (h : ∀ {j₁ j₂ : J} (_ : j₁ ⟶ j₂), r j₁ j₂) : ∀ j₁ j₂ : J, r j₁ j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsPreconnected J] (r : J → J → Prop) (hr : Equivalence r) (h : ∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → r j₁ j₂) (j₁ j₂ : J)
Goal: r j₁ j₂
-- CategoryTheory.isPreconnected_zigzag
theorem isPreconnected_zigzag [IsPreconnected J] (j₁ j₂ : J) : Zigzag j₁ j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsPreconnected J] (j₁ j₂ : J)
Goal: CategoryTheory.Zigzag j₁ j₂
-- CategoryTheory.zigzag_isPreconnected
theorem zigzag_isPreconnected (h : ∀ j₁ j₂ : J, Zigzag j₁ j₂) : IsPreconnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] (h : ∀ (j₁ j₂ : J), CategoryTheory.Zigzag j₁ j₂)
Goal: CategoryTheory.IsPreconnected J
-- CategoryTheory.zigzag_isConnected
theorem zigzag_isConnected [Nonempty J] (h : ∀ j₁ j₂ : J, Zigzag j₁ j₂) : IsConnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [Nonempty J] (h : ∀ (j₁ j₂ : J), CategoryTheory.Zigzag j₁ j₂)
Goal: CategoryTheory.IsConnected J
-- CategoryTheory.exists_zigzag'
theorem exists_zigzag' [IsConnected J] (j₁ j₂ : J) :
    ∃ l, List.Chain Zag j₁ l ∧ List.getLast (j₁ :: l) (List.cons_ne_nil _ _) = j₂ 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [CategoryTheory.IsConnected J] (j₁ j₂ : J)
Goal: ∃ l, List.Chain CategoryTheory.Zag j₁ l ∧ (j₁ :: l).getLast ⋯ = j₂
-- CategoryTheory.isPreconnected_of_zigzag
theorem isPreconnected_of_zigzag (h : ∀ j₁ j₂ : J, ∃ l,
    List.Chain Zag j₁ l ∧ List.getLast (j₁ :: l) (List.cons_ne_nil _ _) = j₂) :
    IsPreconnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] (h : ∀ (j₁ j₂ : J), ∃ l, List.Chain CategoryTheory.Zag j₁ l ∧ (j₁ :: l).getLast ⋯ = j₂)
Goal: CategoryTheory.IsPreconnected J
-- CategoryTheory.isConnected_of_zigzag
theorem isConnected_of_zigzag [Nonempty J] (h : ∀ j₁ j₂ : J, ∃ l,
    List.Chain Zag j₁ l ∧ List.getLast (j₁ :: l) (List.cons_ne_nil _ _) = j₂) :
    IsConnected J 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] [Nonempty J] (h : ∀ (j₁ j₂ : J), ∃ l, List.Chain CategoryTheory.Zag j₁ l ∧ (j₁ :: l).getLast ⋯ = j₂)
Goal: CategoryTheory.IsConnected J
-- CategoryTheory.nat_trans_from_is_connected
theorem nat_trans_from_is_connected [IsPreconnected J] {X Y : C}
    (α : (Functor.const J).obj X ⟶ (Functor.const J).obj Y) :
    ∀ j j' : J, α.app j = (α.app j' : X ⟶ Y) 
Arguments: {J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {C : Type u₂} [CategoryTheory.Category.{u₁, u₂} C] [CategoryTheory.IsPreconnected J] {X Y : C} (α : (CategoryTheory.Functor.const J).obj X ⟶ (CategoryTheory.Functor.const J).obj Y) (j j' : J)
Goal: α.app j = α.app j'
-- CategoryTheory.nonempty_hom_of_preconnected_groupoid
theorem nonempty_hom_of_preconnected_groupoid {G} [Groupoid G] [IsPreconnected G] :
    ∀ x y : G, Nonempty (x ⟶ y) 
Arguments: {G : Type u_1} [CategoryTheory.Groupoid G] [CategoryTheory.IsPreconnected G] (x y : G)
Goal: Nonempty (x ⟶ y)
-- CategoryTheory.Bicategory.isLeftAdjoint_TFAE
theorem isLeftAdjoint_TFAE (f : a ⟶ b) :
    List.TFAE [
      IsLeftAdjoint f,
      HasAbsLeftKanExtension f (𝟙 a),
      ∃ _ : HasLeftKanExtension f (𝟙 a), Lan.CommuteWith f (𝟙 a) f] 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b : B} (f : a ⟶ b)
Goal: [CategoryTheory.Bicategory.IsLeftAdjoint f,
    CategoryTheory.Bicategory.HasAbsLeftKanExtension f (CategoryTheory.CategoryStruct.id a),
    ∃ (x : CategoryTheory.Bicategory.HasLeftKanExtension f (CategoryTheory.CategoryStruct.id a)),
      CategoryTheory.Bicategory.Lan.CommuteWith f (CategoryTheory.CategoryStruct.id a) f].TFAE