Built with Alectryon, running Coq+SerAPI v8.19.0+0.19.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Require Import Truncations.Core.Require Import WildCat.Core Pointed.Require Import Groups.Group Groups.Subgroup.Require Import Homotopy.ExactSequence Modalities.Identity.(** * Complexes of groups *)Definitiongrp_cxfib {ABC : Group} {i : A $-> B} {f : B $-> C} (cx : IsComplex i f)
: GroupHomomorphism A (grp_kernel f)
:= grp_kernel_corec _ cx.Definitiongrp_iso_cxfib {ABC : Group} {i : A $-> B} {f : B $-> C}
`{IsEmbedding i} (ex : IsExact (Tr (-1)) i f)
: GroupIsomorphism A (grp_kernel f)
:= Build_GroupIsomorphism _ _ (grp_cxfib cx_isexact) (isequiv_cxfib ex).(** This is the same proof as for [equiv_cxfib_beta], but giving the proof is easier than specializing the general result. *)
A, B, C: Group i: A $-> B f: B $-> C IsEmbedding0: IsEmbedding i ex: IsExact (Tr (-1)) i f
i $o grp_iso_inverse (grp_iso_cxfib ex) $==
subgroup_incl (grp_kernel f)
A, B, C: Group i: A $-> B f: B $-> C IsEmbedding0: IsEmbedding i ex: IsExact (Tr (-1)) i f
i $o grp_iso_inverse (grp_iso_cxfib ex) $==
subgroup_incl (grp_kernel f)
A, B, C: Group i: A $-> B f: B $-> C IsEmbedding0: IsEmbedding i ex: IsExact (Tr (-1)) i f
IsEquiv ?Goal0
A, B, C: Group i: A $-> B f: B $-> C IsEmbedding0: IsEmbedding i ex: IsExact (Tr (-1)) i f
existstt; apply path_ishprop.Defined.(** A complex 0 -> A -> B is purely exact if and only if the kernel of the map A -> B is trivial. *)Definitionequiv_grp_isexact_kernel `{Univalence} {A B : Group} (f : A $-> B)
: IsExact purely (grp_trivial_rec A) f <~> IsTrivialGroup (grp_kernel f)
:= (equiv_istrivial_kernel_isembedding f)^-1%equiv
oE equiv_iff_hprop_uncurried (iff_grp_isexact_isembedding f).