ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.SimplicialCategory.homEquiv_comp
class SimplicialCategory extends EnrichedCategory SSet.{v} C where
    homEquiv (K L : C) : (K ⟶ L) ≃ (𝟙_ SSet.{v} ⟶ EnrichedCategory.Hom K L)
  homEquiv_id (K : C) : homEquiv K K (𝟙 K) = eId SSet K := by aesop_cat
  homEquiv_comp {K L M : C} (f : K ⟶ L) (g : L ⟶ M) :
    homEquiv K M (f ≫ g) = (λ_ _).inv ≫ (homEquiv K L f ⊗ homEquiv L M g) ≫
      eComp SSet K L M := by aesop_cat
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [self : CategoryTheory.SimplicialCategory C] {K L M : C} (f : K ⟶ L) (g : L ⟶ M)
Goal: (CategoryTheory.SimplicialCategory.homEquiv K M) (f ≫ g) =
  (λ_ (𝟙_ SSet)).inv ≫
    ((CategoryTheory.SimplicialCategory.homEquiv K L) f ⊗ (CategoryTheory.SimplicialCategory.homEquiv L M) g) ≫
      CategoryTheory.eComp SSet K L M
-- CategoryTheory.SimplicialCategory.sHomWhiskerRight_id
@[simp]
lemma sHomWhiskerRight_id (K L : C) : sHomWhiskerRight (𝟙 K) L = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.SimplicialCategory C] (K L : C)
Goal: CategoryTheory.SimplicialCategory.sHomWhiskerRight (𝟙 K) L = 𝟙 (CategoryTheory.SimplicialCategory.sHom K L)
-- CategoryTheory.SimplicialCategory.sHomWhiskerRight_comp
@[simp, reassoc]
lemma sHomWhiskerRight_comp {K K' K'' : C} (f : K ⟶ K') (f' : K' ⟶ K'') (L : C) :
    sHomWhiskerRight (f ≫ f') L = sHomWhiskerRight f' L ≫ sHomWhiskerRight f L 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.SimplicialCategory C] {K K' K'' : C} (f : K ⟶ K') (f' : K' ⟶ K'') (L : C)
Goal: CategoryTheory.SimplicialCategory.sHomWhiskerRight (f ≫ f') L =
  CategoryTheory.SimplicialCategory.sHomWhiskerRight f' L ≫ CategoryTheory.SimplicialCategory.sHomWhiskerRight f L
-- CategoryTheory.SimplicialCategory.sHomWhiskerLeft_id
@[simp]
lemma sHomWhiskerLeft_id (K L : C) : sHomWhiskerLeft K (𝟙 L) = 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.SimplicialCategory C] (K L : C)
Goal: CategoryTheory.SimplicialCategory.sHomWhiskerLeft K (𝟙 L) = 𝟙 (CategoryTheory.SimplicialCategory.sHom K L)
-- CategoryTheory.SimplicialCategory.sHomWhiskerLeft_comp
@[simp, reassoc]
lemma sHomWhiskerLeft_comp (K : C) {L L' L'' : C} (g : L ⟶ L') (g' : L' ⟶ L'') :
    sHomWhiskerLeft K (g ≫ g') = sHomWhiskerLeft K g ≫ sHomWhiskerLeft K g' 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.SimplicialCategory C] (K : C) {L L' L'' : C} (g : L ⟶ L') (g' : L' ⟶ L'')
Goal: CategoryTheory.SimplicialCategory.sHomWhiskerLeft K (g ≫ g') =
  CategoryTheory.SimplicialCategory.sHomWhiskerLeft K g ≫ CategoryTheory.SimplicialCategory.sHomWhiskerLeft K g'
-- CategoryTheory.SimplicialCategory.sHom_whisker_exchange
@[reassoc]
lemma sHom_whisker_exchange {K K' L L' : C} (f : K ⟶ K') (g : L ⟶ L') :
    sHomWhiskerLeft K' g ≫ sHomWhiskerRight f L' =
      sHomWhiskerRight f L ≫ sHomWhiskerLeft K g 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.SimplicialCategory C] {K K' L L' : C} (f : K ⟶ K') (g : L ⟶ L')
