ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.MonoidalFunctor.diag_toLaxMonoidalFunctor_toFunctor
@[simps]
def diag : MonoidalFunctor C (C × C) 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: (CategoryTheory.MonoidalFunctor.diag C).toFunctor = CategoryTheory.Functor.diag C
-- CategoryTheory.MonoidalFunctor.diag_toLaxMonoidalFunctor_ε
@[simps]
def diag : MonoidalFunctor C (C × C) 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C]
Goal: (CategoryTheory.MonoidalFunctor.diag C).ε = 𝟙 (𝟙_ (C × C))
-- CategoryTheory.MonoidalFunctor.diag_toLaxMonoidalFunctor_μ
@[simps]
def diag : MonoidalFunctor C (C × C) 
Arguments: (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X Y : C)
Goal: (CategoryTheory.MonoidalFunctor.diag C).μ X Y =
  𝟙
    (CategoryTheory.MonoidalCategory.tensorObj ((CategoryTheory.Functor.diag C).obj X)
      ((CategoryTheory.Functor.diag C).obj Y))
-- CategoryTheory.LaxMonoidalFunctor.prod'_toFunctor
@[simp]
theorem prod'_toFunctor : (F.prod' G).toFunctor = F.toFunctor.prod' G.toFunctor 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] [CategoryTheory.MonoidalCategory E] (F : CategoryTheory.LaxMonoidalFunctor C D) (G : CategoryTheory.LaxMonoidalFunctor C E)
Goal: (F.prod' G).toFunctor = F.prod' G.toFunctor
-- CategoryTheory.LaxMonoidalFunctor.prod'_ε
@[simp]
theorem prod'_ε : (F.prod' G).ε = (F.ε, G.ε) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] [CategoryTheory.MonoidalCategory E] (F : CategoryTheory.LaxMonoidalFunctor C D) (G : CategoryTheory.LaxMonoidalFunctor C E)
Goal: (F.prod' G).ε = (F.ε, G.ε)
-- CategoryTheory.LaxMonoidalFunctor.prod'_μ
@[simp]
theorem prod'_μ (X Y : C) : (F.prod' G).μ X Y = (F.μ X Y, G.μ X Y) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] [CategoryTheory.MonoidalCategory E] (F : CategoryTheory.LaxMonoidalFunctor C D) (G : CategoryTheory.LaxMonoidalFunctor C E) (X Y : C)
Goal: (F.prod' G).μ X Y = (F.μ X Y, G.μ X Y)
-- CategoryTheory.MonoidalFunctor.comp_toLaxMonoidalFunctor
@[simps]
def comp : MonoidalFunctor.{v₁, v₃} C E 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] [CategoryTheory.MonoidalCategory E] (F : CategoryTheory.MonoidalFunctor C D) (G : CategoryTheory.MonoidalFunctor D E)
Goal: (F ⊗⋙ G).toLaxMonoidalFunctor = F.toLaxMonoidalFunctor ⊗⋙ G.toLaxMonoidalFunctor
-- CategoryTheory.MonoidalFunctor.prod_toLaxMonoidalFunctor
@[simps]
def prod : MonoidalFunctor (B × D) (C × E) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] [CategoryTheory.MonoidalCategory E] {B : Type u₀} [CategoryTheory.Category.{v₀, u₀} B] [CategoryTheory.MonoidalCategory B] (F : CategoryTheory.MonoidalFunctor B C) (G : CategoryTheory.MonoidalFunctor D E)
Goal: (F.prod G).toLaxMonoidalFunctor = F.prod G.toLaxMonoidalFunctor
-- CategoryTheory.MonoidalFunctor.prod'_toLaxMonoidalFunctor
@[simp]
theorem prod'_toLaxMonoidalFunctor :
    (F.prod' G).toLaxMonoidalFunctor = F.toLaxMonoidalFunctor.prod' G.toLaxMonoidalFunctor 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] [CategoryTheory.MonoidalCategory E] (F : CategoryTheory.MonoidalFunctor C D) (G : CategoryTheory.MonoidalFunctor C E)
