#15059: Morphisms cannot be applied to too-simple elements of a multivariate
power
series ring
---------------------------------------+-------------------------
Reporter: darij | Owner:
Type: defect | Status: new
Priority: major | Milestone: sage-5.12
Component: algebra | Resolution:
Keywords: rings, power series | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
---------------------------------------+-------------------------
Comment (by darij):
Fixed. The patch was uploaded twice due to connection issues; it's one and
the same file nevertheless.
The issue at hand was that the {{{__call__}}} method of class
{{{MPowerSeries}}} (elements of multivariate power series rings) calls the
{{{subs}}} method of polynomials, but this method behaves somewhat
unpredictably as concerning the parent of its output: If the input is a
constant polynomial, it does not change the base ring (even if the
substitution should send polynomials from ZZ to polynomials from ZZ/5ZZ):
{{{
sage: K.<x,y> = PolynomialRing(ZZ)
sage: T.<u,v> = PolynomialRing(Integers(5))
sage: parent(x.subs(x=u, y=v))
Multivariate Polynomial Ring in u, v over Ring of integers modulo 5
sage: parent(K.one().subs(x=u, y=v))
Integer Ring
}}}
Note that this issue only appears with multivariate polynomials.
Univariate ones substitute fine.
Is my fix misguided in that it fixes the symptom rather than the cause?
patchbot:
apply trac_15059-multivariate_fix-dg.patch
--
Ticket URL: <http://trac.sagemath.org/ticket/15059#comment:1>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.