Goal: CategoryTheory.SimplicialCategory.sHomWhiskerLeft K' g ≫ CategoryTheory.SimplicialCategory.sHomWhiskerRight f L' =
  CategoryTheory.SimplicialCategory.sHomWhiskerRight f L ≫ CategoryTheory.SimplicialCategory.sHomWhiskerLeft K g
-- CategoryTheory.SimplicialCategory.sHomFunctor_map_app
@[simps]
noncomputable def sHomFunctor : Cᵒᵖ ⥤ C ⥤ SSet.{v} 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.SimplicialCategory C]
Goal: ∀ {X Y : Cᵒᵖ} (φ : X ⟶ Y) (L : C),
  ((CategoryTheory.SimplicialCategory.sHomFunctor C).map φ).app L =
    CategoryTheory.SimplicialCategory.sHomWhiskerRight φ.unop L
-- CategoryTheory.SimplicialCategory.sHomFunctor_obj_map
@[simps]
noncomputable def sHomFunctor : Cᵒᵖ ⥤ C ⥤ SSet.{v} 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.SimplicialCategory C] (K : Cᵒᵖ)
Goal: ∀ {X Y : C} (φ : X ⟶ Y),
  ((CategoryTheory.SimplicialCategory.sHomFunctor C).obj K).map φ =
    CategoryTheory.SimplicialCategory.sHomWhiskerLeft (Opposite.unop K) φ
-- CategoryTheory.SimplicialCategory.sHomFunctor_obj_obj
@[simps]
noncomputable def sHomFunctor : Cᵒᵖ ⥤ C ⥤ SSet.{v} 
Arguments: (C : Type u) [CategoryTheory.Category.{v, u} C] [CategoryTheory.SimplicialCategory C] (K : Cᵒᵖ) (L : C)
Goal: ((CategoryTheory.SimplicialCategory.sHomFunctor C).obj K).obj L =
  CategoryTheory.SimplicialCategory.sHom (Opposite.unop K) L
-- SimplicialObject.Splitting.cofan_inj_πSummand_eq_id
@[reassoc (attr := simp)]
theorem cofan_inj_πSummand_eq_id [HasZeroMorphisms C] {Δ : SimplexCategoryᵒᵖ} (A : IndexSet Δ) :
    (s.cofan Δ).inj A ≫ s.πSummand A = 𝟙 _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Limits.HasZeroMorphisms C] {Δ : SimplexCategoryᵒᵖ} (A : SimplicialObject.Splitting.IndexSet Δ)
Goal: (s.cofan Δ).inj A ≫ s.πSummand A = 𝟙 (SimplicialObject.Splitting.summand s.N Δ A)
-- SimplicialObject.Splitting.cofan_inj_πSummand_eq_zero
@[reassoc (attr := simp)]
theorem cofan_inj_πSummand_eq_zero [HasZeroMorphisms C] {Δ : SimplexCategoryᵒᵖ} (A B : IndexSet Δ)
    (h : B ≠ A) : (s.cofan Δ).inj A ≫ s.πSummand B = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Limits.HasZeroMorphisms C] {Δ : SimplexCategoryᵒᵖ} (A B : SimplicialObject.Splitting.IndexSet Δ) (h : B ≠ A)
Goal: (s.cofan Δ).inj A ≫ s.πSummand B = 0
-- SimplicialObject.Splitting.decomposition_id
theorem decomposition_id (Δ : SimplexCategoryᵒᵖ) :
    𝟙 (X.obj Δ) = ∑ A : IndexSet Δ, s.πSummand A ≫ (s.cofan Δ).inj A 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] (Δ : SimplexCategoryᵒᵖ)
Goal: 𝟙 (X.obj Δ) = ∑ A : SimplicialObject.Splitting.IndexSet Δ, s.πSummand A ≫ (s.cofan Δ).inj A
-- SimplicialObject.Splitting.σ_comp_πSummand_id_eq_zero
@[reassoc (attr := simp)]
theorem σ_comp_πSummand_id_eq_zero {n : ℕ} (i : Fin (n + 1)) :
    X.σ i ≫ s.πSummand (IndexSet.id (op [n + 1])) = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] {n : ℕ} (i : Fin (n + 1))