Goal: (F.prod' G).toLaxMonoidalFunctor = F.prod' G.toLaxMonoidalFunctor
-- CategoryTheory.monoidalInverse_toLaxMonoidalFunctor
@[simps]
noncomputable def monoidalInverse [F.IsEquivalence] :
    MonoidalFunctor D C 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (F : CategoryTheory.MonoidalFunctor C D) {G : D ⥤ C} (h : F.toFunctor ⊣ G) [F.IsEquivalence]
Goal: (CategoryTheory.monoidalInverse F h).toLaxMonoidalFunctor = CategoryTheory.monoidalAdjoint F h
-- nonempty_sections_of_finite_cofiltered_system.init
theorem nonempty_sections_of_finite_cofiltered_system.init {J : Type u} [SmallCategory J]
    [IsCofilteredOrEmpty J] (F : J ⥤ Type u) [hf : ∀ j, Finite (F.obj j)]
    [hne : ∀ j, Nonempty (F.obj j)] : F.sections.Nonempty 
Arguments: {J : Type u} [CategoryTheory.SmallCategory J] [CategoryTheory.IsCofilteredOrEmpty J] (F : J ⥤ Type u) [hf : ∀ (j : J), Finite (F.obj j)] [hne : ∀ (j : J), Nonempty (F.obj j)]
Goal: F.sections.Nonempty
-- nonempty_sections_of_finite_cofiltered_system
theorem nonempty_sections_of_finite_cofiltered_system {J : Type u} [Category.{w} J]
    [IsCofilteredOrEmpty J] (F : J ⥤ Type v) [∀ j : J, Finite (F.obj j)]
    [∀ j : J, Nonempty (F.obj j)] : F.sections.Nonempty 
Arguments: {J : Type u} [CategoryTheory.Category.{w, u} J] [CategoryTheory.IsCofilteredOrEmpty J] (F : J ⥤ Type v) [∀ (j : J), Finite (F.obj j)] [∀ (j : J), Nonempty (F.obj j)]
Goal: F.sections.Nonempty
-- nonempty_sections_of_finite_inverse_system
theorem nonempty_sections_of_finite_inverse_system {J : Type u} [Preorder J] [IsDirected J (· ≤ ·)]
    (F : Jᵒᵖ ⥤ Type v) [∀ j : Jᵒᵖ, Finite (F.obj j)] [∀ j : Jᵒᵖ, Nonempty (F.obj j)] :
    F.sections.Nonempty 
Arguments: {J : Type u} [Preorder J] [IsDirected J fun x x_1 => x ≤ x_1] (F : Jᵒᵖ ⥤ Type v) [∀ (j : Jᵒᵖ), Finite (F.obj j)] [∀ (j : Jᵒᵖ), Nonempty (F.obj j)]
Goal: F.sections.Nonempty
-- CategoryTheory.Functor.mem_eventualRange_iff
theorem mem_eventualRange_iff {x : F.obj j} :
    x ∈ F.eventualRange j ↔ ∀ ⦃i⦄ (f : i ⟶ j), x ∈ range (F.map f) 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {j : J} {x : F.obj j}
Goal: x ∈ F.eventualRange j ↔ ∀ ⦃i : J⦄ (f : i ⟶ j), x ∈ Set.range (F.map f)
-- CategoryTheory.Functor.isMittagLeffler_iff_eventualRange
theorem isMittagLeffler_iff_eventualRange :
    F.IsMittagLeffler ↔ ∀ j : J, ∃ (i : _) (f : i ⟶ j), F.eventualRange j = range (F.map f) 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v)
Goal: F.IsMittagLeffler ↔ ∀ (j : J), ∃ i f, F.eventualRange j = Set.range (F.map f)
-- CategoryTheory.Functor.IsMittagLeffler.subset_image_eventualRange
theorem IsMittagLeffler.subset_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
    F.eventualRange i ⊆ F.map f '' F.eventualRange j 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i j : J} (h : F.IsMittagLeffler) (f : j ⟶ i)
