Elements in Ore modules

AUTHOR:

  • Xavier Caruso (2024-10)

class sage.modules.ore_module_element.OreModuleElement[source]

Bases: FreeModuleElement_generic_dense

A generic element of a Ore module.

image()[source]

Return the image of this element by the pseudomorphism defining the action of the Ore variable on this Ore module.

EXAMPLES:

sage: K.<t> = Frac(QQ['t'])
sage: S.<X> = OrePolynomialRing(K, K.derivation())
sage: M.<v,w> = S.quotient_module(X^2 + t)
sage: v.image()
w
sage: w.image()
-t*v
>>> from sage.all import *
>>> K = Frac(QQ['t'], names=('t',)); (t,) = K._first_ngens(1)
>>> S = OrePolynomialRing(K, K.derivation(), names=('X',)); (X,) = S._first_ngens(1)
>>> M = S.quotient_module(X**Integer(2) + t, names=('v', 'w',)); (v, w,) = M._first_ngens(2)
>>> v.image()
w
>>> w.image()
-t*v
is_mutable()[source]

Always return False since elements in Ore modules are all immutable.

EXAMPLES:

sage: K.<t> = Frac(QQ['t'])
sage: S.<X> = OrePolynomialRing(K, K.derivation())
sage: M = S.quotient_module(X^2 + t)

sage: v, w = M.basis()
sage: v
(1, 0)
sage: v.is_mutable()
False
sage: v[1] = 1
Traceback (most recent call last):
...
ValueError: vectors in Ore modules are immutable
>>> from sage.all import *
>>> K = Frac(QQ['t'], names=('t',)); (t,) = K._first_ngens(1)
>>> S = OrePolynomialRing(K, K.derivation(), names=('X',)); (X,) = S._first_ngens(1)
>>> M = S.quotient_module(X**Integer(2) + t)

>>> v, w = M.basis()
>>> v
(1, 0)
>>> v.is_mutable()
False
>>> v[Integer(1)] = Integer(1)
Traceback (most recent call last):
...
ValueError: vectors in Ore modules are immutable
vector()[source]

Return the coordinates vector of this element.

EXAMPLES:

sage: K.<t> = Frac(QQ['t'])
sage: S.<X> = OrePolynomialRing(K, K.derivation())
sage: M.<v,w> = S.quotient_module(X^2 + t)
sage: v.vector()
(1, 0)
>>> from sage.all import *
>>> K = Frac(QQ['t'], names=('t',)); (t,) = K._first_ngens(1)
>>> S = OrePolynomialRing(K, K.derivation(), names=('X',)); (X,) = S._first_ngens(1)
>>> M = S.quotient_module(X**Integer(2) + t, names=('v', 'w',)); (v, w,) = M._first_ngens(2)
>>> v.vector()
(1, 0)

We underline that this vector is not an element of the Ore module; it lives in \(K^2\). Compare:

sage: v.parent()
Ore module <v, w> over Fraction Field of Univariate Polynomial Ring in t over Rational Field twisted by d/dt
sage: v.vector().parent()
Vector space of dimension 2 over Fraction Field of Univariate Polynomial Ring in t over Rational Field
>>> from sage.all import *
>>> v.parent()
Ore module <v, w> over Fraction Field of Univariate Polynomial Ring in t over Rational Field twisted by d/dt
>>> v.vector().parent()
Vector space of dimension 2 over Fraction Field of Univariate Polynomial Ring in t over Rational Field