generalize is_exact
This commit is contained in:
parent
3cd846a757
commit
91931ca338
6 changed files with 38 additions and 40 deletions
|
@ -13,16 +13,12 @@ import algebra.group_theory hit.set_quotient types.sigma types.list types.sum .q
|
||||||
open eq algebra is_trunc set_quotient relation sigma sigma.ops prod prod.ops sum list trunc function group trunc
|
open eq algebra is_trunc set_quotient relation sigma sigma.ops prod prod.ops sum list trunc function group trunc
|
||||||
equiv is_equiv
|
equiv is_equiv
|
||||||
|
|
||||||
structure is_exact {A B C : AbGroup} (f : A →g B) (g : B →g C) :=
|
|
||||||
( im_in_ker : Π(a:A), g (f a) = 1)
|
|
||||||
( ker_in_im : Π(b:B), (g b = 1) → image_subgroup f b)
|
|
||||||
|
|
||||||
structure SES (A B C : AbGroup) :=
|
structure SES (A B C : AbGroup) :=
|
||||||
( f : A →g B)
|
( f : A →g B)
|
||||||
( g : B →g C)
|
( g : B →g C)
|
||||||
( Hf : is_embedding f)
|
( Hf : is_embedding f)
|
||||||
( Hg : is_surjective g)
|
( Hg : is_surjective g)
|
||||||
( ex : is_exact f g)
|
( ex : is_exact_ag f g)
|
||||||
|
|
||||||
definition SES_of_inclusion {A B : AbGroup} (f : A →g B) (Hf : is_embedding f) : SES A B (quotient_ab_group (image_subgroup f)) :=
|
definition SES_of_inclusion {A B : AbGroup} (f : A →g B) (Hf : is_embedding f) : SES A B (quotient_ab_group (image_subgroup f)) :=
|
||||||
begin
|
begin
|
||||||
|
@ -37,7 +33,7 @@ definition SES_of_inclusion {A B : AbGroup} (f : A →g B) (Hf : is_embedding f)
|
||||||
intro a,
|
intro a,
|
||||||
fapply qg_map_eq_one, fapply tr, fapply fiber.mk, exact a, reflexivity,
|
fapply qg_map_eq_one, fapply tr, fapply fiber.mk, exact a, reflexivity,
|
||||||
intro b, intro p,
|
intro b, intro p,
|
||||||
fapply rel_of_ab_qg_map_eq_one, assumption
|
exact rel_of_ab_qg_map_eq_one _ p
|
||||||
end
|
end
|
||||||
|
|
||||||
definition SES_of_subgroup {B : AbGroup} (S : subgroup_rel B) : SES (ab_subgroup S) B (quotient_ab_group S) :=
|
definition SES_of_subgroup {B : AbGroup} (S : subgroup_rel B) : SES (ab_subgroup S) B (quotient_ab_group S) :=
|
||||||
|
|
|
@ -11,18 +11,6 @@ import .spectrum .EM ..algebra.arrow_group .fwedge ..choice .pushout ..move_to_l
|
||||||
open eq spectrum int trunc pointed EM group algebra circle sphere nat EM.ops equiv susp is_trunc
|
open eq spectrum int trunc pointed EM group algebra circle sphere nat EM.ops equiv susp is_trunc
|
||||||
function fwedge cofiber bool lift sigma is_equiv choice pushout algebra unit pi
|
function fwedge cofiber bool lift sigma is_equiv choice pushout algebra unit pi
|
||||||
|
|
||||||
-- TODO: move
|
|
||||||
structure is_exact {A B : Type} {C : Type*} (f : A → B) (g : B → C) :=
|
|
||||||
( im_in_ker : Π(a:A), g (f a) = pt)
|
|
||||||
( ker_in_im : Π(b:B), (g b = pt) → image f b)
|
|
||||||
|
|
||||||
definition is_exact_g {A B C : Group} (f : A →g B) (g : B →g C) :=
|
|
||||||
is_exact f g
|
|
||||||
|
|
||||||
definition is_exact_g.mk {A B C : Group} {f : A →g B} {g : B →g C}
|
|
||||||
(H₁ : Πa, g (f a) = 1) (H₂ : Πb, g b = 1 → image f b) : is_exact_g f g :=
|
|
||||||
is_exact.mk H₁ H₂
|
|
||||||
|
|
||||||
definition is_exact_trunc_functor {A B : Type} {C : Type*} {f : A → B} {g : B → C}
|
definition is_exact_trunc_functor {A B : Type} {C : Type*} {f : A → B} {g : B → C}
|
||||||
(H : is_exact_t f g) : @is_exact _ _ (ptrunc 0 C) (trunc_functor 0 f) (trunc_functor 0 g) :=
|
(H : is_exact_t f g) : @is_exact _ _ (ptrunc 0 C) (trunc_functor 0 f) (trunc_functor 0 g) :=
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -464,10 +464,6 @@ namespace pushout
|
||||||
|
|
||||||
/- universal property of cofiber -/
|
/- universal property of cofiber -/
|
||||||
|
|
||||||
structure is_exact_t {A B : Type} {C : Type*} (f : A → B) (g : B → C) :=
|
|
||||||
( im_in_ker : Π(a:A), g (f a) = pt)
|
|
||||||
( ker_in_im : Π(b:B), (g b = pt) → fiber f b)
|
|
||||||
|
|
||||||
definition cofiber_exact_1 {X Y Z : Type*} (f : X →* Y) (g : pcofiber f →* Z) :
|
definition cofiber_exact_1 {X Y Z : Type*} (f : X →* Y) (g : pcofiber f →* Z) :
|
||||||
(g ∘* pcod f) ∘* f ~* pconst X Z :=
|
(g ∘* pcod f) ∘* f ~* pconst X Z :=
|
||||||
!passoc ⬝* pwhisker_left _ !pcod_pcompose ⬝* !pcompose_pconst
|
!passoc ⬝* pwhisker_left _ !pcod_pcompose ⬝* !pcompose_pconst
|
||||||
|
|
|
@ -59,7 +59,7 @@ namespace spherical_fibrations
|
||||||
begin
|
begin
|
||||||
intro X, cases X with X p,
|
intro X, cases X with X p,
|
||||||
apply sigma.mk (psusp X), induction p with f, apply tr,
|
apply sigma.mk (psusp X), induction p with f, apply tr,
|
||||||
apply susp.psusp_equiv f
|
apply susp.psusp_pequiv f
|
||||||
end
|
end
|
||||||
|
|
||||||
definition BF_of_BG {n : ℕ} : BG n → BF n :=
|
definition BF_of_BG {n : ℕ} : BG n → BF n :=
|
||||||
|
|
|
@ -8,6 +8,24 @@ open eq nat int susp pointed pmap sigma is_equiv equiv fiber algebra trunc trunc
|
||||||
definition add_comm_right {A : Type} [add_comm_semigroup A] (n m k : A) : n + m + k = n + k + m :=
|
definition add_comm_right {A : Type} [add_comm_semigroup A] (n m k : A) : n + m + k = n + k + m :=
|
||||||
!add.assoc ⬝ ap (add n) !add.comm ⬝ !add.assoc⁻¹
|
!add.assoc ⬝ ap (add n) !add.comm ⬝ !add.assoc⁻¹
|
||||||
|
|
||||||
|
structure is_exact_t {A B : Type} {C : Type*} (f : A → B) (g : B → C) :=
|
||||||
|
( im_in_ker : Π(a:A), g (f a) = pt)
|
||||||
|
( ker_in_im : Π(b:B), (g b = pt) → fiber f b)
|
||||||
|
|
||||||
|
structure is_exact {A B : Type} {C : Type*} (f : A → B) (g : B → C) :=
|
||||||
|
( im_in_ker : Π(a:A), g (f a) = pt)
|
||||||
|
( ker_in_im : Π(b:B), (g b = pt) → image f b)
|
||||||
|
|
||||||
|
definition is_exact_g {A B C : Group} (f : A →g B) (g : B →g C) :=
|
||||||
|
is_exact f g
|
||||||
|
|
||||||
|
definition is_exact_ag {A B C : AbGroup} (f : A →g B) (g : B →g C) :=
|
||||||
|
is_exact f g
|
||||||
|
|
||||||
|
definition is_exact_g.mk {A B C : Group} {f : A →g B} {g : B →g C}
|
||||||
|
(H₁ : Πa, g (f a) = 1) (H₂ : Πb, g b = 1 → image f b) : is_exact_g f g :=
|
||||||
|
is_exact.mk H₁ H₂
|
||||||
|
|
||||||
namespace algebra
|
namespace algebra
|
||||||
definition inf_group_loopn (n : ℕ) (A : Type*) [H : is_succ n] : inf_group (Ω[n] A) :=
|
definition inf_group_loopn (n : ℕ) (A : Type*) [H : is_succ n] : inf_group (Ω[n] A) :=
|
||||||
by induction H; exact _
|
by induction H; exact _
|
||||||
|
|
|
@ -930,7 +930,7 @@ namespace pointed
|
||||||
(ppcompose_left_loop_phomotopy' (pmap_of_map f x₀) !pconst) :=
|
(ppcompose_left_loop_phomotopy' (pmap_of_map f x₀) !pconst) :=
|
||||||
begin
|
begin
|
||||||
fapply phomotopy.mk,
|
fapply phomotopy.mk,
|
||||||
{ esimp, esimp [pmap_eq_equiv], intro p,
|
{ esimp, intro p,
|
||||||
refine _ ⬝ ap011 (λx y, phomotopy_of_eq (ap1_gen _ x y _))
|
refine _ ⬝ ap011 (λx y, phomotopy_of_eq (ap1_gen _ x y _))
|
||||||
proof !eq_of_phomotopy_refl⁻¹ qed proof !eq_of_phomotopy_refl⁻¹ qed,
|
proof !eq_of_phomotopy_refl⁻¹ qed proof !eq_of_phomotopy_refl⁻¹ qed,
|
||||||
refine _ ⬝ ap phomotopy_of_eq !ap1_gen_idp_left⁻¹,
|
refine _ ⬝ ap phomotopy_of_eq !ap1_gen_idp_left⁻¹,
|
||||||
|
|
Loading…
Reference in a new issue