Goal: F.eventualRange i ⊆ F.map f '' F.eventualRange j
-- CategoryTheory.Functor.eventualRange_eq_range_precomp
theorem eventualRange_eq_range_precomp (f : i ⟶ j) (g : j ⟶ k)
    (h : F.eventualRange k = range (F.map g)) : F.eventualRange k = range (F.map <| f ≫ g) 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i j k : J} (f : i ⟶ j) (g : j ⟶ k) (h : F.eventualRange k = Set.range (F.map g))
Goal: F.eventualRange k = Set.range (F.map (f ≫ g))
-- CategoryTheory.Functor.isMittagLeffler_of_surjective
theorem isMittagLeffler_of_surjective (h : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) :
    F.IsMittagLeffler 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) (h : ∀ ⦃i j : J⦄ (f : i ⟶ j), Function.Surjective (F.map f))
Goal: F.IsMittagLeffler
-- CategoryTheory.Functor.toPreimages_obj
@[simps]
def toPreimages : J ⥤ Type v 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i : J} (s : Set (F.obj i)) (j : J)
Goal: (F.toPreimages s).obj j = ↑(⋂ f, F.map f ⁻¹' s)
-- CategoryTheory.Functor.toPreimages_map
@[simps]
def toPreimages : J ⥤ Type v 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i : J} (s : Set (F.obj i))
Goal: ∀ {X Y : J} (g : X ⟶ Y) (a : ↑(⋂ f, F.map f ⁻¹' s)),
  (F.toPreimages s).map g a = Set.MapsTo.restrict (F.map g) (⋂ f, F.map f ⁻¹' s) (⋂ f, F.map f ⁻¹' s) ⋯ a
-- CategoryTheory.Functor.eventualRange_mapsTo
theorem eventualRange_mapsTo (f : j ⟶ i) :
    (F.eventualRange j).MapsTo (F.map f) (F.eventualRange i) 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i j : J} [CategoryTheory.IsCofilteredOrEmpty J] (f : j ⟶ i)
Goal: Set.MapsTo (F.map f) (F.eventualRange j) (F.eventualRange i)
-- CategoryTheory.Functor.IsMittagLeffler.eq_image_eventualRange
theorem IsMittagLeffler.eq_image_eventualRange (h : F.IsMittagLeffler) (f : j ⟶ i) :
    F.eventualRange i = F.map f '' F.eventualRange j 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i j : J} [CategoryTheory.IsCofilteredOrEmpty J] (h : F.IsMittagLeffler) (f : j ⟶ i)
Goal: F.eventualRange i = F.map f '' F.eventualRange j
-- CategoryTheory.Functor.eventualRange_eq_iff
theorem eventualRange_eq_iff {f : i ⟶ j} :
    F.eventualRange j = range (F.map f) ↔
      ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i j : J} [CategoryTheory.IsCofilteredOrEmpty J] {f : i ⟶ j}
Goal: F.eventualRange j = Set.range (F.map f) ↔ ∀ ⦃k : J⦄ (g : k ⟶ i), Set.range (F.map f) ⊆ Set.range (F.map (g ≫ f))
-- CategoryTheory.Functor.isMittagLeffler_iff_subset_range_comp
theorem isMittagLeffler_iff_subset_range_comp : F.IsMittagLeffler ↔ ∀ j : J, ∃ (i : _) (f : i ⟶ j),
    ∀ ⦃k⦄ (g : k ⟶ i), range (F.map f) ⊆ range (F.map <| g ≫ f) 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J]
