Documentation

LeanPool.WhiteheadTheorem.RelHomotopyGroup.Algebra

TODO: Use Pointed (the category of pointed types) in Mathlib.

class IsPointedMap {X : Type u_1} {Y : Type u_2} [Inhabited X] [Inhabited Y] (f : XY) :

IsPointedMap

Instances
    theorem IsPointedMap.default_mem_image_of_default_mem {X : Type u_1} {Y : Type u_2} [Inhabited X] [Inhabited Y] (f : XY) [IsPointedMap f] {A : Set X} :
    def ExactSeq.IsExactAt {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [Inhabited Z] (f : XY) (g : YZ) :

    IsExactAt

    Equations
    Instances For
      theorem ExactSeq.isExactAt_of_ker_supset_im_of_ker_subset_im {X : Type u_1} {Y : Type u_2} {Z : Type u_3} [Inhabited X] [Inhabited Y] [Inhabited Z] {f : XY} {g : YZ} [IsPointedMap f] [IsPointedMap g] (hsup : ∀ (y : Y), (∃ (x : X), f x = y)g y = default) (hsub : ∀ (y : Y), g y = default∃ (x : X), f x = y) :

      Given an exact sequence A --a-> B --b-> C --c-> D --d-> E of five pointed sets, if a is surjective and d is injective, then C = 0. proof.

      theorem ExactSeq.unique_mid_of_five {A : Type u_1} {B : Type u_2} {C : Type u_3} {D : Type u_4} {E : Type u_5} [Inhabited A] [Inhabited B] [Inhabited C] [Inhabited D] [Inhabited E] (a : AB) (b : BC) (c : CD) (d : DE) [IsPointedMap a] [IsPointedMap b] [IsPointedMap c] [IsPointedMap d] (a_surj : Function.Surjective a) (d_inj : Function.Injective d) (exb : IsExactAt a b) (exc : IsExactAt b c) (exd : IsExactAt c d) :

      C = {0} if there is an exact sequence A --a-> B --b-> C --c-> D --d-> E of five pointed sets such that a is surjective and d is injective.