Goal: X.σ i ≫ s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n + 1])) = 0
-- SimplicialObject.Splitting.cofan_inj_comp_PInfty_eq_zero
theorem cofan_inj_comp_PInfty_eq_zero {X : SimplicialObject C} (s : SimplicialObject.Splitting X)
    {n : ℕ} (A : SimplicialObject.Splitting.IndexSet (op [n])) (hA : ¬A.EqId) :
    (s.cofan _).inj A ≫ PInfty.f n = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) {n : ℕ} (A : SimplicialObject.Splitting.IndexSet (Opposite.op [n])) (hA : ¬A.EqId)
Goal: (s.cofan (Opposite.op [n])).inj A ≫ AlgebraicTopology.DoldKan.PInfty.f n = 0
-- SimplicialObject.Splitting.comp_PInfty_eq_zero_iff
theorem comp_PInfty_eq_zero_iff {Z : C} {n : ℕ} (f : Z ⟶ X _[n]) :
    f ≫ PInfty.f n = 0 ↔ f ≫ s.πSummand (IndexSet.id (op [n])) = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] {Z : C} {n : ℕ} (f : Z ⟶ X _[n])
Goal: f ≫ AlgebraicTopology.DoldKan.PInfty.f n = 0 ↔
  f ≫ s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) = 0
-- SimplicialObject.Splitting.PInfty_comp_πSummand_id
@[reassoc (attr := simp)]
theorem PInfty_comp_πSummand_id (n : ℕ) :
    PInfty.f n ≫ s.πSummand (IndexSet.id (op [n])) = s.πSummand (IndexSet.id (op [n])) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] (n : ℕ)
Goal: AlgebraicTopology.DoldKan.PInfty.f n ≫ s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) =
  s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n]))
-- SimplicialObject.Splitting.πSummand_comp_cofan_inj_id_comp_PInfty_eq_PInfty
@[reassoc (attr := simp)]
theorem πSummand_comp_cofan_inj_id_comp_PInfty_eq_PInfty (n : ℕ) :
    s.πSummand (IndexSet.id (op [n])) ≫ (s.cofan _).inj (IndexSet.id (op [n])) ≫ PInfty.f n =
      PInfty.f n 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] (n : ℕ)
Goal: s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
    (s.cofan (Opposite.op [n])).inj (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
      AlgebraicTopology.DoldKan.PInfty.f n =
  AlgebraicTopology.DoldKan.PInfty.f n
-- SimplicialObject.Splitting.ιSummand_comp_d_comp_πSummand_eq_zero
theorem ιSummand_comp_d_comp_πSummand_eq_zero (j k : ℕ) (A : IndexSet (op [j])) (hA : ¬A.EqId) :
    (s.cofan _).inj A ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] (j k : ℕ) (A : SimplicialObject.Splitting.IndexSet (Opposite.op [j])) (hA : ¬A.EqId)
Goal: (s.cofan (Opposite.op [j])).inj A ≫ K[X].d j k ≫ s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [k])) =
  0
-- SimplicialObject.Splitting.nondegComplex_d
@[simps]
noncomputable def nondegComplex : ChainComplex C ℕ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] (i j : ℕ)
Goal: s.nondegComplex.d i j = s.d i j
-- SimplicialObject.Splitting.nondegComplex_X
@[simps]
noncomputable def nondegComplex : ChainComplex C ℕ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C]
Goal: ∀ (a : ℕ), s.nondegComplex.X a = s.N a
-- SimplicialObject.Splitting.toKaroubiNondegComplexIsoN₁_inv_f_f
@[simps]
noncomputable def toKaroubiNondegComplexIsoN₁ :
    (toKaroubi _).obj s.nondegComplex ≅ N₁.obj X 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] (n : ℕ)
Goal: s.toKaroubiNondegComplexIsoN₁.inv.f.f n = s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n]))
-- SimplicialObject.Splitting.toKaroubiNondegComplexIsoN₁_hom_f_f
@[simps]
noncomputable def toKaroubiNondegComplexIsoN₁ :
    (toKaroubi _).obj s.nondegComplex ≅ N₁.obj X 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X : CategoryTheory.SimplicialObject C} (s : SimplicialObject.Splitting X) [CategoryTheory.Preadditive C] (n : ℕ)