Goal: F.IsMittagLeffler ↔ ∀ (j : J), ∃ i f, ∀ ⦃k : J⦄ (g : k ⟶ i), Set.range (F.map f) ⊆ Set.range (F.map (g ≫ f))
-- CategoryTheory.Functor.IsMittagLeffler.toPreimages
theorem IsMittagLeffler.toPreimages (h : F.IsMittagLeffler) : (F.toPreimages s).IsMittagLeffler 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i : J} (s : Set (F.obj i)) [CategoryTheory.IsCofilteredOrEmpty J] (h : F.IsMittagLeffler)
Goal: (F.toPreimages s).IsMittagLeffler
-- CategoryTheory.Functor.isMittagLeffler_of_exists_finite_range
theorem isMittagLeffler_of_exists_finite_range
    (h : ∀ j : J, ∃ (i : _) (f : i ⟶ j), (range <| F.map f).Finite) : F.IsMittagLeffler 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J] (h : ∀ (j : J), ∃ i f, (Set.range (F.map f)).Finite)
Goal: F.IsMittagLeffler
-- CategoryTheory.Functor.toEventualRanges_obj
@[simps]
def toEventualRanges : J ⥤ Type v 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J] (j : J)
Goal: F.toEventualRanges.obj j = ↑(F.eventualRange j)
-- CategoryTheory.Functor.toEventualRanges_map
@[simps]
def toEventualRanges : J ⥤ Type v 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J]
Goal: ∀ {X Y : J} (f : X ⟶ Y) (a : ↑(F.eventualRange X)),
  F.toEventualRanges.map f a = Set.MapsTo.restrict (F.map f) (F.eventualRange X) (F.eventualRange Y) ⋯ a
-- CategoryTheory.Functor.surjective_toEventualRanges
theorem surjective_toEventualRanges (h : F.IsMittagLeffler) ⦃i j⦄ (f : i ⟶ j) :
    (F.toEventualRanges.map f).Surjective 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J] (h : F.IsMittagLeffler) ⦃i j : J⦄ (f : i ⟶ j)
Goal: Function.Surjective (F.toEventualRanges.map f)
-- CategoryTheory.Functor.toEventualRanges_nonempty
theorem toEventualRanges_nonempty (h : F.IsMittagLeffler) [∀ j : J, Nonempty (F.obj j)] (j : J) :
    Nonempty (F.toEventualRanges.obj j) 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J] (h : F.IsMittagLeffler) [∀ (j : J), Nonempty (F.obj j)] (j : J)
Goal: Nonempty (F.toEventualRanges.obj j)
-- CategoryTheory.Functor.thin_diagram_of_surjective
theorem thin_diagram_of_surjective (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) {i j}
    (f g : i ⟶ j) : F.map f = F.map g 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J] (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), Function.Surjective (F.map f)) {i j : J} (f g : i ⟶ j)
Goal: F.map f = F.map g
-- CategoryTheory.Functor.toPreimages_nonempty_of_surjective
theorem toPreimages_nonempty_of_surjective [hFn : ∀ j : J, Nonempty (F.obj j)]
    (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), (F.map f).Surjective) (hs : s.Nonempty) (j) :
    Nonempty ((F.toPreimages s).obj j) 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) {i : J} (s : Set (F.obj i)) [CategoryTheory.IsCofilteredOrEmpty J] [hFn : ∀ (j : J), Nonempty (F.obj j)] (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), Function.Surjective (F.map f)) (hs : s.Nonempty) (j : J)
Goal: Nonempty ((F.toPreimages s).obj j)
-- CategoryTheory.Functor.eval_section_injective_of_eventually_injective
theorem eval_section_injective_of_eventually_injective {j}
    (Finj : ∀ (i) (f : i ⟶ j), (F.map f).Injective) (i) (f : i ⟶ j) :
    (fun s : F.sections => s.val j).Injective 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J] {j : J} (Finj : ∀ (i : J) (f : i ⟶ j), Function.Injective (F.map f)) (i : J) (f : i ⟶ j)
Goal: Function.Injective fun s => ↑s j
-- CategoryTheory.Functor.eval_section_surjective_of_surjective
theorem eval_section_surjective_of_surjective (i : J) :
    (fun s : F.sections => s.val i).Surjective 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J] [∀ (j : J), Nonempty (F.obj j)] [∀ (j : J), Finite (F.obj j)] (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), Function.Surjective (F.map f)) (i : J)
