# Modules over Dedekind Domains

- [Introduction](introduction.md)

- [Creation of Modules](creation.md)

  - [`Module(O, n): RngOrd, RngIntElt → ModDed`](creation.md#function-module-rngord-rngintelt)

  - [`Module(O, n): RngFunOrd, RngIntElt → ModDed`](creation.md#function-module-rngfunord-rngintelt)

  - [`Module(O): RngOrd → ModDed, Map`](creation.md#function-module-rngord)

  - [`Module(O): RngFunOrd → ModDed, Map`](creation.md#function-module-rngfunord)

  - [`Module(I): RngOrdFracIdl → ModDed, Map`](creation.md#function-module-rngordfracidl)

  - [`Module(I): RngFunOrdIdl → ModDed, Map`](creation.md#function-module-rngfunordidl)

  - [`Module(S): SeqEnum[Tup] → ModDed, Map`](creation.md#function-module-seqenum-tup)

  - [`Module(S): SeqEnum[RngOrdFracIdl] → ModDed`](creation.md#function-module-seqenum-rngordfracidl)

  - [`Module(S): SeqEnum[RngFunOrdIdl] → ModDed`](creation.md#function-module-seqenum-rngfunordidl)

  - [`Module(S): SeqEnum[ModElt] → ModDed, Map`](creation.md#function-module-seqenum-modelt)

  - [`Example: create`](creation.md#example-ex-5637aa)

  - [`sub<M | m>: ModDed, SeqEnum[ModDedElt] → ModDed, Map`](creation.md#constructor-constructor-sub-modded-seqenum-moddedelt-modded-map)

  - [`sub<M | m1, .., mn>: ModDed, ModDedElt, ..., ModDedElt → ModDed, Map`](creation.md#constructor-constructor-sub-modded-moddedelt-moddedelt-modded-map)

  - [`quo<M | S>: ModDed, ModDed → ModDed, Map`](creation.md#constructor-constructor-quo-modded-modded-modded-map)

  - [`quo<M | m>: ModDed, SeqEnum[ModDedElt] → ModDed, Map`](creation.md#constructor-constructor-quo-modded-seqenum-moddedelt-modded-map)

  - [`quo<M | m1, .., mn>: ModDed, ModDedElt, ..., ModDedElt → ModDed, Map`](creation.md#constructor-constructor-quo-modded-moddedelt-moddedelt-modded-map)

  - [`Example: Sub Quo`](creation.md#example-ex-90c9d8)

- [Elementary Functions](elementary-functions.md)

  - [`BaseRing(M): ModDed → Rng`](elementary-functions.md#function-basering-modded)

  - [`CoefficientRing(M): ModDed → Rng`](elementary-functions.md#function-coefficientring-modded)

  - [`Degree(M): ModDed → RngIntElt`](elementary-functions.md#function-degree-modded)

  - [`Ngens(M): ModDed → RngIntElt`](elementary-functions.md#function-ngens-modded)

  - [`NumberOfGenerators(M): ModDed → RngIntElt`](elementary-functions.md#function-numberofgenerators-modded)

  - [`M . i: ModDed, RngIntElt → ModTupRngElt`](elementary-functions.md#operation-operation-modded-rngintelt-modtuprngelt)

  - [`Determinant(M): ModDed → RngOrdIdl`](elementary-functions.md#function-determinant-modded)

  - [`Determinant(M): ModDed → RngFunOrdIdl`](elementary-functions.md#function-determinant-modded-2)

  - [`Dimension(M): ModDed → RngIntElt`](elementary-functions.md#function-dimension-modded)

  - [`Contents(M): ModDed → RngOrdFracIdl`](elementary-functions.md#function-contents-modded)

  - [`Simplify(M): ModDed → ModDed`](elementary-functions.md#function-simplify-modded)

  - [`EmbeddingSpace(M): ModDed → Mod`](elementary-functions.md#function-embeddingspace-modded)

  - [`Example: elementary`](elementary-functions.md#example-ex-5e5c19)

- [Predicates on Modules](ops.md)

  - [`M eq N: ModDed, ModDed → BoolElt`](ops.md#operation-op-eq-modded-modded)

  - [`x in M: Any, ModDed → BoolElt`](ops.md#operation-op-in-any-modded)

  - [`M subset N: ModDed, ModDed → BoolElt`](ops.md#operation-op-subset-modded-modded)

  - [`IsFree(M): ModDed → BoolElt`](ops.md#function-isfree-modded)

- [Arithmetic with Modules](module-arith.md)

  - [`I * M: RngOrdIdl, ModDed → ModDed`](module-arith.md#operation-op-times-rngordidl-modded)

  - [`I * M: RngFunOrdIdl, ModDed → ModDed`](module-arith.md#operation-op-times-rngfunordidl-modded)

  - [`M * I: ModDed, RngOrdIdl → ModDed`](module-arith.md#operation-op-times-modded-rngordidl)

  - [`M * I: ModDed, RngFunOrdIdl → ModDed`](module-arith.md#operation-op-times-modded-rngfunordidl)

  - [`M1 + M2: ModDed, ModDed → ModDed`](module-arith.md#operation-op-plus-modded-modded)

  - [`DirectSum(M1, M2): ModDed, ModDed → ModDed, Map, Map, Map, Map`](module-arith.md#function-directsum-modded-modded)

  - [`DirectSum(S): [ModDed] → ModDed, [Map], [Map]`](module-arith.md#function-directsum-modded)

  - [`u * I: ModDedElt, RngOrdIdl → ModDed`](module-arith.md#operation-op-times-moddedelt-rngordidl)

  - [`u * I: ModDedElt, RngFunOrdIdl → ModDed`](module-arith.md#operation-op-times-moddedelt-rngfunordidl)

  - [`I * u: RngOrdIdl, ModDedElt → ModDed`](module-arith.md#operation-op-times-rngordidl-moddedelt)

  - [`I * u: RngFunOrdIdl, ModDedElt → ModDed`](module-arith.md#operation-op-times-rngfunordidl-moddedelt)

  - [`Example: Ops Arith`](module-arith.md#example-ex-79759b)

- [Basis of a Module](basis.md)

  - [`Basis(M): ModDed → SeqEnum`](basis.md#function-basis-modded)

  - [`PseudoBasis(M): ModDed → SeqEnum`](basis.md#function-modded-pseudobasis)

  - [`PseudoGenerators(M): ModDed → SeqEnum`](basis.md#function-pseudogenerators-modded)

  - [`LocalBasis(M, p): ModDed, RngOrdIdl → [ ModTupFldElt ]`](basis.md#function-localbasis-modded-rngordidl)

- [Other Functions on Modules](other.md)

  - [`M1 meet M2: ModDed, ModDed → ModDed`](other.md#operation-op-meet-modded-modded)

  - [`Dual(M): ModDed → ModDed`](other.md#function-dual-modded)

  - [`ElementaryDivisors(M, N): ModDed, ModDed → SeqEnum`](other.md#function-elementarydivisors-modded-modded)

  - [`SteinitzClass(M): ModDed → RngOrdIdl`](other.md#function-steinitzclass-modded)

  - [`SteinitzForm(M): ModDed → ModDed`](other.md#function-steinitzform-modded)

  - [`Example: Basis Other`](other.md#example-ex-69678f)

- [Homomorphisms between Modules](homomorphisms.md)

  - [`hom<M -> N | T>: ModDed, ModDed, Map → Map`](homomorphisms.md#constructor-constructor-hom-modded-modded-map-map)

  - [`hom<M -> N | T>: ModDed, ModDed, SeqEnum[ModTupRngElt] → Map`](homomorphisms.md#constructor-constructor-hom-modded-modded-seqenum-modtuprngelt-map)

  - [`hom<M -> N | T>: ModDed, ModDed, MtrxSpcElt → Map`](homomorphisms.md#constructor-constructor-hom-modded-modded-mtrxspcelt-map)

  - [`Hom(M, N): ModDed, ModDed → ModDed, Map`](homomorphisms.md#function-hom-modded-modded)

  - [`IsSubmodule(M, N): ModDed, ModDed → BoolElt, Map`](homomorphisms.md#function-issubmodule-modded-modded)

  - [`Morphism(M, N): ModDed, ModDed → Map`](homomorphisms.md#function-morphism-modded-modded)

  - [`Example: hom`](homomorphisms.md#example-ex-f6bf14)

- [Elements of Modules](elements.md)

  - [Creation of Elements](elements.md#creation-of-elements)

    - [`M ! v: ModDed, SeqEnum → ModDedElt`](elements.md#operation-op-modded-seqenum)

    - [`M ! v: ModDed, ModDedElt → ModDedElt`](elements.md#operation-op-modded-moddedelt)

    - [`M ! v: ModDed, ModElt → ModDedElt`](elements.md#operation-op-modded-modelt)

    - [`Example: Coerce Quo`](elements.md#example-ex-2c7014)

  - [Arithmetic with Elements](elements.md#arithmetic-with-elements)

    - [`x + y: ModDedElt, ModDedElt → ModDedElt`](elements.md#operation-op-plus-moddedelt-moddedelt)

    - [`x - y: ModDedElt, ModDedElt → ModDedElt`](elements.md#operation-op-minus-moddedelt-moddedelt)

    - [`u * c: ModDedElt, RngElt → ModDedElt`](elements.md#operation-op-times-moddedelt-rngelt)

    - [`c * u: RngElt, ModDedElt → ModDedElt`](elements.md#operation-op-times-rngelt-moddedelt)

    - [`u / c: ModDedElt, RngElt → ModDedElt`](elements.md#operation-op-div-moddedelt-rngelt)

    - [`I * u: RngOrdIdl, ModDedElt → ModDed`](elements.md#operation-op-times-rngordidl-moddedelt-2)

    - [`I * u: RngFunOrdIdl, ModDedElt → ModDed`](elements.md#operation-op-times-rngfunordidl-moddedelt-2)

    - [`u * I: ModDedElt, RngOrdIdl → ModDed`](elements.md#operation-op-times-moddedelt-rngordidl-2)

    - [`u * I: ModDedElt, RngFunOrdIdl → ModDed`](elements.md#operation-op-times-moddedelt-rngfunordidl-2)

  - [Other Functions on Elements](elements.md#other-functions-on-elements)

    - [`x eq y: ModDedElt, ModDedElt → Bool`](elements.md#operation-op-eq-moddedelt-moddedelt)

    - [`IsZero(a): ModDedElt → BoolElt`](elements.md#function-iszero-moddedelt)

    - [`ElementToSequence(a): ModDedElt → SeqEnum`](elements.md#function-elementtosequence-moddedelt)

    - [`Eltseq(a): ModDedElt → SeqEnum`](elements.md#function-eltseq-moddedelt)

- [Pseudo Matrices](pmat.md)

  - [Construction of a Pseudo Matrix](pmat.md#construction-of-a-pseudo-matrix)

    - [`PseudoMatrix(I, m): [RngOrdFracIdl], MtrxSpcElt → PMat`](pmat.md#function-pseudomatrix-rngordfracidl-mtrxspcelt)

    - [`PseudoMatrix(I, m): [RngFunOrdIdl], MtrxSpcElt → PMat`](pmat.md#function-pseudomatrix-rngfunordidl-mtrxspcelt)

    - [`PseudoMatrix(m): Mtrx[FldOrd] → PMat`](pmat.md#function-pseudomatrix-mtrx-fldord)

    - [`PseudoMatrix(m): Mtrx[RngOrd] → PMat`](pmat.md#function-pseudomatrix-mtrx-rngord)

    - [`PseudoMatrix(m): Mtrx[FldFunOrd] → PMat`](pmat.md#function-pseudomatrix-mtrx-fldfunord)

    - [`PseudoMatrix(m): Mtrx[RngFunOrd] → PMat`](pmat.md#function-pseudomatrix-mtrx-rngfunord)

    - [`PseudoMatrix(M): ModDed → PMat`](pmat.md#function-pseudomatrix-modded)

    - [`AbsoluteBasis(M): ModDed → SeqEnum`](pmat.md#function-absolutebasis-modded)

  - [Elementary Functions](pmat.md#elementary-functions)

    - [`CoefficientIdeals(P): PMat → SeqEnum`](pmat.md#function-coefficientideals-pmat)

    - [`Matrix(P): PMat → Mtrx`](pmat.md#function-matrix-pmat)

    - [`Order(pm): PMat → Rng`](pmat.md#function-order-pmat)

    - [`Dimension(pm): PMat → RngIntElt`](pmat.md#function-dimension-pmat)

    - [`Length(pm): PMat → RngIntElt`](pmat.md#function-length-pmat)

  - [Basis of a Pseudo Matrix](pmat.md#basis-of-a-pseudo-matrix)

    - [`Basis(P): PMat → SeqEnum`](pmat.md#function-basis-pmat)

  - [Predicates](pmat.md#predicates)

    - [`p1 eq p2: PMat, PMat → BoolElt`](pmat.md#operation-op-eq-pmat-pmat)

  - [Operations with Pseudo Matrices](pmat.md#operations-with-pseudo-matrices)

    - [`Transpose(P): PMat → PMat`](pmat.md#function-transpose-pmat)

    - [`HermiteForm(X): PMat → PMat, AlgMatElt`](pmat.md#function-hermiteform-pmat)

    - [`VerticalJoin(X, Y): PMat, PMat → PMat`](pmat.md#function-verticaljoin-pmat-pmat)

    - [`X meet Y: PMat, PMat → PMat`](pmat.md#operation-op-meet-pmat-pmat)

    - [`Module(X): PMat → ModDed`](pmat.md#function-module-pmat)

    - [`I * X: RngOrdFracIdl, PMat → PMat`](pmat.md#operation-op-times-rngordfracidl-pmat)

    - [`I * X: RngFunOrdIdl, PMat → PMat`](pmat.md#operation-op-times-rngfunordidl-pmat)

    - [`X * I: PMat, RngOrdFracIdl → PMat`](pmat.md#operation-op-times-pmat-rngordfracidl)

    - [`X * I: PMat, RngFunOrdIdl → PMat`](pmat.md#operation-op-times-pmat-rngfunordidl)