Goal: s.toKaroubiNondegComplexIsoN₁.hom.f.f n =
  (s.cofan (Opposite.op [n])).inj (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
    AlgebraicTopology.DoldKan.PInfty.f n
-- SimplicialObject.Split.nondegComplexFunctor_obj
@[simps]
noncomputable def nondegComplexFunctor : Split C ⥤ ChainComplex C ℕ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] (S : SimplicialObject.Split C)
Goal: SimplicialObject.Split.nondegComplexFunctor.obj S = S.s.nondegComplex
-- SimplicialObject.Split.nondegComplexFunctor_map_f
@[simps]
noncomputable def nondegComplexFunctor : Split C ⥤ ChainComplex C ℕ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] {S₁ S₂ : SimplicialObject.Split C} (Φ : S₁ ⟶ S₂) (n : ℕ)
Goal: (SimplicialObject.Split.nondegComplexFunctor.map Φ).f n = Φ.f n
-- SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁_hom_app_f_f
@[simps!]
noncomputable def toKaroubiNondegComplexFunctorIsoN₁ :
    nondegComplexFunctor ⋙ toKaroubi (ChainComplex C ℕ) ≅ forget C ⋙ DoldKan.N₁ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] (X : SimplicialObject.Split C) (n : ℕ)
Goal: (SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁.hom.app X).f.f n =
  (X.s.cofan (Opposite.op [n])).inj (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
    AlgebraicTopology.DoldKan.PInfty.f n
-- SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁_inv_app_f_f
@[simps!]
noncomputable def toKaroubiNondegComplexFunctorIsoN₁ :
    nondegComplexFunctor ⋙ toKaroubi (ChainComplex C ℕ) ≅ forget C ⋙ DoldKan.N₁ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] (X : SimplicialObject.Split C) (n : ℕ)
Goal: (SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁.inv.app X).f.f n =
  X.s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n]))
-- Function.Embedding.schroeder_bernstein
theorem schroeder_bernstein {f : α → β} {g : β → α} (hf : Function.Injective f)
    (hg : Function.Injective g) : ∃ h : α → β, Bijective h 
Arguments: {α : Type u} {β : Type v} {f : α → β} {g : β → α} (hf : Function.Injective f) (hg : Function.Injective g)
Goal: ∃ h, Function.Bijective h
-- Function.Embedding.antisymm
theorem antisymm : (α ↪ β) → (β ↪ α) → Nonempty (α ≃ β)
  
Arguments: {α : Type u} {β : Type v}
Goal: (α ↪ β) → (β ↪ α) → Nonempty (α ≃ β)
-- Function.Embedding.min_injective
theorem min_injective [I : Nonempty ι] : ∃ i, Nonempty (∀ j, β i ↪ β j) 
Arguments: {ι : Type u} (β : ι → Type v) [I : Nonempty ι]
Goal: ∃ i, Nonempty ((j : ι) → β i ↪ β j)
-- Function.Embedding.total
-- Porting note: `ULift.{max u v, u} α` was `ULift α`
theorem total (α : Type u) (β : Type v) : Nonempty (α ↪ β) ∨ Nonempty (β ↪ α) 
Arguments: (α : Type u) (β : Type v)
Goal: Nonempty (α ↪ β) ∨ Nonempty (β ↪ α)
-- AlgebraicTopology.DoldKan.PInfty_comp_map_mono_eq_zero
theorem PInfty_comp_map_mono_eq_zero (X : SimplicialObject C) {n : ℕ} {Δ' : SimplexCategory}
    (i : Δ' ⟶ [n]) [hi : Mono i] (h₁ : Δ'.len ≠ n) (h₂ : ¬Isδ₀ i) :
    PInfty.f n ≫ X.map i.op = 0 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] (X : CategoryTheory.SimplicialObject C) {n : ℕ} {Δ' : SimplexCategory} (i : Δ' ⟶ [n]) [hi : CategoryTheory.Mono i] (h₁ : Δ'.len ≠ n) (h₂ : ¬AlgebraicTopology.DoldKan.Isδ₀ i)
Goal: AlgebraicTopology.DoldKan.PInfty.f n ≫ X.map i.op = 0
-- AlgebraicTopology.DoldKan.Γ₀_obj_termwise_mapMono_comp_PInfty
@[reassoc]
theorem Γ₀_obj_termwise_mapMono_comp_PInfty (X : SimplicialObject C) {Δ Δ' : SimplexCategory}
    (i : Δ ⟶ Δ') [Mono i] :
    Γ₀.Obj.Termwise.mapMono (AlternatingFaceMapComplex.obj X) i ≫ PInfty.f Δ.len =
      PInfty.f Δ'.len ≫ X.map i.op 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] (X : CategoryTheory.SimplicialObject C) {Δ Δ' : SimplexCategory} (i : Δ ⟶ Δ') [CategoryTheory.Mono i]
Goal: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K[X] i ≫ AlgebraicTopology.DoldKan.PInfty.f Δ.len =
  AlgebraicTopology.DoldKan.PInfty.f Δ'.len ≫ X.map i.op
-- AlgebraicTopology.DoldKan.Γ₂N₁.natTrans_app_f_app
@[simps]
def natTrans : (N₁ : SimplicialObject C ⥤ _) ⋙ Γ₂ ⟶ toKaroubi _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C] (X : CategoryTheory.SimplicialObject C) (Δ : SimplexCategoryᵒᵖ)
Goal: (AlgebraicTopology.DoldKan.Γ₂N₁.natTrans.app X).f.app Δ =
  (AlgebraicTopology.DoldKan.Γ₀.splitting K[X]).desc Δ fun A =>
    AlgebraicTopology.DoldKan.PInfty.f (Opposite.unop A.fst).len ≫ X.map A.e.op
-- AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso_hom_app
@[simp]
lemma Γ₂N₂ToKaroubiIso_hom_app (X : SimplicialObject C) :
    Γ₂N₂ToKaroubiIso.hom.app X = Γ₂.map (toKaroubiCompN₂IsoN₁.hom.app X) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C] (X : CategoryTheory.SimplicialObject C)
Goal: AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso.hom.app X =
  AlgebraicTopology.DoldKan.Γ₂.map (AlgebraicTopology.DoldKan.toKaroubiCompN₂IsoN₁.hom.app X)
-- AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso_inv_app
@[simp]
lemma Γ₂N₂ToKaroubiIso_inv_app (X : SimplicialObject C) :
    Γ₂N₂ToKaroubiIso.inv.app X = Γ₂.map (toKaroubiCompN₂IsoN₁.inv.app X) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C] (X : CategoryTheory.SimplicialObject C)
