# Lattices with Group Action

- [Introduction](introduction.md)

- [Automorphism Group and Isometry Testing](auto-isom.md)

  - [`AutomorphismGroup(L): Lat → GrpMat`](auto-isom.md#function-automorphismgroup-lat)

  - [`ProperAutomorphismGroup(L): Lat → GrpMat`](auto-isom.md#function-properautomorphismgroup-lat)

  - [`AutomorphismGroup(L, F): Lat, [ AlgMatElt ] → GrpMat`](auto-isom.md#function-automorphismgroup-lat-algmatelt)

  - [`AutomorphismGroup(L, F): Lat, { AlgMatElt } → GrpMat`](auto-isom.md#function-automorphismgroup-lat-algmatelt-2)

  - [`AutomorphismGroup(F): [ AlgMatElt ] → GrpMat`](auto-isom.md#function-automorphismgroup-algmatelt)

  - [`Example: Auto Action`](auto-isom.md#example-ex-2d044f)

  - [`Example: Auto L19`](auto-isom.md#example-ex-c6d08f)

  - [`IsIsometric(L, M): Lat, Lat → BoolElt, AlgMatElt`](auto-isom.md#function-isisometric-lat-lat)

  - [`IsIsomorphic(L, M): Lat, Lat → BoolElt, AlgMatElt`](auto-isom.md#function-isisomorphic-lat-lat)

  - [`IsProperlyIsometric(L, M): Lat, Lat → BoolElt, AlgMatElt`](auto-isom.md#function-isproperlyisometric-lat-lat)

  - [`IsIsometric(L, F₁, M, F₂): Lat, [ AlgMatElt ], Lat, [ AlgMatElt ] → BoolElt, AlgMatElt`](auto-isom.md#function-isisometric-lat-algmatelt-lat-algmatelt)

  - [`IsIsomorphic(L, F₁, M, F₂): Lat, [ AlgMatElt ], Lat, [ AlgMatElt ] → BoolElt, AlgMatElt`](auto-isom.md#function-isisomorphic-lat-algmatelt-lat-algmatelt)

  - [`IsIsometric(L, M): Lat, Lat → BoolElt, AlgMatElt`](auto-isom.md#function-isisometric-lat-lat-2)

  - [`IsIsomorphic(L, M): Lat, Lat → BoolElt, AlgMatElt`](auto-isom.md#function-isisomorphic-lat-lat-2)

  - [`IsIsometric(F₁, F₂): [ AlgMatElt ], [ AlgMatElt ] → BoolElt, AlgMatElt`](auto-isom.md#function-isisometric-algmatelt-algmatelt)

  - [`IsIsomorphic(F₁, F₂): [ AlgMatElt ], [ AlgMatElt ] → BoolElt, AlgMatElt`](auto-isom.md#function-isisomorphic-algmatelt-algmatelt)

  - [`Example: Isom`](auto-isom.md#example-ex-b3397d)

  - [Automorphism Group and Isometry Testing over ${\mathbb{F}}_q[t]$](auto-isom.md#automorphism-group-and-isometry-testing-over-mathbb-f-q-t)

    - [`DominantDiagonalForm(X): Mtrx[RngUPol] → Mtrx, Mtrx, GrpMat, FldFin`](auto-isom.md#function-dominantdiagonalform-mtrx-rngupol)

    - [`Example: DDF Fqt`](auto-isom.md#example-ex-898cdb)

    - [`AutomorphismGroup(G): Mtrx[RngUPol] → GrpMat, FldFin`](auto-isom.md#function-automorphismgroup-mtrx-rngupol)

    - [`IsIsometric(G1, G2): Mtrx[RngUPol], Mtrx[RngUPol] → BoolElt, Mtrx, FldFin`](auto-isom.md#function-isisometric-mtrx-rngupol-mtrx-rngupol)

    - [`ShortestVectors(G): Mtrx[RngUPol] → SeqEnum`](auto-isom.md#function-shortestvectors-mtrx-rngupol)

    - [`ShortVectors(G, B): Mtrx[RngUPol], RngIntElt → SeqEnum`](auto-isom.md#function-shortvectors-mtrx-rngupol-rngintelt)

- [Lattices from Matrix Groups](G-lattices.md)

  - [Creation of $G$-Lattices](G-lattices.md#creation-of-g-lattices)

    - [`Lattice(G): GrpMat → Lat`](G-lattices.md#function-lattice-grpmat)

    - [`LatticeWithBasis(G, B): GrpMat, ModMatRngElt → Lat`](G-lattices.md#function-latticewithbasis-grpmat-modmatrngelt)

    - [`LatticeWithBasis(G, B, M): GrpMat, ModMatRngElt, AlgMatElt → Lat`](G-lattices.md#function-latticewithbasis-grpmat-modmatrngelt-algmatelt)

    - [`LatticeWithGram(G, F): GrpMat, AlgMatElt → Lat`](G-lattices.md#function-latticewithgram-grpmat-algmatelt)

  - [Operations on $G$-Lattices](G-lattices.md#operations-on-g-lattices)

    - [`IsGLattice(L): Lat → GrpMat`](G-lattices.md#function-isglattice-lat)

    - [`Group(L): Lat → GrpMat`](G-lattices.md#function-group-lat)

    - [`NumberOfActionGenerators(L): Lat → RngIntElt`](G-lattices.md#function-numberofactiongenerators-lat)

    - [`Nagens(L): Lat → RngIntElt`](G-lattices.md#function-nagens-lat)

    - [`ActionGenerator(L, i): Lat, RngIntElt → GrpMat`](G-lattices.md#function-actiongenerator-lat-rngintelt)

    - [`NaturalGroup(L): Lat → GrpMat`](G-lattices.md#function-naturalgroup-lat)

    - [`NaturalActionGenerator(L, i): Lat, RngIntElt → GrpMat`](G-lattices.md#function-naturalactiongenerator-lat-rngintelt)

  - [Invariant Forms](G-lattices.md#invariant-forms)

    - [`InvariantForms(L): Lat → [ AlgMatElt ]`](G-lattices.md#function-invariantforms-lat)

    - [`InvariantForms(L, n): Lat, RngIntElt → [ AlgMatElt ]`](G-lattices.md#function-invariantforms-lat-rngintelt)

    - [`SymmetricForms(L): Lat → [ AlgMatElt ]`](G-lattices.md#function-symmetricforms-lat)

    - [`SymmetricForms(L, n): Lat, RngIntElt → [ AlgMatElt ]`](G-lattices.md#function-symmetricforms-lat-rngintelt)

    - [`AntisymmetricForms(L): Lat → [ AlgMatElt ]`](G-lattices.md#function-antisymmetricforms-lat)

    - [`AntisymmetricForms(L, n): Lat, RngIntElt → [ AlgMatElt ]`](G-lattices.md#function-antisymmetricforms-lat-rngintelt)

    - [`NumberOfInvariantForms(L): Lat → RngIntElt, RngIntElt`](G-lattices.md#function-numberofinvariantforms-lat)

    - [`NumberOfSymmetricForms(L): Lat → RngIntElt`](G-lattices.md#function-numberofsymmetricforms-lat)

    - [`NumberOfAntisymmetricForms(L): Lat → RngIntElt`](G-lattices.md#function-numberofantisymmetricforms-lat)

    - [`PositiveDefiniteForm(L): Lat → AlgMatElt`](G-lattices.md#function-positivedefiniteform-lat)

  - [Endomorphisms](G-lattices.md#endomorphisms)

    - [`EndomorphismRing(L): Lat → AlgMat`](G-lattices.md#function-endomorphismring-lat)

    - [`Endomorphisms(L, n): Lat, RngIntElt → [ AlgMatElt ]`](G-lattices.md#function-endomorphisms-lat-rngintelt)

    - [`DimensionOfEndomorphismRing(L): Lat → RngIntElt`](G-lattices.md#function-dimensionofendomorphismring-lat)

    - [`CentreOfEndomorphismRing(L): Lat → AlgMat`](G-lattices.md#function-centreofendomorphismring-lat)

    - [`CentralEndomorphisms(L, n): Lat, RngIntElt → [ AlgMatElt ]`](G-lattices.md#function-centralendomorphisms-lat-rngintelt)

    - [`DimensionOfCentreOfEndomorphismRing(L): Lat → RngIntElt`](G-lattices.md#function-dimensionofcentreofendomorphismring-lat)

  - [$G$-invariant Sublattices](G-lattices.md#g-invariant-sublattices)

    - [`Sublattices(G, Q): GrpMat, [ RngIntElt ] → [ Lat ], BoolElt`](G-lattices.md#function-sublattices-grpmat-rngintelt)

    - [`Sublattices(G, Q): [ Mtrx ], [ RngIntElt ] → [ Lat ], BoolElt`](G-lattices.md#function-sublattices-mtrx-rngintelt)

    - [`Sublattices(L, Q): Lat, [ RngIntElt ] → [ Lat ], BoolElt`](G-lattices.md#function-sublattices-lat-rngintelt)

    - [`Sublattices(G, p): GrpMat, RngIntElt → [ Lat ], BoolElt`](G-lattices.md#function-sublattices-grpmat-rngintelt-2)

    - [`Sublattices(L, p): Lat, RngIntElt → [ Lat ], BoolElt`](G-lattices.md#function-sublattices-lat-rngintelt-2)

    - [`Sublattices(G): GrpMat → [ Lat ], BoolElt`](G-lattices.md#function-sublattices-grpmat)

    - [`Sublattices(L): Lat → [ Lat ], BoolElt`](G-lattices.md#function-sublattices-lat)

    - [`SublatticeClasses(G): GrpMat → [ Lat ]`](G-lattices.md#function-sublatticeclasses-grpmat)

    - [`Example: Sublattices`](G-lattices.md#example-ex-ecd505)

    - [`Example: Sublattices2`](G-lattices.md#example-ex-e8ccf0)

  - [Lattice of Sublattices](G-lattices.md#lattice-of-sublattices)

    - [Creating the Lattice of Sublattices](G-lattices.md#creating-the-lattice-of-sublattices)

      - [`SublatticeLattice(G, Q): GrpMat, [ RngIntElt ] → LatLat, BoolElt`](G-lattices.md#function-sublatticelattice-grpmat-rngintelt)

      - [`SublatticeLattice(G, Q): [ Mtrx ], [ RngIntElt ] → LatLat, BoolElt`](G-lattices.md#function-sublatticelattice-mtrx-rngintelt)

      - [`SublatticeLattice(G, p): GrpMat, RngIntElt → LatLat, BoolElt`](G-lattices.md#function-sublatticelattice-grpmat-rngintelt-2)

      - [`SublatticeLattice(G, p): [ Mtrx ], RngIntElt → LatLat, BoolElt`](G-lattices.md#function-sublatticelattice-mtrx-rngintelt-2)

      - [`SublatticeLattice(G): GrpMat → LatLat, BoolElt`](G-lattices.md#function-sublatticelattice-grpmat)

      - [`Example: Sublattice Lattice Create`](G-lattices.md#example-ex-bee7b0)

    - [Operations on the Lattice of Sublattices](G-lattices.md#operations-on-the-lattice-of-sublattices)

      - [`# V: LatLat → RngIntElt`](G-lattices.md#operation-operation-latlat-rngintelt)

      - [`V ! i: LatLat, RngIntElt → LatLatElt`](G-lattices.md#operation-op-latlat-rngintelt)

      - [`V ! M: LatLat, Lat → LatLatElt`](G-lattices.md#operation-op-latlat-lat)

      - [`V ! M: LatLat, Mtrx → LatLatElt`](G-lattices.md#operation-op-latlat-mtrx)

      - [`NumberOfLevels( V ): LatLat → RngIntElt`](G-lattices.md#function-numberoflevels-latlat)

      - [`Level(V, i): LatLat, RngIntElt → [ LatLatElt ]`](G-lattices.md#function-level-latlat-rngintelt)

      - [`Levels(v): LatLat → [ [LatLatElt] ]`](G-lattices.md#function-levels-latlat)

      - [`Primes(V): LatLat → [ RngIntElt ]`](G-lattices.md#function-primes-latlat)

      - [`Constituents(V): LatLat → SeqEnum`](G-lattices.md#function-constituents-latlat)

      - [`IntegerRing() ! e: RngInt, LatLatElt → RngIntElt`](G-lattices.md#operation-integerring-rngint-latlatelt)

      - [`e + f: LatLatElt, LatLatElt → LatLatElt`](G-lattices.md#operation-op-plus-latlatelt-latlatelt)

      - [`e meet f: LatLatElt, LatLatElt → LatLatElt`](G-lattices.md#operation-op-meet-latlatelt-latlatelt)

      - [`e eq f: LatLatElt, LatLatElt → BoolElt`](G-lattices.md#operation-op-eq-latlatelt-latlatelt)

      - [`MaximalSublattices(e): LatLatElt → [ LatLatElt ], [ RngIntElt ]`](G-lattices.md#function-maximalsublattices-latlatelt)

      - [`MinimalSuperlattices(e): LatLatElt → [ LatLatElt ], [ RngIntElt ]`](G-lattices.md#function-minimalsuperlattices-latlatelt)

      - [`Lattice(e): SubModLatElt → Lat`](G-lattices.md#function-lattice-submodlatelt)

      - [`BasisMatrix(e): SubModLatElt → Mtrx`](G-lattices.md#function-basismatrix-submodlatelt)

      - [`Morphism(e): SubModLatElt → Mtrx`](G-lattices.md#function-morphism-submodlatelt)

      - [`Example: Sublattice Lattice`](G-lattices.md#example-ex-f3a5a3)

      - [`Example: Sublattice Lattice2`](G-lattices.md#example-ex-573832)
