next | previous | forward | backward | up | top | index | toc | Macaulay2 website
AssociativeAlgebras :: oreExtension

oreExtension -- Creates an Ore extension of a noncommutative ring



This method calls oreIdeal and returns the associated Ore extension as an FreeAlgebraQuotient.

i1 : B = skewPolynomialRing(QQ,(-1)_QQ,{x,y,z,w})
Using numthreads = 0

o1 = B

o1 : FreeAlgebraQuotient
i2 : sigma = map(B,B,{y,z,w,x})

o2 = map (B, B, {y, z, w, x})

o2 : RingMap B <--- B
i3 : C = oreExtension(B,sigma,a)
Using numthreads = 0

o3 = C

o3 : FreeAlgebraQuotient

One may define the Weyl algebra as an Ore extension using the identity endomorphism and the usual polynomial derivative as the derivation.

i4 : B = toFreeAlgebraQuotient(QQ[x])

o4 = B

o4 : FreeAlgebra
i5 : sigma = map(B,B,{x})

o5 = map (B, B, {x})

o5 : RingMap B <--- B
i6 : delta = derivation(B,{1_B})

o6 = Derivation{generators => HashTable{x => 1} }
                homomorphism => map (B, B, {x})
                imageCache => MutableHashTable{}
                matrix => | 1 |
                source => B

o6 : Derivation
i7 : C = oreExtension(B,sigma,delta,dx)
Warning:  Parallel F4 Algorithm not available over current coefficient ring.
Converting to Naive algorithm.

o7 = C

o7 : FreeAlgebraQuotient

Of course, if one wants to perform extensive calculations with classical Weyl Algebras, one should use the WeylAlgebra option when creating a polynomial ring.

In order to get the most out of the AssociativeAlgebras package, rings often need to be graded. To obtain such a ring from this construction, the derivation must increase the degree by one.

See also

Ways to use oreExtension :

For the programmer

The object oreExtension is a method function with options.