|
Macaulay2 Engine
|
Ring-shaped façade around a non-commutative quotient algebra. More...
#include "engine-includes.hpp"#include <memory>#include "M2FreeAlgebra.hpp"#include "NCAlgebras/FreeAlgebraQuotient.hpp"#include "NCAlgebras/FreeMonoid.hpp"#include "Polynomial.hpp"#include "ringelem.hpp"Go to the source code of this file.
Classes | |
| class | M2FreeAlgebraQuotient |
| Concrete Ring wrapper around an owned FreeAlgebraQuotient (the quotient counterpart of M2FreeAlgebra). More... | |
Ring-shaped façade around a non-commutative quotient algebra.
M2FreeAlgebraQuotient packages a NCAlgebras/FreeAlgebraQuotient — a free associative algebra modulo a two-sided ideal — in a Ring-derived wrapper so the rest of the engine (Matrix, MutableMatrix, resolutions, RingMap) can treat the quotient like any other ring. It is the quotient counterpart of M2FreeAlgebra; the quotient state (the non-commutative Groebner basis of the defining ideal) is owned by the wrapped FreeAlgebraQuotient.
Multiplication first runs the ambient free-algebra product (word concatenation lifted to polynomials) and then reduces modulo the stored GB via NCAlgebras/NCGroebner.hpp — this normal-form step is what distinguishes quotient arithmetic from the ambient free algebra and gives every quotient element a canonical representative. Because non-commutative two-sided GBs need not be finite, the GB is in general only computed up to a chosen degree limit; operations on longer words may not fully simplify.
Definition in file M2FreeAlgebraQuotient.hpp.