Skip to content

Problem running mclf on Sage 8.7 #110

@AndrewVSutherland

Description

@AndrewVSutherland

After cloning mac_lane and MCLF, I tried to execute the example in the README.md and ran into the following error while running Sage 8.7 on line 168 of superp.pyc in the call to FunctionField, which has a comment noting that it does not work in Sage 8.0.

I understand that this problem should go away in Sage 8.8, which I will try, but I'm reporting the issue as suggested by Stefan so that we have a record of it.

sage: K = QQ
sage: v_3 = pAdicValuation(K, 3)
sage: R.<x> = K[]
sage: Y = Superp(x^4+1, v_3, 3)
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-27-bbb2bc42f1d0> in <module>()
----> 1 Y = Superp(x**Integer(4)+Integer(1), v_3, Integer(3))

/home/drew/github/MCLF_/mclf/semistable_reduction/superp.pyc in __init__(self, f, vK, p)
    166         self._a = a
    167         self._vK = vK
--> 168         FX = FunctionField(vK.domain(), names=R.variable_names())  # this does not work in Sage 8.0
    169         S = PolynomialRing(FX, 'T')
    170         T = S.gen()

/scratch/sage/sage-8.7/local/lib/python2.7/site-packages/sage/structure/factory.pyx in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:2138)()
    367         key, kwds = self.create_key_and_extra_args(*args, **kwds)
    368         version = self.get_version(sage_version)
--> 369         return self.get_object(version, key, kwds)
    370 
    371     cpdef get_object(self, version, key, extra_args):

/scratch/sage/sage-8.7/local/lib/python2.7/site-packages/sage/structure/factory.pyx in sage.structure.factory.UniqueFactory.get_object (build/cythonized/sage/structure/factory.c:2529)()
    410         except KeyError:
    411             pass
--> 412         obj = self.create_object(version, key, **extra_args)
    413         self._cache[version, cache_key] = obj
    414         try:

/scratch/sage/sage-8.7/local/lib/python2.7/site-packages/sage/rings/function_field/constructor.pyc in create_object(self, version, key, **extra_args)
    105         else:
    106             from .function_field import RationalFunctionField
--> 107             return RationalFunctionField(key[0],names=key[1])
    108 
    109 FunctionField=FunctionFieldFactory("sage.rings.function_field.constructor.FunctionField")

mac_lane/__init__.pyc in __init__(self, *args, **kwargs)

/scratch/sage/sage-8.7/local/lib/python2.7/site-packages/sage/structure/parent.pyx in sage.structure.parent.Parent.register_conversion (build/cythonized/sage/structure/parent.c:14678)()
   1658         self._action_list.append(action)
   1659 
-> 1660     cpdef register_conversion(self, mor):
   1661         r"""
   1662         Update the coercion model to use `\text{mor} : P \to \text{self}` to convert

/scratch/sage/sage-8.7/local/lib/python2.7/site-packages/sage/structure/parent.pyx in sage.structure.parent.Parent.register_conversion (build/cythonized/sage/structure/parent.c:14398)()
   1678             TypeError: ...
   1679         """
-> 1680         assert not (self._coercions_used and mor.domain() in self._convert_from_hash), "conversion from %s to %s already registered or discovered"%(mor.domain(), self)
   1681         if isinstance(mor, map.Map):
   1682             if mor.codomain() is not self:

AssertionError: conversion from Rational function field in x over Rational Field to Univariate Polynomial Ring in x over Rational Field already registered or discovered

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions