# Cohomology and Extensions

- [Introduction](intro.md)

- [Creation of a Cohomology Module](creation.md)

  - [`CohomologyModule(G, M): GrpPerm, ModGrp → ModCoho`](creation.md#function-grpcoh-cohomologymodule)

  - [`CohomologyModule(G, M): GrpPC, ModGrp → ModCoho`](creation.md#function-cohomologymodule-grppc-modgrp)

  - [`CohomologyModule(G, M): GrpMat, ModGrp → ModCoho`](creation.md#function-cohomologymodule-grpmat-modgrp)

  - [`CohomologyModule(G, M): GrpFP, ModGrp → ModCoho`](creation.md#function-cohomologymodule-grpfp-modgrp)

  - [`CohomologyModule(G, Q, T): GrpPerm, SeqEnum, SeqEnum → ModCoho`](creation.md#function-cohomologymodule-grpperm-seqenum-seqenum)

  - [`CohomologyModule(G, Q, T): GrpPC, SeqEnum, SeqEnum → ModCoho`](creation.md#function-cohomologymodule-grppc-seqenum-seqenum)

  - [`CohomologyModule(G, Q, T): GrpMat, SeqEnum, SeqEnum → ModCoho`](creation.md#function-cohomologymodule-grpmat-seqenum-seqenum)

  - [`CohomologyModule(G, Q, T): GrpFP, SeqEnum, SeqEnum → ModCoho`](creation.md#function-cohomologymodule-grpfp-seqenum-seqenum)

  - [`Example: Coho Module1`](creation.md#example-ex-8b4abf)

  - [`Example: Coho Module4`](creation.md#example-ex-233494)

  - [`Example: Coho Module2`](creation.md#example-ex-0c0fe6)

  - [`Example: Coho Module3`](creation.md#example-ex-e9e40a)

  - [`CohomologyModule(G, A, M): GrpPerm, GrpAb, Any → ModCoho`](creation.md#function-cohomologymodule-grpperm-grpab-any)

- [Accessing Properties of the Cohomology Module](structure-invar.md)

  - [`Module(CM): ModCoho → ModGrp`](structure-invar.md#function-module-modcoho)

  - [`Invariants(CM): ModCoho → SeqEnum`](structure-invar.md#function-invariants-modcoho)

  - [`Dimension(CM): ModCoho → RngIntElt`](structure-invar.md#function-dimension-modcoho)

  - [`Ring(CM): ModCoho → ModGrp`](structure-invar.md#function-ring-modcoho)

  - [`Group(CM): ModCoho → Grp`](structure-invar.md#function-group-modcoho)

  - [`FPGroup(CM): ModCoho → Grp, HomGrp`](structure-invar.md#function-fpgroup-modcoho)

  - [`MatrixOfElement(CM, g): ModCoho, GrpElt → AlgMatElt`](structure-invar.md#function-matrixofelement-modcoho-grpelt)

  - [`Example: Coho Module2cont`](structure-invar.md#example-ex-fdbfad)

- [Calculating Cohomology](cohomology-groups.md)

  - [`CohomologyGroup(CM, n): ModCoho, RngIntElt → ModTupRng`](cohomology-groups.md#function-cohomologygroup-modcoho-rngintelt)

  - [`Example: Coho Module2cont`](cohomology-groups.md#example-ex-68b620)

  - [`Example: Coho Module3cont`](cohomology-groups.md#example-ex-0db52b)

  - [`CohomologicalDimension(CM, n): ModCoho, RngIntElt → RngIntElt`](cohomology-groups.md#function-cohomologicaldimension-modcoho-rngintelt)

  - [`CohomologicalDimension(M, n): ModGrp, n → RngIntElt`](cohomology-groups.md#function-cohomologicaldimension-modgrp-n)

  - [`CohomologicalDimensions(M, n): ModGrp, n → RngIntElt`](cohomology-groups.md#function-cohomologicaldimensions-modgrp-n)

  - [`CohomologicalDimension(G, M, n): GrpPerm, ModRng, RngIntElt → RngIntElt`](cohomology-groups.md#function-cohomologicaldimension-grpperm-modrng-rngintelt)

  - [`H1Dimension(F, f, M): GrpFP, Map, ModGrp → RngIntElt`](cohomology-groups.md#function-h1dimension-grpfp-map-modgrp)

  - [`H1Dimension(G, f, K): GrpFP, Map, Rng → RngIntElt`](cohomology-groups.md#function-h1dimension-grpfp-map-rng)

  - [`H1DimensionSymmetricSquare(G, f, K): GrpFP, Map, Rng → RngIntElt`](cohomology-groups.md#function-h1dimensionsymmetricsquare-grpfp-map-rng)

  - [`H1DimensionExteriorSquare(G, f, K): GrpFP, Map, Rng → RngIntElt`](cohomology-groups.md#function-h1dimensionexteriorsquare-grpfp-map-rng)

  - [`Example: Coho Example`](cohomology-groups.md#example-ex-096719)

  - [`Example: Coho Module4 Cont`](cohomology-groups.md#example-ex-46f77b)

  - [`Example: More Difficult`](cohomology-groups.md#example-ex-023d07)

- [Cocycles](cocycles.md)

  - [`ZeroCocycle(CM, s): ModCoho, SeqEnum → UserProgram`](cocycles.md#function-zerococycle-modcoho-seqenum)

  - [`ZeroCocycle(CM, s): ModCoho, ModTupRngElt → UserProgram`](cocycles.md#function-zerococycle-modcoho-modtuprngelt)

  - [`IdentifyZeroCocycle(CM, s): ModCoho, UserProgram → ModTupRngElt`](cocycles.md#function-identifyzerococycle-modcoho-userprogram)

  - [`OneCocycle(CM, s): ModCoho, SeqEnum → UserProgram`](cocycles.md#function-onecocycle-modcoho-seqenum)

  - [`OneCocycle(CM, s): ModCoho, ModTupRngElt → UserProgram`](cocycles.md#function-onecocycle-modcoho-modtuprngelt)

  - [`IdentifyOneCocycle(CM, s): ModCoho, UserProgram → ModTupRngElt`](cocycles.md#function-identifyonecocycle-modcoho-userprogram)

  - [`IsOneCoboundary(CM, s): ModCoho, UserProgram → BoolElt, UserProgram`](cocycles.md#function-isonecoboundary-modcoho-userprogram)

  - [`TwoCocycle(CM, s): ModCoho, SeqEnum → UserProgram`](cocycles.md#function-twococycle-modcoho-seqenum)

  - [`TwoCocycle(CM, s): ModCoho, ModTupRngElt → UserProgram`](cocycles.md#function-twococycle-modcoho-modtuprngelt)

  - [`IdentifyTwoCocycle(CM, s): ModCoho, UserProgram → ModTupRngElt`](cocycles.md#function-identifytwococycle-modcoho-userprogram)

  - [`IsTwoCoboundary(CM, s): ModCoho, UserProgram → BoolElt, UserProgram`](cocycles.md#function-istwocoboundary-modcoho-userprogram)

  - [`Example: cocycles`](cocycles.md#example-ex-d41d4c)

- [The Restriction to a Subgroup](restriction.md)

  - [`Restriction(CM, H): ModCoho, Grp → ModCoho`](restriction.md#function-restriction-modcoho-grp)

  - [`Example: restriction`](restriction.md#example-ex-a1fddf)

- [Other Operations on Cohomology Modules](other-operations.md)

  - [`CorestrictionMapImage(G, C, c, i): Grp, ModCoho, UserProgram, RngIntElt → UserProgram`](other-operations.md#function-corestrictionmapimage-grp-modcoho-userprogram-rngintelt)

  - [`CorestrictCocycle(G, C, c, i): Grp, ModCoho, UserProgram, RngIntElt → UserProgram`](other-operations.md#function-corestrictcocycle-grp-modcoho-userprogram-rngintelt)

  - [`InflationMapImage(M, c): Map, UserProgram → UserProgram`](other-operations.md#function-inflationmapimage-map-userprogram)

  - [`LiftCocycle(M, c): Map, UserProgram → UserProgram`](other-operations.md#function-liftcocycle-map-userprogram)

  - [`CoboundaryMapImage(M, i, c): ModCoho, RngIntElt, UserProgram → UserProgram`](other-operations.md#function-coboundarymapimage-modcoho-rngintelt-userprogram)

- [Constructing Extensions](extensions.md)

  - [`Extension(CM, s): ModCoho, SeqEnum → Grp, HomGrp, Map`](extensions.md#function-grpcoh-extension)

  - [`Extension(CM, s): ModCoho, ModTupRngElt → Grp, HomGrp, Map`](extensions.md#function-extension-modcoho-modtuprngelt)

  - [`Extension(GrpPerm, CM, s): Cat, ModCoho, SeqEnum → GrpPerm, HomGrp, Map`](extensions.md#function-extension-cat-modcoho-seqenum)

  - [`Extension(GrpPerm, CM, s): Cat, ModCoho, ModTupRngElt → GrpPerm, HomGrp, Map`](extensions.md#function-extension-cat-modcoho-modtuprngelt)

  - [`Example: A7cover`](extensions.md#example-ex-f0c0e3)

  - [`Example: Dempwolff`](extensions.md#example-ex-a52bf2)

  - [`SplitExtension(CM): ModCoho → Grp, HomGrp, Map`](extensions.md#function-splitextension-modcoho)

  - [`SplitExtension(G, M): ModCoho → Grp, ModGrp -> HomGrp, Map`](extensions.md#function-splitextension-modcoho-2)

  - [`SplitExtension(M): ModCoho → ModGrp -> HomGrp, Map`](extensions.md#function-splitextension-modcoho-3)

  - [`SplitExtension(GrpPerm,CM): Cat, ModCoho → GrpPerm, HomGrp, Map`](extensions.md#function-splitextension-cat-modcoho)

  - [`SplitExtension(GrpPerm,G,M): Cat, ModCoho → GrpPerm, HomGrp, Map`](extensions.md#function-splitextension-cat-modcoho-2)

  - [`SplitExtension(GrpPerm,M): Cat, ModCoho → GrpPerm, HomGrp, Map`](extensions.md#function-splitextension-cat-modcoho-3)

  - [`Example: Split Extension`](extensions.md#example-ex-b445d6)

  - [`Example: Split Extension`](extensions.md#example-ex-6ad635)

  - [`pMultiplicator(G, p): GrpPerm, RngIntElt → [ RngIntElt ]`](extensions.md#function-pmultiplicator-grpperm-rngintelt)

  - [`pCover(G, F, p): GrpPerm, GrpFP, RngIntElt → GrpFP`](extensions.md#function-pcover-grpperm-grpfp-rngintelt)

  - [`Example: straightforward`](extensions.md#example-ex-f7eaba)

  - [`Example: Nonsplit 2^5.L 5(2)`](extensions.md#example-ex-1cc4cf)

  - [`Example: Module Integers`](extensions.md#example-ex-75b180)

- [Constructing Distinct Extensions](extensions-2.md)

  - [`DistinctExtensions(CM): ModCoho → SeqEnum`](extensions-2.md#function-grpcoh-distinctextensions)

  - [`Example: Distinct Extensions`](extensions-2.md#example-ex-a94c9d)

  - [`ExtensionsOfElementaryAbelianGroup(p, d, G): RngIntElt, RngIntElt, GrpPerm → SeqEnum`](extensions-2.md#function-extensionsofelementaryabeliangroup-rngintelt-rngintelt-grpperm)

  - [`Example: Extensions Abelian`](extensions-2.md#example-ex-e97a7d)

  - [`ExtensionsOfSolubleGroup(H, G): GrpPerm, GrpPerm → SeqEnum`](extensions-2.md#function-extensionsofsolublegroup-grpperm-grpperm)

  - [`Example: Extensions Soluble`](extensions-2.md#example-ex-334528)

  - [`Example: Distinct Extensions`](extensions-2.md#example-ex-ff8afd)

  - [`IsExtensionOf(G): GrpPerm → [], {}`](extensions-2.md#function-grpcoh-isextensionof)

  - [`IsExtensionOf(L): [GrpPerm] → [], []`](extensions-2.md#function-isextensionof-grpperm)

- [Finite Group Cohomology](group-cohomology.md)

  - [Creation of Gamma-groups](group-cohomology.md#creation-of-gamma-groups)

    - [`GammaGroup(Gamma, A, action): Grp, Grp, Map[Grp, GrpAuto] → GGrp`](group-cohomology.md#function-gammagroup-grp-grp-map-grp-grpauto)

    - [`InducedGammaGroup(A, B): GGrp, Grp → GGrp`](group-cohomology.md#function-inducedgammagroup-ggrp-grp)

    - [`Example: create G Grp`](group-cohomology.md#example-ex-379641)

    - [`IsNormalised(B, action): Grp, Map → BoolElt`](group-cohomology.md#function-isnormalised-grp-map)

    - [`IsInduced(AmodB): GGrp → BoolElt, GGrp, GGrp, Map, Map`](group-cohomology.md#function-isinduced-ggrp)

  - [Accessing Information](group-cohomology.md#accessing-information)

    - [`Group(A): GGrp → Grp`](group-cohomology.md#function-group-ggrp)

    - [`GammaAction(A): GGrp → Map[Grp, GrpAuto]`](group-cohomology.md#function-gammaaction-ggrp)

    - [`ActingGroup(A): GGrp → Grp`](group-cohomology.md#function-actinggroup-ggrp)

  - [One Cocycles](group-cohomology.md#one-cocycles)

    - [`OneCocycle(A, imgs): GGrp, SeqEnum[GrpElt] → OneCoC`](group-cohomology.md#function-onecocycle-ggrp-seqenum-grpelt)

    - [`OneCocycle(A, alpha): GGrp, Map[Grp,Grp] → OneCoC`](group-cohomology.md#function-onecocycle-ggrp-map-grp-grp)

    - [`TrivialOneCocycle(A): GGrp → OneCoC`](group-cohomology.md#function-trivialonecocycle-ggrp)

    - [`IsOneCocycle(A, imgs): GGrp, SeqEnum[GrpElt] → BoolElt, OneCoC`](group-cohomology.md#function-isonecocycle-ggrp-seqenum-grpelt)

    - [`IsOneCocycle(A, alpha): GGrp, Map[Grp,Grp] → BoolElt, OneCoC`](group-cohomology.md#function-isonecocycle-ggrp-map-grp-grp)

    - [`AreCohomologous(alpha, beta): OneCoC, OneCoC → BoolElt, GrpElt`](group-cohomology.md#function-arecohomologous-onecoc-onecoc)

    - [`CohomologyClass(alpha): OneCoC → SetIndx[OneCoC]`](group-cohomology.md#function-cohomologyclass-onecoc)

    - [`InducedOneCocycle(AmodB, alpha): GGrp, OneCoC → OneCoC`](group-cohomology.md#function-inducedonecocycle-ggrp-onecoc)

    - [`InducedOneCocycle(A, B, alpha): GGrp, Grp, OneCoC → OneCoC`](group-cohomology.md#function-inducedonecocycle-ggrp-grp-onecoc)

    - [`ExtendedOneCocycle(alpha): OneCoC → SetEnum[OneCoC]`](group-cohomology.md#function-extendedonecocycle-onecoc)

    - [`ExtendedCohomologyClass(alpha): OneCoC → SetEnum[OneCoC]`](group-cohomology.md#function-extendedcohomologyclass-onecoc)

    - [`GammaGroup(alpha): OneCoC → GGrp`](group-cohomology.md#function-gammagroup-onecoc)

    - [`CocycleMap(alpha): OneCoC → Map`](group-cohomology.md#function-cocyclemap-onecoc)

  - [Group Cohomology](group-cohomology.md#one-cocycles-2)

    - [`Cohomology(A, n): GGrp, RngIntElt → SetEnum[OneCoC]`](group-cohomology.md#function-cohomology-ggrp-rngintelt)

    - [`OneCohomology(A): GGrp → SetEnum[OneCoC]`](group-cohomology.md#function-onecohomology-ggrp)

    - [`TwistedGroup(A, alpha): GGrp, OneCoC → GGrp`](group-cohomology.md#function-twistedgroup-ggrp-onecoc)

    - [`Example: large example`](group-cohomology.md#example-ex-82c924)