Goal: AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso.inv.app X =
  AlgebraicTopology.DoldKan.Γ₂.map (AlgebraicTopology.DoldKan.toKaroubiCompN₂IsoN₁.inv.app X)
-- AlgebraicTopology.DoldKan.Γ₂N₂.natTrans_app_f_app
theorem natTrans_app_f_app (P : Karoubi (SimplicialObject C)) :
    Γ₂N₂.natTrans.app P =
      (N₂ ⋙ Γ₂).map P.decompId_i ≫
        (Γ₂N₂ToKaroubiIso.hom ≫ Γ₂N₁.natTrans).app P.X ≫ P.decompId_p 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C] (P : CategoryTheory.Idempotents.Karoubi (CategoryTheory.SimplicialObject C))
Goal: AlgebraicTopology.DoldKan.Γ₂N₂.natTrans.app P =
  (AlgebraicTopology.DoldKan.N₂ ⋙ AlgebraicTopology.DoldKan.Γ₂).map P.decompId_i ≫
    (AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso.hom ≫ AlgebraicTopology.DoldKan.Γ₂N₁.natTrans).app P.X ≫ P.decompId_p
-- AlgebraicTopology.DoldKan.compatibility_Γ₂N₁_Γ₂N₂_natTrans
theorem compatibility_Γ₂N₁_Γ₂N₂_natTrans (X : SimplicialObject C) :
    Γ₂N₁.natTrans.app X =
      (Γ₂N₂ToKaroubiIso.app X).inv ≫
        Γ₂N₂.natTrans.app ((toKaroubi (SimplicialObject C)).obj X) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C] (X : CategoryTheory.SimplicialObject C)
Goal: AlgebraicTopology.DoldKan.Γ₂N₁.natTrans.app X =
  (AlgebraicTopology.DoldKan.Γ₂N₂ToKaroubiIso.app X).inv ≫
    AlgebraicTopology.DoldKan.Γ₂N₂.natTrans.app
      ((CategoryTheory.Idempotents.toKaroubi (CategoryTheory.SimplicialObject C)).obj X)
