# Singular

## 7.1 PLURAL

### A Computer Algebra Subsystem for Non-commutative Polynomial Algebras

What is and what does PLURAL?

PLURAL is a kernel extension of SINGULAR, providing many algorithms for computations within certain non-commutative algebras (see Mathematical background (plural) for detailed information on algebras and algorithms).

It uses the same data structures, sometimes interpreting them in a different way and/or modifying them for its own purposes. In spite of such a difference, one can always transfer objects between commutative rings of SINGULAR and non-commutative rings.

With PLURAL, one can set up a non-commutative -algebra, say , with a Poincaré-Birkhoff-Witt (PBW) basis, (see G-algebras for step-by-step building instructions and also Non-commutative libraries for procedures for setting many important algebras easily).

Functionalities of PLURAL (enlisted in Functions (plural)) are accessible as soon as the basering becomes non-commutative (see nc_algebra).

One can perform various computations with polynomials and ideals in and with vectors and submodules of a free module .

One can work also within factor algebras of -algebras (see qring (plural) type) by two-sided ideals (see twostd).

What PLURAL does not:
• PLURAL does not perform computations in the free algebra or in its general factor algebras (instead, these computations can be possibly done due to LETTERPLACE).

In PLURAL one can only work with -algebras and with their factor-algebras by two-sided ideals ( -algebras).

• PLURAL requires a monomial ordering but it does not work generally with local and mixed orderings. Right now, one can use only global orderings in PLURAL (see General definitions for orderings), save for SCA, where we provide the possibility of computations in a tensor product of a non-commutative algebra (with a global ordering) with a commutative algebra (with any ordering). In the future, this will be enhanced for other algebras, as well.

• PLURAL does not handle non-commutative parameters.

Defining parameters, one cannot impose non-commutative relations on them. Moreover, it is impossible to introduce parameters which do not commute with variables.

PLURAL conventions

*-multiplication (plural)

in the non-commutative case, the correct multiplication of `y` by `x` must be written as `y*x`.
Both expressions `yx` and `xy` are equal, since they are interpreted as commutative expressions. See example in poly expressions (plural).
Note, that PLURAL output consists only of monomials, hence the signs `*` are omitted.

`ideal` (plural)

Unless stated otherwise, an `ideal` as understood by PLURAL, is a list of generators of a left ideal. For more information see ideal (plural).
For a two-sided ideal `T`, use command twostd in order to compute the two-sided Groebner basis of `T`.

`module` (plural)
Unless stated otherwise, a `module` as understood by PLURAL, is either a fininitely generated left submodule of a free module (of finite rank)
or a factor module of a free module (of finite rank) by its left submodule (see module (plural) for details).

`qring` (plural)

In PLURAL it is only possible to build factor-algebras modulo two-sided ideals (see qring (plural)).