Skip to content

Frobenius endomorphism creation fail for infinite ring extension #34692

@kryzar

Description

@kryzar

I wish to instantiate the Frobenius endomorphism of the field Fq(X) seen as a ring over Fq[X]. The following raises an exception:

sage: Fq = GF(11)
sage: FqX.<X> = Fq[]
sage: k = Frac(FqX)
sage: i = Hom(FqX, k).natural_map()
sage: K = k.over(i)
sage: K.frobenius_endomorphism()
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
Input In [43], in <cell line: 6>()
      4 i = Hom(FqX, k).natural_map()
      5 K = k.over(i)
----> 6 K.frobenius_endomorphism()

File $SAGE_ROOT/sage/src/sage/rings/ring.pyx:1428, in sage.rings.ring.CommutativeRing.frobenius_endomorphism()
   1426     """
   1427     from .morphism import FrobeniusEndomorphism_generic
-> 1428     return FrobeniusEndomorphism_generic(self, n)
   1429 
   1430 def derivation_module(self, codomain=None, twist=None):

File $SAGE_ROOT/sage/src/sage/rings/morphism.pyx:2929, in sage.rings.morphism.FrobeniusEndomorphism_generic.__init__()
   2927 if not isinstance(domain, CommutativeRing):
   2928     raise TypeError("The base ring must be a commutative ring")
-> 2929 self._p = domain.characteristic()
   2930 if not self._p.is_prime():
   2931     raise TypeError("the characteristic of the base ring must be prime")

File $SAGE_ROOT/sage/src/sage/categories/rings.py:588, in Rings.ParentMethods.characteristic(self)
    586 from sage.rings.infinity import infinity
    587 from sage.rings.integer_ring import ZZ
--> 588 order_1 = self.one().additive_order()
    589 return ZZ.zero() if order_1 is infinity else order_1

File $SAGE_ROOT/sage/src/sage/rings/ring_extension_element.pyx:415, in sage.rings.ring_extension_element.RingExtensionElement.additive_order()
    413         5
    414     """
--> 415     return self._backend.additive_order()
    416 
    417 def multiplicative_order(self):

File $SAGE_ROOT/sage/src/sage/structure/element.pyx:2818, in sage.structure.element.RingElement.additive_order()
   2816     Return the additive order of ``self``.
   2817     """
-> 2818     raise NotImplementedError
   2819 
   2820 def multiplicative_order(self):

NotImplementedError:

Best,

Antoine Leudière

CC: @DavidAyotte @xcaruso

Component: algebra

Author: Antoine Leudière

Branch/Commit: ab2c211

Reviewer: Xavier Caruso, David Ayotte

Issue created by migration from https://trac.sagemath.org/ticket/34692

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions