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

Reply via email to