Goal: Function.Surjective fun s => ↑s i
-- CategoryTheory.Functor.eventually_injective
theorem eventually_injective [Nonempty J] [Finite F.sections] :
    ∃ j, ∀ (i) (f : i ⟶ j), (F.map f).Injective 
Arguments: {J : Type u} [CategoryTheory.Category.{u_1, u} J] (F : J ⥤ Type v) [CategoryTheory.IsCofilteredOrEmpty J] [∀ (j : J), Nonempty (F.obj j)] [∀ (j : J), Finite (F.obj j)] (Fsur : ∀ ⦃i j : J⦄ (f : i ⟶ j), Function.Surjective (F.map f)) [Nonempty J] [Finite ↑F.sections]
Goal: ∃ j, ∀ (i : J) (f : i ⟶ j), Function.Injective (F.map f)
-- CategoryTheory.ConcreteCategory.forget_faithful
class ConcreteCategory (C : Type u) [Category.{v} C] where
    protected forget : C ⥤ Type w
    [forget_faithful : forget.Faithful]
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [self : CategoryTheory.ConcreteCategory C]
Goal: CategoryTheory.ConcreteCategory.forget.Faithful
-- CategoryTheory.ConcreteCategory.hom_ext
@[ext low] -- Porting note: lowered priority
theorem ConcreteCategory.hom_ext {X Y : C} (f g : X ⟶ Y) (w : ∀ x : X, f x = g x) : f = g 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X Y : C} (f g : X ⟶ Y) (w : ∀ (x : (CategoryTheory.forget C).obj X), f x = g x)
Goal: f = g
-- CategoryTheory.forget_map_eq_coe
theorem forget_map_eq_coe {X Y : C} (f : X ⟶ Y) : (forget C).map f = f 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X Y : C} (f : X ⟶ Y)
Goal: (CategoryTheory.forget C).map f = ⇑f
-- CategoryTheory.congr_hom
theorem congr_hom {X Y : C} {f g : X ⟶ Y} (h : f = g) (x : X) : f x = g x 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X Y : C} {f g : X ⟶ Y} (h : f = g) (x : (CategoryTheory.forget C).obj X)
Goal: f x = g x
-- CategoryTheory.coe_id
theorem coe_id {X : C} : (𝟙 X : X → X) = id 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X : C}
Goal: ⇑(CategoryTheory.CategoryStruct.id X) = id
-- CategoryTheory.coe_comp
theorem coe_comp {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) : (f ≫ g : X → Z) = g ∘ f 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z)
Goal: ⇑(CategoryTheory.CategoryStruct.comp f g) = ⇑g ∘ ⇑f
-- CategoryTheory.id_apply
@[simp] theorem id_apply {X : C} (x : X) : (𝟙 X : X → X) x = x 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X : C} (x : (CategoryTheory.forget C).obj X)
Goal: (CategoryTheory.CategoryStruct.id X) x = x
-- CategoryTheory.comp_apply
@[simp] theorem comp_apply {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (x : X) : (f ≫ g) x = g (f x) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (x : (CategoryTheory.forget C).obj X)
Goal: (CategoryTheory.CategoryStruct.comp f g) x = g (f x)
-- CategoryTheory.comp_apply'
theorem comp_apply' {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (x : X) :
    (forget C).map (f ≫ g) x = (forget C).map g ((forget C).map f x) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (x : (CategoryTheory.forget C).obj X)
Goal: (CategoryTheory.forget C).map (CategoryTheory.CategoryStruct.comp f g) x =
  (CategoryTheory.forget C).map g ((CategoryTheory.forget C).map f x)
-- CategoryTheory.ConcreteCategory.congr_hom
theorem ConcreteCategory.congr_hom {X Y : C} {f g : X ⟶ Y} (h : f = g) (x : X) : f x = g x 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X Y : C} {f g : X ⟶ Y} (h : f = g) (x : (CategoryTheory.forget C).obj X)
Goal: f x = g x
-- CategoryTheory.ConcreteCategory.congr_arg
theorem ConcreteCategory.congr_arg {X Y : C} (f : X ⟶ Y) {x x' : X} (h : x = x') : f x = f x' 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] {X Y : C} (f : X ⟶ Y) {x x' : (CategoryTheory.forget C).obj X} (h : x = x')
Goal: f x = f x'
-- CategoryTheory.ConcreteCategory.hasCoeToFun_Type
@[simp]
theorem ConcreteCategory.hasCoeToFun_Type {X Y : Type u} (f : X ⟶ Y) : CoeFun.coe f = f 
Arguments: {X Y : Type u} (f : X ⟶ Y)
Goal: CoeFun.coe f = f
-- CategoryTheory.HasForget₂.forget_comp
class HasForget₂ (C : Type u) (D : Type u') [Category.{v} C] [ConcreteCategory.{w} C]
  [Category.{v'} D] [ConcreteCategory.{w} D] where
    forget₂ : C ⥤ D
    forget_comp : forget₂ ⋙ forget D = forget C := by aesop
Arguments: {C : Type u} {D : Type u'} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] [CategoryTheory.Category.{v', u'} D] [CategoryTheory.ConcreteCategory D] [self : CategoryTheory.HasForget₂ C D]
Goal: CategoryTheory.HasForget₂.forget₂.comp (CategoryTheory.forget D) = CategoryTheory.forget C
-- CategoryTheory.forget₂_comp_apply
lemma forget₂_comp_apply {C : Type u} {D : Type u'} [Category.{v} C] [ConcreteCategory.{w} C]
    [Category.{v'} D] [ConcreteCategory.{w} D] [HasForget₂ C D] {X Y Z : C}
    (f : X ⟶ Y) (g : Y ⟶ Z) (x : (forget₂ C D).obj X) :
    ((forget₂ C D).map (f ≫ g) x) =
      (forget₂ C D).map g ((forget₂ C D).map f x) 
Arguments: {C : Type u} {D : Type u'} [CategoryTheory.Category.{v, u} C] [CategoryTheory.ConcreteCategory C] [CategoryTheory.Category.{v', u'} D] [CategoryTheory.ConcreteCategory D] [CategoryTheory.HasForget₂ C D] {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) (x : (CategoryTheory.forget D).obj ((CategoryTheory.forget₂ C D).obj X))
Goal: ((CategoryTheory.forget₂ C D).map (CategoryTheory.CategoryStruct.comp f g)) x =
  ((CategoryTheory.forget₂ C D).map g) (((CategoryTheory.forget₂ C D).map f) x)
-- CategoryTheory.NatTrans.naturality_apply
@[simp]
lemma NatTrans.naturality_apply {C D : Type*} [Category C] [Category D] [ConcreteCategory D]
    {F G : C ⥤ D} (φ : F ⟶ G) {X Y : C} (f : X ⟶ Y) (x : F.obj X) :
    φ.app Y (F.map f x) = G.map f (φ.app X x) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.ConcreteCategory D] {F G : CategoryTheory.Functor C D} (φ : F ⟶ G) {X Y : C} (f : X ⟶ Y) (x : (CategoryTheory.forget D).obj (F.obj X))
Goal: (φ.app Y) ((F.map f) x) = (G.map f) ((φ.app X) x)
-- CategoryTheory.Bicategory.whiskerLeft_hom_inv
@[reassoc (attr := simp)]
theorem whiskerLeft_hom_inv (f : a ⟶ b) {g h : b ⟶ c} (η : g ≅ h) :
    f ◁ η.hom ≫ f ◁ η.inv = 𝟙 (f ≫ g) 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b c : B} (f : a ⟶ b) {g h : b ⟶ c} (η : g ≅ h)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft f η.hom)
    (CategoryTheory.Bicategory.whiskerLeft f η.inv) =
  CategoryTheory.CategoryStruct.id (CategoryTheory.CategoryStruct.comp f g)
-- CategoryTheory.Bicategory.hom_inv_whiskerRight
@[reassoc (attr := simp)]
theorem hom_inv_whiskerRight {f g : a ⟶ b} (η : f ≅ g) (h : b ⟶ c) :
    η.hom ▷ h ≫ η.inv ▷ h = 𝟙 (f ≫ h) 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b c : B} {f g : a ⟶ b} (η : f ≅ g) (h : b ⟶ c)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight η.hom h)
    (CategoryTheory.Bicategory.whiskerRight η.inv h) =
  CategoryTheory.CategoryStruct.id (CategoryTheory.CategoryStruct.comp f h)
-- CategoryTheory.Bicategory.whiskerLeft_inv_hom
@[reassoc (attr := simp)]
theorem whiskerLeft_inv_hom (f : a ⟶ b) {g h : b ⟶ c} (η : g ≅ h) :
    f ◁ η.inv ≫ f ◁ η.hom = 𝟙 (f ≫ h) 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b c : B} (f : a ⟶ b) {g h : b ⟶ c} (η : g ≅ h)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft f η.inv)
    (CategoryTheory.Bicategory.whiskerLeft f η.hom) =
  CategoryTheory.CategoryStruct.id (CategoryTheory.CategoryStruct.comp f h)
-- CategoryTheory.Bicategory.inv_hom_whiskerRight
@[reassoc (attr := simp)]
theorem inv_hom_whiskerRight {f g : a ⟶ b} (η : f ≅ g) (h : b ⟶ c) :
    η.inv ▷ h ≫ η.hom ▷ h = 𝟙 (g ≫ h) 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b c : B} {f g : a ⟶ b} (η : f ≅ g) (h : b ⟶ c)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight η.inv h)
    (CategoryTheory.Bicategory.whiskerRight η.hom h) =
  CategoryTheory.CategoryStruct.id (CategoryTheory.CategoryStruct.comp g h)
