Macaulay2 Engine
Loading...
Searching...
No Matches
M2FreeAlgebraQuotient.hpp File Reference

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...

Detailed Description

Ring-shaped façade around a non-commutative quotient algebra.

Note
AI-generated documentation. Verify against the source before relying on it.

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.

See also
M2FreeAlgebra.hpp
NCAlgebras/FreeAlgebraQuotient.hpp
NCAlgebras/NCGroebner.hpp
qring.hpp

Definition in file M2FreeAlgebraQuotient.hpp.