# Invariant Theory

- [Introduction](introduction.md)

- [Invariant Rings of Finite Groups](invariant-ring.md)

  - [Creation](invariant-ring.md#creation)

    - [`InvariantRing(G): GrpMat → RngInvar`](invariant-ring.md#function-rnginvar-invariantring)

    - [`InvariantRing(G, K): GrpPerm, Fld → RngInvar`](invariant-ring.md#function-invariantring-grpperm-fld)

  - [Access](invariant-ring.md#access)

    - [`Group(R): RngInvar → Grp`](invariant-ring.md#function-group-rnginvar)

    - [`CoefficientRing(R): RngInvar → Grp`](invariant-ring.md#function-coefficientring-rnginvar)

    - [`CoefficientField(R): RngInvar → Rng`](invariant-ring.md#function-coefficientfield-rnginvar)

    - [`PolynomialRing(R): RngInvar → RngMPol`](invariant-ring.md#function-polynomialring-rnginvar)

    - [`f in R: RngMPol, RngInvar → FldFunUElt, ModMPolElt`](invariant-ring.md#operation-op-in-rngmpol-rnginvar)

- [Group Actions on Polynomials](group-action.md)

- [Permutation Group Actions on Polynomials](permutation.md)

  - [`f ^ g: RngMPolElt, GrpPermElt → RngMPolElt`](permutation.md#operation-op-pow-rngmpolelt-grppermelt)

  - [`f ^ G: RngMPolElt, GrpPerm → { RngMPolElt }`](permutation.md#operation-op-pow-rngmpolelt-grpperm)

  - [`IsInvariant(f, g): RngMPolElt, GrpElt → BoolElt`](permutation.md#function-isinvariant-rngmpolelt-grpelt)

  - [`IsInvariant(f, G): RngMPolElt, Grp → BoolElt`](permutation.md#function-isinvariant-rngmpolelt-grp)

- [Matrix Group Actions on Polynomials](matrix.md)

  - [`f ^ a: RngMPolElt, GrpMatElt → RngMPolElt`](matrix.md#operation-op-pow-rngmpolelt-grpmatelt)

  - [`f ^ G: RngMPolElt, GrpMat → { RngMPolElt }`](matrix.md#operation-op-pow-rngmpolelt-grpmat)

  - [`Example: Group Actions`](matrix.md#example-ex-df3c71)

- [Algebraic Group Actions on Polynomials](algebraic.md)

- [Verbosity](verbose.md)

  - [`SetVerbose("Invariants", v): MonStgElt, RngIntElt`](verbose.md#function-setverbose-monstgelt-rngintelt)

- [Construction of Invariants of Specified Degree](invariants.md)

  - [`ReynoldsOperator(f, G): RngMPolElt, GrpMat → RngMPolElt`](invariants.md#function-reynoldsoperator-rngmpolelt-grpmat)

  - [`InvariantsOfDegree(R, d): RngInvar, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-rnginvar-rngintelt)

  - [`InvariantsOfDegree(G, d): GrpMat, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-grpmat-rngintelt)

  - [`InvariantsOfDegree(G, K, d): GrpPerm, Fld, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-grpperm-fld-rngintelt)

  - [`InvariantsOfDegree(G, P, d): GrpMat, RngMPol, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-grpmat-rngmpol-rngintelt)

  - [`InvariantsOfDegree(G, P, d): GrpPerm, RngMPol, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-grpperm-rngmpol-rngintelt)

  - [`InvariantsOfDegree(R, d, k): RngInvar, RngIntElt, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-rnginvar-rngintelt-rngintelt)

  - [`InvariantsOfDegree(G, d, k): GrpMat, RngIntElt, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-grpmat-rngintelt-rngintelt)

  - [`InvariantsOfDegree(G, K, d, k): GrpPerm, Fld, RngIntElt, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-grpperm-fld-rngintelt-rngintelt)

  - [`InvariantsOfDegree(G, P, d, k): GrpPerm, RngMPol, RngIntElt, RngIntElt → [ RngMPolElt ]`](invariants.md#function-invariantsofdegree-grpperm-rngmpol-rngintelt-rngintelt)

  - [`Example: Invariants Of Degree`](invariants.md#example-ex-5b0d55)

  - [`SetAllInvariantsOfDegree(R, d, Q): RngInvar, RngIntElt, [ RngMPolElt ]`](invariants.md#function-setallinvariantsofdegree-rnginvar-rngintelt-rngmpolelt)

  - [`Example: Invariants Of Degree`](invariants.md#example-ex-dd87c1)

- [Construction of $G$-modules](gmodule.md)

  - [`GModule(G, P, d): Grp, RngMPol, RngIntElt → ModGrp, Map, {@ RngMPolElt @}`](gmodule.md#function-gmodule-grp-rngmpol-rngintelt)

  - [`GModule(G, I, J): Grp, RngMPol, RngMPol → ModGrp, Map, {@ RngMPolElt @}`](gmodule.md#function-gmodule-grp-rngmpol-rngmpol)

  - [`GModule(G, Q): Grp, RngMPolRes → ModGrp, Map, {@ RngMPolElt @}`](gmodule.md#function-gmodule-grp-rngmpolres)

  - [`Example: G Module`](gmodule.md#example-ex-393820)

- [Molien Series](molien.md)

  - [`MolienSeries(G): GrpMat → FldFunUElt`](molien.md#function-molienseries-grpmat)

  - [`MolienSeries(G): GrpPerm → FldFunUElt`](molien.md#function-molienseries-grpperm)

  - [`MolienSeriesApproximation(G, n): GrpPerm, RngIntElt → RngSerLaurElt`](molien.md#function-molienseriesapproximation-grpperm-rngintelt)

  - [`Example: Molien Series`](molien.md#example-ex-cbf09f)

- [Primary Invariants](primary.md)

  - [`PrimaryInvariants(R): RngInvar → [ RngMPolElt ]`](primary.md#function-rnginvar-primaryinvariants)

  - [`Example: Adem Milgram`](primary.md#example-ex-93d2b8)

- [Secondary Invariants](secondary.md)

  - [`SecondaryInvariants(R): RngInvar → [ RngMPolElt ]`](secondary.md#function-secondaryinvariants-rnginvar)

  - [`SecondaryInvariants(R, H): RngInvar, Grp → [ RngMPolElt ]`](secondary.md#function-secondaryinvariants-rnginvar-grp)

  - [`IrreducibleSecondaryInvariants(R): RngInvar → [ RngMPolElt ]`](secondary.md#function-irreduciblesecondaryinvariants-rnginvar)

  - [`Example: Secondary Invariants`](secondary.md#example-ex-4cf4d4)

- [Fundamental Invariants](fundamental.md)

  - [`FundamentalInvariants(R): RngInvar → [ RngMPolElt ]`](fundamental.md#function-fundamentalinvariants-rnginvar)

  - [`Example: Fundamental Invariants`](fundamental.md#example-ex-4519e0)

  - [`Example: Transitive Groups Degree7`](fundamental.md#example-ex-ea0676)

  - [`Example: S5Degree10`](fundamental.md#example-ex-b8dda0)

- [The Module of an Invariant Ring](module.md)

  - [`Module(R): RngInvar → ModMPol, Map`](module.md#function-module-rnginvar)

  - [`Example: Module`](module.md#example-ex-822234)

- [The Algebra of an Invariant Ring and Algebraic Relations](algebra-relations.md)

  - [`Algebra(R): RngInvar → RngMPol, [ RngMPolElt ]`](algebra-relations.md#function-algebra-rnginvar)

  - [`Relations(R): RngInvar → [ RngMPolElt ]`](algebra-relations.md#function-relations-rnginvar)

  - [`RelationIdeal(R): RngInvar → RngMPol`](algebra-relations.md#function-relationideal-rnginvar)

  - [`PrimaryAlgebra(R): RngInvar → RngMPol`](algebra-relations.md#function-primaryalgebra-rnginvar)

  - [`PrimaryIdeal(R): RngInvar → RngMPol`](algebra-relations.md#function-primaryideal-rnginvar)

  - [`Example: Relations`](algebra-relations.md#example-ex-899101)

- [Properties of Invariant Rings](properties.md)

  - [`HilbertSeries(R): RngInvar → FldFunUElt`](properties.md#function-hilbertseries-rnginvar)

  - [`HilbertSeriesApproximation(R, n): RngInvar, RngIntElt → RngSerLaurElt`](properties.md#function-hilbertseriesapproximation-rnginvar-rngintelt)

  - [`IsCohenMacaulay(R): RngInvar → BoolElt`](properties.md#function-iscohenmacaulay-rnginvar)

  - [`FreeResolution(R): RngInvar → [ ModMPol ]`](properties.md#function-freeresolution-rnginvar)

  - [`MinimalFreeResolution(R): RngInvar → [ ModMPol ]`](properties.md#function-minimalfreeresolution-rnginvar)

  - [`HomologicalDimension(R): RngInvar → RngInt`](properties.md#function-homologicaldimension-rnginvar)

  - [`Depth(R): RngInvar → RngIntElt`](properties.md#function-depth-rnginvar)

  - [`Example: Depth`](properties.md#example-ex-6d79cb)

- [Steenrod Operations](steenrod.md)

  - [`SteenrodOperation(f, i): RngMPolElt, RngIntElt → RngMPolElt`](steenrod.md#function-steenrodoperation-rngmpolelt-rngintelt)

  - [`Example: Steenrod Operation`](steenrod.md#example-ex-dbbce3)

- [Minimalization and Homogeneous Module Testing](minimalize-module.md)

  - [`MinimalAlgebraGenerators(L): [ RngMPol ] → [ RngMPol ]`](minimalize-module.md#function-minimalalgebragenerators-rngmpol)

  - [`MinimalAlgebraGenerators(L): { RngMPol } → [ RngMPol ]`](minimalize-module.md#function-minimalalgebragenerators-rngmpol-2)

  - [`HomogeneousModuleTest(P, S, F): [ RngMPol ], [ RngMPol ], RngMPol → BoolElt, [ RngMPol ]`](minimalize-module.md#function-homogeneousmoduletest-rngmpol-rngmpol-rngmpol)

  - [`HomogeneousModuleTest(P, S, L): [ RngMPol ], [ RngMPol ], [ RngMPol ] → [ Bool Elt ], [ [ RngMPol ] ]`](minimalize-module.md#function-homogeneousmoduletest-rngmpol-rngmpol-rngmpol-2)

  - [`Example: Minimal Algebra Generators`](minimalize-module.md#example-ex-4ad419)

  - [`Example: Homogeneous Module Test2`](minimalize-module.md#example-ex-4f66d4)

- [Attributes of Invariant Rings and Fields](attributes.md)

  - [`R`PrimaryInvariants`](attributes.md#literal-literal-primaryinvariants-r-primaryinvariants)

  - [`R`SecondaryInvariants`](attributes.md#literal-literal-secondaryinvariants-r-secondaryinvariants)

  - [`R`HilbertSeries`](attributes.md#literal-literal-hilbertseries-r-hilbertseries)

  - [`Example: Attributes`](attributes.md#example-ex-20324a)

- [Invariant Rings of Linear Algebraic Groups](invariant-ring-algebraic.md)

  - [Creation](invariant-ring-algebraic.md#creation)

    - [`InvariantRing(I, A): RngMPol, Mtrx → RngInvar`](invariant-ring-algebraic.md#function-invariantring-rngmpol-mtrx)

    - [`BinaryForms(N, p): [RngIntElt], RngIntElt → RngMPol, [[RngMPolElt]], RngMPol`](invariant-ring-algebraic.md#function-binaryforms-rngintelt-rngintelt)

    - [`BinaryForms(n, p): RngIntElt, RngIntElt → RngMPol, [[RngMPolElt]], RngMPol`](invariant-ring-algebraic.md#function-binaryforms-rngintelt-rngintelt-2)

  - [Access](invariant-ring-algebraic.md#access)

    - [`GroupIdeal(R): RngInvar → RngMPol`](invariant-ring-algebraic.md#function-groupideal-rnginvar)

    - [`Representation(R): RngInvar → Mtrx`](invariant-ring-algebraic.md#function-representation-rnginvar)

  - [Functions](invariant-ring-algebraic.md#functions)

    - [`InvariantsOfDegree(R, d): RngInvar, RngIntElt → [ RngMPolElt ]`](invariant-ring-algebraic.md#function-invariantsofdegree-rnginvar-rngintelt-2)

    - [`FundamentalInvariants(R): RngInvar → RngMPol`](invariant-ring-algebraic.md#function-fundamentalinvariants-rnginvar-2)

    - [`DerksenIdeal(R): RngInvar → [RngMPolElt]`](invariant-ring-algebraic.md#function-derksenideal-rnginvar)

    - [`HilbertIdeal(R): RngInvar → RngMPol`](invariant-ring-algebraic.md#function-hilbertideal-rnginvar)

    - [`Example: SL2 Invar`](invariant-ring-algebraic.md#example-ex-ff4ed2)

    - [`Example: SL2 Tensor`](invariant-ring-algebraic.md#example-ex-893b15)

    - [`Example: Alg Group1`](invariant-ring-algebraic.md#example-ex-06a17f)

    - [`Example: Alg Group2`](invariant-ring-algebraic.md#example-ex-9a36c2)

- [Invariant Fields](invariant-field.md)

  - [Creation](invariant-field.md#creation)

    - [`InvariantField(G, K): GrpPerm, Fld → FldInvar`](invariant-field.md#function-invariantfield-grpperm-fld)

    - [`InvariantField(G): GrpMat → RngInvar`](invariant-field.md#function-invariantfield-grpmat)

    - [`InvariantField(I, A): RngMPol, Mtrx → FldInvar`](invariant-field.md#function-invariantfield-rngmpol-mtrx)

  - [Access](invariant-field.md#access)

    - [`FunctionField(F): FldInvar → FldFunRat`](invariant-field.md#function-functionfield-fldinvar)

    - [`Group(F): FldInvar → Grp`](invariant-field.md#function-group-fldinvar)

    - [`GroupIdeal(F): FldInvar → RngMPol`](invariant-field.md#function-groupideal-fldinvar)

    - [`Representation(F): FldInvar → Mtrx`](invariant-field.md#function-representation-fldinvar)

  - [Functions for Invariant Fields](invariant-field.md#functions-for-invariant-fields)

    - [`FundamentalInvariants(F): FldInvar → RngMPol`](invariant-field.md#function-fundamentalinvariants-fldinvar)

    - [`DerksenIdeal(F): FldInvar → RngMPol`](invariant-field.md#function-derksenideal-fldinvar)

    - [`MinimizeGenerators(L): [FldFunRatElt] → [FldFunRatElt]`](invariant-field.md#function-rnginvar-minimizegenerators)

    - [`QuadeIdeal(L): [FldFunRatElt] → RngMPol`](invariant-field.md#function-quadeideal-fldfunratelt)

    - [`Example: Invar Field1`](invariant-field.md#example-ex-41006c)

    - [`Example: Invar Field2`](invariant-field.md#example-ex-27b1e3)

- [Invariants of the Symmetric Group](symmetric.md)

  - [`ElementarySymmetricPolynomial(P, k): RngMPol, RngIntElt → RngMPolElt`](symmetric.md#function-elementarysymmetricpolynomial-rngmpol-rngintelt)

  - [`IsSymmetric(f): RngMPolElt → BoolElt, RngMPolElt`](symmetric.md#function-issymmetric-rngmpolelt)

  - [`IsSymmetric(f, S): RngMPolElt, RngMPol → BoolElt, RngMPolElt`](symmetric.md#function-issymmetric-rngmpolelt-rngmpol)

  - [`Example: Is Symmetric`](symmetric.md#example-ex-e5b1eb)