-- CategoryTheory.Bicategory.whiskerLeftIso_inv
@[simps]
def whiskerLeftIso (f : a ⟶ b) {g h : b ⟶ c} (η : g ≅ h) : f ≫ g ≅ f ≫ h 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b c : B} (f : a ⟶ b) {g h : b ⟶ c} (η : g ≅ h)
Goal: (CategoryTheory.Bicategory.whiskerLeftIso f η).inv = CategoryTheory.Bicategory.whiskerLeft f η.inv
-- CategoryTheory.Bicategory.whiskerLeftIso_hom
@[simps]
def whiskerLeftIso (f : a ⟶ b) {g h : b ⟶ c} (η : g ≅ h) : f ≫ g ≅ f ≫ h 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b c : B} (f : a ⟶ b) {g h : b ⟶ c} (η : g ≅ h)
Goal: (CategoryTheory.Bicategory.whiskerLeftIso f η).hom = CategoryTheory.Bicategory.whiskerLeft f η.hom
-- CategoryTheory.Bicategory.inv_whiskerLeft
@[simp]
theorem inv_whiskerLeft (f : a ⟶ b) {g h : b ⟶ c} (η : g ⟶ h) [IsIso η] :
    inv (f ◁ η) = f ◁ inv η 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b c : B} (f : a ⟶ b) {g h : b ⟶ c} (η : g ⟶ h) [CategoryTheory.IsIso η]
Goal: CategoryTheory.inv (CategoryTheory.Bicategory.whiskerLeft f η) =
  CategoryTheory.Bicategory.whiskerLeft f (CategoryTheory.inv η)
-- CategoryTheory.Bicategory.whiskerRightIso_hom
@[simps!]
def whiskerRightIso {f g : a ⟶ b} (η : f ≅ g) (h : b ⟶ c) : f ≫ h ≅ g ≫ h 
Arguments: {B : Type u} [CategoryTheory.Bicategory B] {a b c : B} {f g : a ⟶ b} (η : f ≅ g) (h : b ⟶ c)
Goal: (CategoryTheory.Bicategory.whiskerRightIso η h).hom = CategoryTheory.Bicategory.whiskerRight η.hom h