# Free Associative Algebras

## Two-sided ideals

### Types

The OSCAR type for two-sided ideals in a free associative algebra is FreeAssAlgIdeal{T}, where T is the element type of the algebra.

### Constructors

ideal(R::FreeAssAlgebra, g::Vector{T}) where T <: FreeAssAlgElem
ideal(g::Vector{T}) where T <: FreeAssAlgElem

### Ideal Membership

ideal_membershipMethod
ideal_membership(a::FreeAssAlgElem, I::FreeAssAlgIdeal, deg_bound::Int)

Returns true if intermediate degree calculations bounded by deg_bound prove that $a$ is in $I$. Otherwise, returning false indicates an inconclusive answer, but larger deg_bounds give more confidence in a negative answer. If deg_bound is not specified, the default value is -1, which means that no degree bound is imposed, resulting in a calculation using a much slower algorithm that may not terminate, but will return a full Groebner basis if it does.

julia> free, (x,y,z) = free_associative_algebra(QQ, ["x", "y", "z"]);

julia> f1 = x*y + y*z;

julia> I = ideal([f1]);

julia> ideal_membership(f1, I, 4)
true
source