Creation of FP-Algebras

One can create an fp-algebra simply by forming the quotient of a free algebra by an ideal (quo constructor or / function). A special constructor FPAlgebra is also provided to remove the need to create the free algebra.

NOTE: When one creates an fp-algebra, the ideal of relations is left unchanged, but as soon as one does just about any operation with elements of the algebra (such as printing or multiplying), then the Gröbner basis of the underlying ideal will have to be computed to enable Magma to compute a unique form of each element of the algebra.

quo< F | J > : AlgFr, AlgFr -> AlgFP
quo< F | a1, ..., ar > : AlgFr, AlgFrElt, ..., AlgFrElt -> AlgFrRes, Map
Given a free algebra F and a two-sided ideal J of F, return the fp-algebra (quotient algebra) F/J. The ideal J may either be specified as an ideal or by a list a1, a2, ..., ar, of generators which all lie in F. The angle bracket notation can be used to assign names to the indeterminates: A<q, r> := quo< I | I.1 + I.2, I.2^2 - 2, I.3^2 + I.4 >;.
F / J : AlgFr, AlgFr -> AlgFP
Given a free algebra F and an ideal J of F, return the fp-algebra F/J.
FPAlgebra< K, X | L > : Fld, List, List -> AlgFP
Given a field K, a list X of n identifiers, and a list L of noncommutative polynomials (relations) in the n variables X, create the fp-algebra of rank n with base ring K with given quotient relations; i.e., return K[X]/< L > . The angle bracket notation can be used to assign names to the indeterminates.

Example AlgFP_Creation (H89E6)

We illustrate equivalent ways of creating FP-algebras.
> K := RationalField();
> A<x,y> := FPAlgebra<K, x, y | x^2*y - y*x, x*y^3 - y*x>;
> A;
Finitely Presented Algebra of rank 2 over Rational Field
Non-commutative Graded Lexicographical Order
Variables: x, y
Quotient relations:
[
    x^2*y - y*x,
    x*y^3 - y*x
]
> x;
x
> x*y;
x*y
> x^2*y;
y*x
> A;
Finitely Presented Algebra of rank 2 over Rational Field
Non-commutative Graded Lexicographical Order
Variables: x, y
Quotient relations:
[
    x*y*x^2 - y*x^2,
    x*y*x*y - y^2*x,
    x*y^2*x - y^2*x,
    x*y^3 - y*x,
    y*x^3 - y*x^2,
    y*x*y*x - y^2*x,
    y*x*y^2 - x*y*x,
    y^2*x^2 - y^2*x,
    y^2*x*y - y*x^2,
    y^3*x - y*x^2,
    x^2*y - y*x
]
The following is equivalent.
> K := RationalField();
> F<x,y> := FreeAlgebra(K, 2);
> A<x,y> := quo<F | x^2*y - y*x, x*y^3 - y*x>;
V2.28, 13 July 2023