# Finitely Presented Algebras

- [Introduction](introduction.md)

- [Representation and Monomial Orders](order.md)

- [Exterior Algebras](exterior.md)

- [Creation of Free Algebras and Elements](algebras.md)

  - [Creation of Free Algebras](algebras.md#creation-of-free-algebras)

    - [`FreeAlgebra(K, n): Fld, RngIntElt → AlgFr`](algebras.md#function-freealgebra-fld-rngintelt)

    - [`ExteriorAlgebra(K, n): Fld, RngIntElt → AlgExt`](algebras.md#function-fpa-exterioralgebra)

  - [Print Names](algebras.md#print-names)

    - [`AssignNames(~F, s): AlgFr, [ MonStgElt ])`](algebras.md#function-assignnames-algfr-monstgelt-ref)

    - [`Name(F, i): AlgFr, RngIntElt → AlgFrElt`](algebras.md#function-name-algfr-rngintelt)

  - [Creation of Polynomials](algebras.md#creation-of-polynomials)

    - [`F . i: AlgFr, RngInt → AlgFrElt`](algebras.md#operation-operation-algfr-rngint-algfrelt)

    - [`elt< R | a >: AlgFr, RngElt → AlgFrElt`](algebras.md#constructor-constructor-elt-algfr-rngelt-algfrelt)

    - [`R ! s: AlgFr, RngElt → AlgFrElt`](algebras.md#operation-op-algfr-rngelt)

    - [`R ! s: AlgFr, [ RngElt ] → AlgFrElt`](algebras.md#operation-op-algfr-rngelt-2)

    - [`elt< R | s >: AlgFr, [ RngElt ] → AlgFrElt`](algebras.md#constructor-constructor-elt-algfr-rngelt-algfrelt-2)

    - [`One(F): AlgFr → AlgFrElt`](algebras.md#function-one-algfr)

    - [`Identity(F): AlgFr → AlgFrElt`](algebras.md#function-identity-algfr)

    - [`Zero(F): AlgFr → AlgFrElt`](algebras.md#function-zero-algfr)

    - [`Representative(F): AlgFr → AlgFrElt`](algebras.md#function-representative-algfr)

- [Structure Operations](operation.md)

  - [Related Structures](operation.md#related-structures)

    - [`BaseRing(F): AlgFr → Rng`](operation.md#function-basering-algfr)

    - [`CoefficientRing(F): AlgFr → Rng`](operation.md#function-coefficientring-algfr)

    - [`Category(F): AlgFr → Cat`](operation.md#function-category-algfr)

    - [`Parent(F): AlgFr → Pow`](operation.md#function-parent-algfr)

    - [`PrimeRing(F): AlgFr → Rng`](operation.md#function-primering-algfr)

  - [Numerical Invariants](operation.md#numerical-invariants)

    - [`Rank(F): AlgFr → RngIntElt`](operation.md#function-rank-algfr)

    - [`Characteristic(F): AlgFr → RngIntElt`](operation.md#function-characteristic-algfr)

    - [`# F: AlgFr → RngIntElt`](operation.md#operation-operation-algfr-rngintelt)

  - [Homomorphisms](operation.md#homomorphisms)

    - [`hom< F -> S | f, y₁, ..., yₙ >: AlgFr, Rng → Map`](operation.md#constructor-constructor-hom-algfr-rng-map)

    - [`hom< F -> S | y₁, ..., yₙ >: AlgFr, Rng → Map`](operation.md#constructor-constructor-hom-algfr-rng-map-2)

    - [`Example: Homomorphism`](operation.md#example-ex-15e82d)

- [Element Operations](operation-element.md)

  - [Arithmetic Operators](operation-element.md#arithmetic-operators)

    - [`+ a: AlgFrElt → AlgFrElt`](operation-element.md#operation-operation-algfrelt-algfrelt)

    - [`- a: AlgFrElt → AlgFrElt`](operation-element.md#operation-operation-algfrelt-algfrelt-2)

    - [`a + b: AlgFrElt, AlgFrElt → AlgFrElt`](operation-element.md#operation-op-plus-algfrelt-algfrelt)

    - [`a - b: AlgFrElt, AlgFrElt → AlgFrElt`](operation-element.md#operation-op-minus-algfrelt-algfrelt)

    - [`a * b: AlgFrElt, AlgFrElt → AlgFrElt`](operation-element.md#operation-op-times-algfrelt-algfrelt)

    - [`a ^ k: AlgFrElt, RngIntElt → AlgFrElt`](operation-element.md#operation-op-pow-algfrelt-rngintelt)

    - [`a / b: AlgFrElt, AlgFrElt → FldFunMElt`](operation-element.md#operation-op-div-algfrelt-algfrelt)

    - [`a div b: AlgFrElt, AlgFrElt → AlgFrElt`](operation-element.md#operation-operation-div-algfrelt-algfrelt-algfrelt)

    - [`a +:= b: AlgFrElt, AlgFrElt → AlgFrElt`](operation-element.md#operation-operation-algfrelt-algfrelt-algfrelt)

    - [`a -:= b: AlgFrElt, AlgFrElt → AlgFrElt`](operation-element.md#operation-operation-algfrelt-algfrelt-algfrelt-2)

    - [`a *:= b: AlgFrElt, AlgFrElt → AlgFrElt`](operation-element.md#operation-operation-algfrelt-algfrelt-algfrelt-3)

    - [`a div:= b: AlgFrElt, AlgFrElt → AlgFrElt`](operation-element.md#operation-operation-div-algfrelt-algfrelt-algfrelt-2)

  - [Equality and Membership](operation-element.md#equality-and-membership)

    - [`a eq b: AlgFrElt, AlgFrElt → BoolElt`](operation-element.md#operation-op-eq-algfrelt-algfrelt)

    - [`a ne b: AlgFrElt, AlgFrElt → BoolElt`](operation-element.md#operation-op-ne-algfrelt-algfrelt)

    - [`a in R: AlgFrElt, Rng → BoolElt`](operation-element.md#operation-op-in-algfrelt-rng)

    - [`a notin R: AlgFrElt, Rng → BoolElt`](operation-element.md#operation-op-notin-algfrelt-rng)

  - [Predicates on Algebra Elements](operation-element.md#predicates-on-algebra-elements)

    - [`IsZero(f): AlgFrElt → BoolElt`](operation-element.md#function-iszero-algfrelt)

    - [`IsOne(f): AlgFrElt → BoolElt`](operation-element.md#function-isone-algfrelt)

    - [`IsMinusOne(f): AlgFrElt → BoolElt`](operation-element.md#function-isminusone-algfrelt)

    - [`IsNilpotent(f): AlgFrElt → BoolElt`](operation-element.md#function-isnilpotent-algfrelt)

    - [`IsIdempotent(f): AlgFrElt → BoolElt`](operation-element.md#function-isidempotent-algfrelt)

    - [`IsUnit(f): AlgFrElt → BoolElt`](operation-element.md#function-isunit-algfrelt)

    - [`IsZeroDivisor(f): AlgFrElt → BoolElt`](operation-element.md#function-iszerodivisor-algfrelt)

    - [`IsRegular(f): AlgFrElt → BoolElt`](operation-element.md#function-isregular-algfrelt)

    - [`IsIrreducible(f): AlgFrElt → BoolElt`](operation-element.md#function-isirreducible-algfrelt)

    - [`IsPrime(f): AlgFrElt → BoolElt`](operation-element.md#function-isprime-algfrelt)

  - [Coefficients, Monomials, Terms and Degree](operation-element.md#coefficients-monomials-terms-and-degree)

    - [`Coefficients(f): AlgFrElt → [ RngElt ]`](operation-element.md#function-coefficients-algfrelt)

    - [`LeadingCoefficient(f): AlgFrElt → RngElt`](operation-element.md#function-leadingcoefficient-algfrelt)

    - [`TrailingCoefficient(f): AlgFrElt → RngElt`](operation-element.md#function-trailingcoefficient-algfrelt)

    - [`MonomialCoefficient(f, m): AlgFrElt, AlgFrElt → RngElt`](operation-element.md#function-monomialcoefficient-algfrelt-algfrelt)

    - [`Monomials(f): AlgFrElt → [ AlgFrElt ]`](operation-element.md#function-monomials-algfrelt)

    - [`LeadingMonomial(f): AlgFrElt → AlgFrElt`](operation-element.md#function-leadingmonomial-algfrelt)

    - [`Terms(f): AlgFrElt → [ AlgFrElt ]`](operation-element.md#function-terms-algfrelt)

    - [`LeadingTerm(f): AlgFrElt → AlgFrElt`](operation-element.md#function-leadingterm-algfrelt)

    - [`TrailingTerm(f): AlgFrElt → RngElt`](operation-element.md#function-trailingterm-algfrelt)

    - [`Length(m): AlgFrElt → RngIntElt`](operation-element.md#function-length-algfrelt)

    - [`m[i]: AlgFrElt, RngIntElt → AlgFrElt`](operation-element.md#literal-literal-m-i-algfrelt-rngintelt-algfrelt)

    - [`TotalDegree(f): AlgFrElt → RngIntElt`](operation-element.md#function-totaldegree-algfrelt)

    - [`LeadingTotalDegree(f): AlgFrElt → RngIntElt`](operation-element.md#function-leadingtotaldegree-algfrelt)

    - [`Example: Terms`](operation-element.md#example-ex-4ecfe7)

  - [Evaluation](operation-element.md#evaluation)

    - [`Evaluate(f, s): AlgFrElt, [ RngElt ] → RngElt`](operation-element.md#function-evaluate-algfrelt-rngelt)

    - [`Evaluate(f, s): AlgFrElt, < RngElt, ..., RngElt > → RngElt`](operation-element.md#function-evaluate-algfrelt-rngelt-rngelt)

    - [`Example: Terms`](operation-element.md#example-ex-88ec97)

- [Ideals and Gröbner Bases](ideals.md)

  - [Creation of Ideals](ideals.md#creation-of-ideals)

    - [`ideal<A | L>: AlgFr, List → AlgFr`](ideals.md#constructor-constructor-ideal-algfr-list-algfr)

    - [`lideal<A | L>: AlgFr, List → AlgFr`](ideals.md#constructor-constructor-lideal-algfr-list-algfr)

    - [`rideal<A | L>: AlgFr, List → AlgFr`](ideals.md#constructor-constructor-rideal-algfr-list-algfr)

    - [`Basis(I): AlgFr → [ AlgFrElt ]`](ideals.md#function-basis-algfr)

    - [`BasisElement(I, i): AlgFr, RngIntElt → AlgFrElt`](ideals.md#function-basiselement-algfr-rngintelt)

  - [Gröbner Bases](ideals.md#grobner-bases)

    - [`Groebner(I: parameters): AlgFr`](ideals.md#function-fpa-groebner)

    - [`GroebnerBasis(I: parameters): AlgFr → AlgFrElt`](ideals.md#function-fpa-groebnerbasis)

    - [`GroebnerBasis(S: parameters): [ AlgFrElt ] → [ AlgFrElt ]`](ideals.md#function-groebnerbasis-algfrelt)

    - [`GroebnerBasis(S: parameters): { AlgFrElt } → [ AlgFrElt ]`](ideals.md#function-groebnerbasis-algfrelt-2)

    - [`GroebnerBasis(S, d: parameters): [ AlgFr ], RngInt → AlgFrElt`](ideals.md#function-fpa-gb-deg)

  - [Verbosity](ideals.md#verbosity)

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

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

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

  - [Related Functions](ideals.md#related-functions)

    - [`MarkGroebner(I): AlgFr`](ideals.md#function-markgroebner-algfr)

    - [`Reduce(S): [ AlgFrElt ] → [ AlgFrElt ]`](ideals.md#function-fpa-reduce)

    - [`Reduce(S): { AlgFrElt } → [ AlgFrElt ]`](ideals.md#function-reduce-algfrelt)

    - [`Example: GB`](ideals.md#example-ex-45e44f)

- [Basic Operations on Ideals](ideal-operation.md)

  - [Construction of New Ideals](ideal-operation.md#construction-of-new-ideals)

    - [`I + J: AlgFr, AlgFr → AlgFr`](ideal-operation.md#operation-op-plus-algfr-algfr)

    - [`I * J: AlgFr, AlgFr → AlgFr`](ideal-operation.md#operation-op-times-algfr-algfr)

    - [`F / J: AlgFr, AlgFr → AlgFrRes`](ideal-operation.md#operation-op-div-algfr-algfr)

    - [`Generic(I): AlgFr → AlgFr`](ideal-operation.md#function-generic-algfr)

  - [Ideal Predicates](ideal-operation.md#ideal-predicates)

    - [`I eq J: AlgFr, AlgFr → BoolElt`](ideal-operation.md#operation-op-eq-algfr-algfr)

    - [`I ne J: AlgFr, AlgFr → BoolElt`](ideal-operation.md#operation-op-ne-algfr-algfr)

    - [`I notsubset J: AlgFr, AlgFr → BoolElt`](ideal-operation.md#operation-operation-notsubset-algfr-algfr-boolelt)

    - [`I subset J: AlgFr, AlgFr → BoolElt`](ideal-operation.md#operation-op-subset-algfr-algfr)

    - [`IsZero(I): AlgFr → BoolElt`](ideal-operation.md#function-iszero-algfr)

  - [Operations on Elements of Ideals](ideal-operation.md#operations-on-elements-of-ideals)

    - [`f in I: AlgFrElt, AlgFr → BoolElt`](ideal-operation.md#operation-op-in-algfrelt-algfr)

    - [`NormalForm(f, I): AlgFrElt, AlgFr → AlgFrElt`](ideal-operation.md#function-normalform-algfrelt-algfr)

    - [`NormalForm(f, S): AlgFrElt, [ AlgFrElt ] → AlgFrElt`](ideal-operation.md#function-normalform-algfrelt-algfrelt)

    - [`f notin I: AlgFrElt, AlgFr → BoolElt`](ideal-operation.md#operation-op-notin-algfrelt-algfr)

    - [`Example: Element Operations`](ideal-operation.md#example-ex-3dd8c1)

- [Changing Coefficient Ring](change-ring.md)

  - [`ChangeRing(I, S): AlgFr, Rng → AlgFr`](change-ring.md#function-fpa-changering)

- [Finitely Presented Algebras](fp-algebra.md)

- [Creation of FP-Algebras](creation.md)

  - [`quo< F | J >: AlgFr, AlgFr → AlgFP`](creation.md#constructor-constructor-quo-algfr-algfr-algfp)

  - [`quo< F | a₁, ..., aᵣ >: AlgFr, AlgFrElt, ..., AlgFrElt → AlgFrRes, Map`](creation.md#constructor-constructor-quo-algfr-algfrelt-algfrelt-algfrres-map)

  - [`F / J: AlgFr, AlgFr → AlgFP`](creation.md#operation-op-div-algfr-algfr-2)

  - [`FPAlgebra< K, X | L >: Fld, List, List → AlgFP`](creation.md#constructor-constructor-fpalgebra-fld-list-list-algfp)

  - [`Example: Creation`](creation.md#example-ex-8d1242)

- [Operations on FP-Algebras](operations.md)

  - [`A . i: AlgFP, RngIntElt → AlgFPElt`](operations.md#operation-operation-algfp-rngintelt-algfpelt)

  - [`CoefficientRing(A): AlgFP → Rng`](operations.md#function-coefficientring-algfp)

  - [`Rank(A): AlgFP → RngIntElt`](operations.md#function-rank-algfp)

  - [`DivisorIdeal(I): AlgFP → AlgFr`](operations.md#function-divisorideal-algfp)

  - [`PreimageIdeal(I): AlgFP → AlgFr`](operations.md#function-preimageideal-algfp)

  - [`PreimageRing(A): AlgFP → AlgFr`](operations.md#function-preimagering-algfp)

  - [`OriginalRing(A): AlgFP → Rng`](operations.md#function-originalring-algfp)

  - [`IsCommutative(A): AlgFP → BoolElt`](operations.md#function-iscommutative-algfp)

  - [`I eq J: AlgFP, AlgFP → BoolElt`](operations.md#operation-op-eq-algfp-algfp)

  - [`I subset J: AlgFP, AlgFP → BoolElt`](operations.md#operation-op-subset-algfp-algfp)

  - [`I + J: AlgFP, AlgFP → AlgFP`](operations.md#operation-op-plus-algfp-algfp)

  - [`I * J: AlgFP, AlgFP → AlgFP`](operations.md#operation-op-times-algfp-algfp)

  - [`IsProper(I): AlgFP → BoolElt`](operations.md#function-isproper-algfp)

  - [`IsZero(I): AlgFP → BoolElt`](operations.md#function-iszero-algfp)

- [Finite Dimensional FP-Algebras](finite-dimension-quotient.md)

  - [`Dimension(A): AlgFP → RngIntElt`](finite-dimension-quotient.md#function-dimension-algfp)

  - [`VectorSpace(A): AlgFP → ModTupFld, Map`](finite-dimension-quotient.md#function-vectorspace-algfp)

  - [`MatrixAlgebra(A): AlgFP → AlgMat, Map`](finite-dimension-quotient.md#function-matrixalgebra-algfp)

  - [`Algebra(A): AlgFP → AlgAss, Map`](finite-dimension-quotient.md#function-algebra-algfp)

  - [`RepresentationMatrix(f): AlgFPElt → AlgMatElt`](finite-dimension-quotient.md#function-representationmatrix-algfpelt)

  - [`IsUnit(f): AlgFPElt → BoolElt`](finite-dimension-quotient.md#function-isunit-algfpelt)

  - [`IsNilpotent(f): AlgFPElt → BoolElt, RngIntElt`](finite-dimension-quotient.md#function-isnilpotent-algfpelt)

  - [`MinimalPolynomial(f): AlgFPElt → RngUPol`](finite-dimension-quotient.md#function-minimalpolynomial-algfpelt)

  - [`Example: Finite Dimensional`](finite-dimension-quotient.md#example-ex-b673ef)

- [Vector Enumeration](vector-enumeration.md)

  - [Finitely Presented Modules](vector-enumeration.md#finitely-presented-modules)

  - [$S$-algebras](vector-enumeration.md#s-algebras)

  - [Finitely Presented Algebras](vector-enumeration.md#finitely-presented-algebras)

  - [Vector Enumeration](vector-enumeration.md#id1)

    - [(1) A permutation module](vector-enumeration.md#a-permutation-module)

    - [(2) A quotient of a permutation module](vector-enumeration.md#a-quotient-of-a-permutation-module)

    - [(3) A non-cyclic module](vector-enumeration.md#a-non-cyclic-module)

    - [`Example: Abstract`](vector-enumeration.md#example-ex-d47ce9)

  - [The Isomorphism](vector-enumeration.md#the-isomorphism)

  - [Sketch of the Algorithm](vector-enumeration.md#sketch-of-the-algorithm)

  - [Weights](vector-enumeration.md#weights)

  - [Setup Functions](vector-enumeration.md#setup-functions)

    - [`FreeAlgebra(R, M): Rng, MonFP → AlgFPOld`](vector-enumeration.md#function-freealgebra-rng-monfp)

    - [`FreeAlgebra(R, G): Rng, GrpFP → AlgFPOld`](vector-enumeration.md#function-freealgebra-rng-grpfp)

  - [The Quotient Module Function](vector-enumeration.md#the-quotient-module-function)

    - [`QuotientModule(A, S): AlgFPOld, AlgFPOld → [AlgMatElt], [ModTupFldElt], [AlgFPEltOld]`](vector-enumeration.md#function-quotientmodule-algfpold-algfpold)

  - [Structuring Presentations](vector-enumeration.md#structuring-presentations)

  - [Options and Controls](vector-enumeration.md#options-and-controls)

  - [Weights](vector-enumeration.md#id2)

    - [`QuotientModule(A, S): AlgFP, AlgFP → AlgFP`](vector-enumeration.md#function-quotientmodule-algfp-algfp)

  - [Limits](vector-enumeration.md#limits)

    - [`QuotientModule(A, S): AlgFP, AlgFP → AlgFP`](vector-enumeration.md#function-quotientmodule-algfp-algfp-2)

  - [Logging](vector-enumeration.md#logging)

    - [`QuotientModule(A, S): AlgFP, AlgFP → AlgFP`](vector-enumeration.md#function-quotientmodule-algfp-algfp-3)

  - [Miscellaneous](vector-enumeration.md#miscellaneous)

    - [`QuotientModule(A, S): AlgFP, AlgFP → AlgFP`](vector-enumeration.md#function-quotientmodule-algfp-algfp-4)

    - [`Example: Permutation Action D8`](vector-enumeration.md#example-ex-80fd44)

    - [`Example: Quotient`](vector-enumeration.md#example-ex-631bdb)
