#9792: kernel and inverse_image of (polynomial) ring maps
---------------------------+------------------------------------------------
Reporter: vbraun | Owner: AlexGhitza
Type: enhancement | Status: new
Priority: major | Milestone: sage-feature
Component: algebra | Keywords:
Author: | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
---------------------------+------------------------------------------------
Description changed by vbraun:
Old description:
> It would be nice if kernels and inverse images of ring maps were
> implemented:
> {{{
> sage: R.<s,t>=PolynomialRing(QQ);R
> Multivariate Polynomial Ring in s, t over Rational Field
> sage: S.<x,y,z,w>=PolynomialRing(QQ);S
> Multivariate Polynomial Ring in x, y, z, w over Rational Field
> sage: f=S.hom([s^4,s^3*t,s*t^3,t^4],R);f
> Ring morphism:
> From: Multivariate Polynomial Ring in x, y, z, w over Rational Field
> To: Multivariate Polynomial Ring in s, t over Rational Field
> Defn: x |--> s^4
> y |--> s^3*t
> z |--> s*t^3
> w |--> t^4
> sage: f.inverse_image(0)
> ---------------------------------------------------------------------------
> NotImplementedError Traceback (most recent call
> last)
>
> /home/vbraun/opt/sage-4.5.2/devel/sage-main/sage/libs/singular/<ipython
> console> in <module>()
>
> /home/vbraun/Sage/sage/local/lib/python2.6/site-
> packages/sage/rings/morphism.so in
> sage.rings.morphism.RingHomomorphism.inverse_image
> (sage/rings/morphism.c:4168)()
>
> NotImplementedError:
> sage: kernel(f)
> ---------------------------------------------------------------------------
> AttributeError Traceback (most recent call
> last)
>
> /home/vbraun/opt/sage-4.5.2/devel/sage-main/sage/libs/singular/<ipython
> console> in <module>()
>
> /home/vbraun/Sage/sage/local/lib/python2.6/site-
> packages/sage/misc/functional.pyc in kernel(x)
> 907 ]
> 908 """
> --> 909 return x.kernel()
> 910
> 911 def krull_dimension(x):
>
> /home/vbraun/Sage/sage/local/lib/python2.6/site-
> packages/sage/structure/element.so in
> sage.structure.element.Element.__getattr__
> (sage/structure/element.c:2632)()
>
> /home/vbraun/Sage/sage/local/lib/python2.6/site-
> packages/sage/structure/parent.so in
> sage.structure.parent.getattr_from_other_class
> (sage/structure/parent.c:2835)()
>
> /home/vbraun/Sage/sage/local/lib/python2.6/site-
> packages/sage/structure/parent.so in
> sage.structure.parent.raise_attribute_error
> (sage/structure/parent.c:2602)()
>
> AttributeError: 'sage.rings.morphism.RingHomomorphism_im_gens' object has
> no attribute 'kernel'
> }}}
> Here is the corresponding Singular computation:
> {{{
> sage: sage: singular.eval('''
> ....: ring R=0,(s,t),dp;
> ....: ring S=0,(x,y,z,w),dp;
> ....: setring R;
> ....: map f=S,ideal(s^4,s^3*t,s*t^3,t^4);
> ....: setring S;
> ....: ideal ker=kernel(R,f)
> ....: ''');
> sage: sage: singular.get('ker')
> 'yz-xw,\nz3-yw2,\nxz2-y2w,\ny3-x2z'
> sage: sage: print(_)
> yz-xw,
> z3-yw2,
> xz2-y2w,
> y3-x2z
> }}}
New description:
It would be nice if kernels and inverse images of ring maps were
implemented:
{{{
sage: R.<s,t>=PolynomialRing(QQ);R
Multivariate Polynomial Ring in s, t over Rational Field
sage: S.<x,y,z,w>=PolynomialRing(QQ);S
Multivariate Polynomial Ring in x, y, z, w over Rational Field
sage: f=S.hom([s^4,s^3*t,s*t^3,t^4],R);f
Ring morphism:
From: Multivariate Polynomial Ring in x, y, z, w over Rational Field
To: Multivariate Polynomial Ring in s, t over Rational Field
Defn: x |--> s^4
y |--> s^3*t
z |--> s*t^3
w |--> t^4
sage: f.inverse_image(0)
---------------------------------------------------------------------------
NotImplementedError Traceback (most recent call
last)
/home/vbraun/opt/sage-4.5.2/devel/sage-main/sage/libs/singular/<ipython
console> in <module>()
/home/vbraun/Sage/sage/local/lib/python2.6/site-
packages/sage/rings/morphism.so in
sage.rings.morphism.RingHomomorphism.inverse_image
(sage/rings/morphism.c:4168)()
NotImplementedError:
sage: kernel(f)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call
last)
/home/vbraun/opt/sage-4.5.2/devel/sage-main/sage/libs/singular/<ipython
console> in <module>()
/home/vbraun/Sage/sage/local/lib/python2.6/site-
packages/sage/misc/functional.pyc in kernel(x)
907 ]
908 """
--> 909 return x.kernel()
910
911 def krull_dimension(x):
/home/vbraun/Sage/sage/local/lib/python2.6/site-
packages/sage/structure/element.so in
sage.structure.element.Element.__getattr__
(sage/structure/element.c:2632)()
/home/vbraun/Sage/sage/local/lib/python2.6/site-
packages/sage/structure/parent.so in
sage.structure.parent.getattr_from_other_class
(sage/structure/parent.c:2835)()
/home/vbraun/Sage/sage/local/lib/python2.6/site-
packages/sage/structure/parent.so in
sage.structure.parent.raise_attribute_error
(sage/structure/parent.c:2602)()
AttributeError: 'sage.rings.morphism.RingHomomorphism_im_gens' object has
no attribute 'kernel'
}}}
Here is the corresponding Singular computation:
{{{
sage: singular.eval('''
....: ring R=0,(s,t),dp;
....: ring S=0,(x,y,z,w),dp;
....: setring R;
....: map f=S,ideal(s^4,s^3*t,s*t^3,t^4);
....: setring S;
....: ideal ker=kernel(R,f)
....: ''');
sage: singular.get('ker')
'yz-xw,\nz3-yw2,\nxz2-y2w,\ny3-x2z'
sage: print(_)
yz-xw,
z3-yw2,
xz2-y2w,
y3-x2z
}}}
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9792#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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.