Elements in Ore modules - Modules over Ore rings

Skip to content
Back to top
View this page
Edit this page

# Elements in Ore modules

AUTHOR:

- Xavier Caruso (2024-10)

class sage.modules.ore_module_element.OreModuleElement

  Bases: `FreeModuleElement_generic_dense`

  A generic element of a Ore module.

  image(integral=False)

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

    INPUT:

    - `integral` (default: `False`) – a boolean; if `False`, allows for an output with coordinates in the fraction field of the base ring

    EXAMPLES:

    Sage

        sage: A.<t> = QQ['t']
        sage: d = A.derivation()
        sage: S.<X> = OrePolynomialRing(A, A.derivation())
        sage: M.<v,w> = S.quotient_module(X^2 + t)
        sage: v.image()
        w
        sage: w.image()
        -t*v

    Python

        >>> from sage.all import *
        >>> A = QQ['t']; (t,) = A._first_ngens(1)
        >>> d = A.derivation()
        >>> S = OrePolynomialRing(A, A.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()

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

    EXAMPLES:

    Sage

        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

    Python

        >>> 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()

    Return the coordinates vector of this element.

    EXAMPLES:

    Sage

        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)

    Python

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

        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

    [Python]

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