-- AlgebraicTopology.DoldKan.identity_N₂_objectwise
theorem identity_N₂_objectwise (P : Karoubi (SimplicialObject C)) :
    (N₂Γ₂.inv.app (N₂.obj P) : N₂.obj P ⟶ N₂.obj (Γ₂.obj (N₂.obj P))) ≫
    N₂.map (Γ₂N₂.natTrans.app P) = 𝟙 (N₂.obj P) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C] (P : CategoryTheory.Idempotents.Karoubi (CategoryTheory.SimplicialObject C))
Goal: AlgebraicTopology.DoldKan.N₂Γ₂.inv.app (AlgebraicTopology.DoldKan.N₂.obj P) ≫
    AlgebraicTopology.DoldKan.N₂.map (AlgebraicTopology.DoldKan.Γ₂N₂.natTrans.app P) =
  𝟙 (AlgebraicTopology.DoldKan.N₂.obj P)
-- AlgebraicTopology.DoldKan.identity_N₂
theorem identity_N₂ :
    (𝟙 (N₂ : Karoubi (SimplicialObject C) ⥤ _) ◫ N₂Γ₂.inv) ≫
    (Functor.associator _ _ _).inv ≫ Γ₂N₂.natTrans ◫ 𝟙 (@N₂ C _ _) = 𝟙 N₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C]
Goal: (𝟙 AlgebraicTopology.DoldKan.N₂ ◫ AlgebraicTopology.DoldKan.N₂Γ₂.inv) ≫
    (AlgebraicTopology.DoldKan.N₂.associator AlgebraicTopology.DoldKan.Γ₂ AlgebraicTopology.DoldKan.N₂).inv ≫
      AlgebraicTopology.DoldKan.Γ₂N₂.natTrans ◫ 𝟙 AlgebraicTopology.DoldKan.N₂ =
  𝟙 AlgebraicTopology.DoldKan.N₂
