This method calls oreIdeal and returns the associated Ore extension as an FreeAlgebraQuotient.
i1 : B = skewPolynomialRing(QQ,(-1)_QQ,{x,y,z,w}) 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) 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.
The object oreExtension is a method function with options.