Documentation

Mathlib.CategoryTheory.EffectiveEpi.Comp

Composition of effective epimorphisms #

This file provides EffectiveEpi instances for certain compositions.

noncomputable def CategoryTheory.effectiveEpiFamilyStructCompOfEffectiveEpiSplitEpi' {C : Type u_1} [Category.{v_1, u_1} C] {α : Type u_2} {B : C} {X Y : α → C} (f : (a : α) → X a ⟶ B) (g : (a : α) → Y a ⟶ X a) (i : (a : α) → X a ⟶ Y a) (hi : āˆ€ (a : α), CategoryStruct.comp (i a) (g a) = CategoryStruct.id (X a)) [EffectiveEpiFamily X f] :
EffectiveEpiFamilyStruct Y fun (a : α) => CategoryStruct.comp (g a) (f a)

An effective epi family precomposed by a family of split epis is effective epimorphic. This version takes an explicit section to the split epis, and is mainly used to define effectiveEpiStructCompOfEffectiveEpiSplitEpi, which takes a IsSplitEpi instance instead.

Instances For
    noncomputable def CategoryTheory.effectiveEpiFamilyStructCompOfEffectiveEpiSplitEpi {C : Type u_1} [Category.{v_1, u_1} C] {α : Type u_2} {B : C} {X Y : α → C} (f : (a : α) → X a ⟶ B) (g : (a : α) → Y a ⟶ X a) [āˆ€ (a : α), IsSplitEpi (g a)] [EffectiveEpiFamily X f] :
    EffectiveEpiFamilyStruct Y fun (a : α) => CategoryStruct.comp (g a) (f a)

    An effective epi family precomposed with a family of split epis is effective epimorphic.

    Instances For
      instance CategoryTheory.instEffectiveEpiFamilyCompOfIsSplitEpi {C : Type u_1} [Category.{v_1, u_1} C] {α : Type u_2} {B : C} {X Y : α → C} (f : (a : α) → X a ⟶ B) (g : (a : α) → Y a ⟶ X a) [āˆ€ (a : α), IsSplitEpi (g a)] [EffectiveEpiFamily X f] :
      EffectiveEpiFamily Y fun (a : α) => CategoryStruct.comp (g a) (f a)
      noncomputable def CategoryTheory.effectiveEpiFamilyStructOfComp {C : Type u_2} [Category.{v_2, u_2} C] {I : Type u_3} {Z Y : I → C} {X : C} (g : (i : I) → Z i ⟶ Y i) (f : (i : I) → Y i ⟶ X) [EffectiveEpiFamily Z fun (i : I) => CategoryStruct.comp (g i) (f i)] [āˆ€ (i : I), Epi (g i)] :

      If a family of morphisms with fixed target, precomposed by a family of epis is effective epimorphic, then the original family is as well.

      Instances For
        theorem CategoryTheory.effectiveEpiFamily_of_effectiveEpi_epi_comp {C : Type u_1} [Category.{v_1, u_1} C] {α : Type u_2} {B : C} {X Y : α → C} (f : (a : α) → X a ⟶ B) (g : (a : α) → Y a ⟶ X a) [āˆ€ (a : α), Epi (g a)] [EffectiveEpiFamily Y fun (a : α) => CategoryStruct.comp (g a) (f a)] :
        theorem CategoryTheory.effectiveEpiFamilyStructCompIso_aux {C : Type u_1} [Category.{v_1, u_1} C] {B B' : C} {α : Type u_2} (X : α → C) (Ļ€ : (a : α) → X a ⟶ B) (i : B ⟶ B') {W : C} (e : (a : α) → X a ⟶ W) (h : āˆ€ {Z : C} (a₁ aā‚‚ : α) (g₁ : Z ⟶ X a₁) (gā‚‚ : Z ⟶ X aā‚‚), CategoryStruct.comp g₁ (CategoryStruct.comp (Ļ€ a₁) i) = CategoryStruct.comp gā‚‚ (CategoryStruct.comp (Ļ€ aā‚‚) i) → CategoryStruct.comp g₁ (e a₁) = CategoryStruct.comp gā‚‚ (e aā‚‚)) {Z : C} (a₁ aā‚‚ : α) (g₁ : Z ⟶ X a₁) (gā‚‚ : Z ⟶ X aā‚‚) (hg : CategoryStruct.comp g₁ (Ļ€ a₁) = CategoryStruct.comp gā‚‚ (Ļ€ aā‚‚)) :
        CategoryStruct.comp g₁ (e a₁) = CategoryStruct.comp gā‚‚ (e aā‚‚)
        noncomputable def CategoryTheory.effectiveEpiFamilyStructCompIso {C : Type u_1} [Category.{v_1, u_1} C] {B B' : C} {α : Type u_2} (X : α → C) (Ļ€ : (a : α) → X a ⟶ B) (i : B ⟶ B') [EffectiveEpiFamily X Ļ€] [IsIso i] :
        EffectiveEpiFamilyStruct X fun (a : α) => CategoryStruct.comp (Ļ€ a) i

        An effective epi family followed by an iso is an effective epi family.

        Instances For
          instance CategoryTheory.instEffectiveEpiFamilyComp {C : Type u_1} [Category.{v_1, u_1} C] {B B' : C} {α : Type u_2} (X : α → C) (Ļ€ : (a : α) → X a ⟶ B) (i : B ⟶ B') [EffectiveEpiFamily X Ļ€] [IsIso i] :
          EffectiveEpiFamily X fun (a : α) => CategoryStruct.comp (Ļ€ a) i