-- AlgebraicTopology.DoldKan.Γ₂N₂_inv
@[simps! inv]
def Γ₂N₂ : 𝟭 _ ≅ (N₂ : Karoubi (SimplicialObject C) ⥤ _) ⋙ Γ₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C]
Goal: AlgebraicTopology.DoldKan.Γ₂N₂.inv = AlgebraicTopology.DoldKan.Γ₂N₂.natTrans
-- AlgebraicTopology.DoldKan.Γ₂N₁_inv
@[simps! inv]
def Γ₂N₁ : toKaroubi _ ≅ (N₁ : SimplicialObject C ⥤ _) ⋙ Γ₂ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasFiniteCoproducts C]
Goal: AlgebraicTopology.DoldKan.Γ₂N₁.inv = AlgebraicTopology.DoldKan.Γ₂N₁.natTrans
-- Nat.card_eq_fintype_card
@[simp]
theorem card_eq_fintype_card [Fintype α] : Nat.card α = Fintype.card α 
Arguments: {α : Type u_1} [Fintype α]
Goal: Nat.card α = Fintype.card α
-- Fintype.card_eq_nat_card
theorem _root_.Fintype.card_eq_nat_card {_ : Fintype α} : Fintype.card α = Nat.card α 
Arguments: {α : Type u_1}
Goal: ∀ {x : Fintype α}, Fintype.card α = Nat.card α
-- Nat.card_eq_finsetCard
lemma card_eq_finsetCard (s : Finset α) : Nat.card s = s.card 
Arguments: {α : Type u_1} (s : Finset α)
Goal: Nat.card { x // x ∈ s } = s.card
-- Nat.card_eq_card_toFinset
lemma card_eq_card_toFinset (s : Set α) [Fintype s] : Nat.card s = s.toFinset.card 
Arguments: {α : Type u_1} (s : Set α) [Fintype ↑s]
Goal: Nat.card ↑s = s.toFinset.card
-- Nat.card_eq_card_finite_toFinset
lemma card_eq_card_finite_toFinset {s : Set α} (hs : s.Finite) : Nat.card s = hs.toFinset.card 
Arguments: {α : Type u_1} {s : Set α} (hs : s.Finite)
Goal: Nat.card ↑s = hs.toFinset.card
-- Nat.card_of_isEmpty
@[simp] theorem card_of_isEmpty [IsEmpty α] : Nat.card α = 0 
Arguments: {α : Type u_1} [IsEmpty α]
Goal: Nat.card α = 0
-- Nat.card_eq_zero_of_infinite
@[simp] lemma card_eq_zero_of_infinite [Infinite α] : Nat.card α = 0 
Arguments: {α : Type u_1} [Infinite α]
Goal: Nat.card α = 0
-- Set.Infinite.card_eq_zero
lemma _root_.Set.Infinite.card_eq_zero {s : Set α} (hs : s.Infinite) : Nat.card s = 0 
Arguments: {α : Type u_1} {s : Set α} (hs : s.Infinite)
Goal: Nat.card ↑s = 0
-- Nat.card_eq_zero
lemma card_eq_zero : Nat.card α = 0 ↔ IsEmpty α ∨ Infinite α 
Arguments: {α : Type u_1}
Goal: Nat.card α = 0 ↔ IsEmpty α ∨ Infinite α
-- Nat.card_ne_zero
lemma card_ne_zero : Nat.card α ≠ 0 ↔ Nonempty α ∧ Finite α 
Arguments: {α : Type u_1}
Goal: Nat.card α ≠ 0 ↔ Nonempty α ∧ Finite α
-- Nat.card_pos_iff
lemma card_pos_iff : 0 < Nat.card α ↔ Nonempty α ∧ Finite α 
Arguments: {α : Type u_1}
Goal: 0 < Nat.card α ↔ Nonempty α ∧ Finite α
-- Nat.card_pos
@[simp] lemma card_pos [Nonempty α] [Finite α] : 0 < Nat.card α 
Arguments: {α : Type u_1} [Nonempty α] [Finite α]
Goal: 0 < Nat.card α
-- Nat.finite_of_card_ne_zero
theorem finite_of_card_ne_zero (h : Nat.card α ≠ 0) : Finite α 
Arguments: {α : Type u_1} (h : Nat.card α ≠ 0)
Goal: Finite α
-- Nat.card_congr
theorem card_congr (f : α ≃ β) : Nat.card α = Nat.card β 
Arguments: {α : Type u_1} {β : Type u_2} (f : α ≃ β)
Goal: Nat.card α = Nat.card β
-- Nat.card_le_card_of_injective
lemma card_le_card_of_injective {α : Type u} {β : Type v} [Finite β] (f : α → β)
    (hf : Injective f) : Nat.card α ≤ Nat.card β 
Arguments: {α : Type u} {β : Type v} [Finite β] (f : α → β) (hf : Function.Injective f)
Goal: Nat.card α ≤ Nat.card β
-- Nat.card_le_card_of_surjective
lemma card_le_card_of_surjective {α : Type u} {β : Type v} [Finite α] (f : α → β)
    (hf : Surjective f) : Nat.card β ≤ Nat.card α 
Arguments: {α : Type u} {β : Type v} [Finite α] (f : α → β) (hf : Function.Surjective f)
Goal: Nat.card β ≤ Nat.card α
-- Nat.card_eq_of_bijective
theorem card_eq_of_bijective (f : α → β) (hf : Function.Bijective f) : Nat.card α = Nat.card β 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (hf : Function.Bijective f)
Goal: Nat.card α = Nat.card β
-- Nat.bijective_iff_injective_and_card
protected theorem bijective_iff_injective_and_card [Finite β] (f : α → β) :
    Bijective f ↔ Injective f ∧ Nat.card α = Nat.card β 
Arguments: {α : Type u_1} {β : Type u_2} [Finite β] (f : α → β)
Goal: Function.Bijective f ↔ Function.Injective f ∧ Nat.card α = Nat.card β
-- Nat.bijective_iff_surjective_and_card
protected theorem bijective_iff_surjective_and_card [Finite α] (f : α → β) :
    Bijective f ↔ Surjective f ∧ Nat.card α = Nat.card β 
Arguments: {α : Type u_1} {β : Type u_2} [Finite α] (f : α → β)
Goal: Function.Bijective f ↔ Function.Surjective f ∧ Nat.card α = Nat.card β
-- Function.Injective.bijective_of_nat_card_le
theorem _root_.Function.Injective.bijective_of_nat_card_le [Finite β] {f : α → β}
    (inj : Injective f) (hc : Nat.card β ≤ Nat.card α) : Bijective f 
Arguments: {α : Type u_1} {β : Type u_2} [Finite β] {f : α → β} (inj : Function.Injective f) (hc : Nat.card β ≤ Nat.card α)
Goal: Function.Bijective f