Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Riemann-Roch computations in Brill-Noether routines
PostPosted: Fri Nov 06, 2009 11:00 am 
Site Admin

Joined: Wed Nov 12, 2008 5:09 pm
Posts: 20
Riemann-Roch computations in Brill-Noether routines (brnoeth.lib)

As this may be of interest for more SINGULAR users, I post this here.
(The answer follows below the request.)

Frank


Hello,
>
> I am interested in computing dimensions of RR spaces with Singular
> (and subsequently Sage). The main problem is how to define divisors on
> a curve when we know the points with certain coordinates. In magma it
> is done by P=C![x,y,z];D=Divisor(P); (where x,y,z are the particular
> coordinates) and from there on everything works easy.
>
> In Singular seems that the way of doing this is using the vector G (as
> in intvec G=(10,-1,0,0,9,0,0,0,0,0,0,0,0,0);). If I understand
> correctly each position in G corresponds to one of the places from the
> output C[3]. I think part of the confusion was that G is NOT
> corresponding to the output of C[1][5]->POINTS.
>
> Here is an example:
> LIB "brnoeth.lib";
> ring s=5,(x,y,z),lp;
> list C = Adj_div(x7+y7+z7);
> C = NSplaces(1,C);
> C = extcurve(1,C);
> C[3];
>
> [1]:
> 6,1
> [2]:
> 1,1
> [3]:
> 1,2
> [4]:
> 1,3
> [5]:
> 1,4
> [6]:
> 1,5
> [7]:
> 1,6
>
> intvec G=(10,-1,0,0,0,3);
> def R = C[1][2];
> setring R;
> list LG = BrillNoether(G,C);
> size(LG);
> 48
>
> This can only make sense if G[0] was the multiplicity of the divisor
> at the place of degree 6. However,
>
> def R=C[1][5];
> setring R;
> print(POINTS);
> [1]:
> [1]:
> -1
> [2]:
> 1
> [3]:
> 0
> [2]:
> [1]:
> -2
> [2]:
> -2
> [3]:
> 1
> [3]:
> [1]:
> 0
> [2]:
> -1
> [3]:
> 1
> [4]:
> [1]:
> 2
> [2]:
> 1
> [3]:
> 1
> [5]:
> [1]:
> 1
> [2]:
> 2
> [3]:
> 1
> [6]:
> [1]:
> -1
> [2]:
> 0
> [3]:
> 1
> Which are only the 6 places of the degree 1. So G cannot be mapping to
> the output of C[1][5]->Points.
>
> Here is my question. Say I want to know the dimension(or basis) for
> the divisor D=10*P where P=(-1,0,1) (on the curve from the example
> above). How should I setup my G to compute that (i.e. what position
> should 10 be at in the intvec)?

============================================
============= ANSWER ========================
============================================

Dear colleague,
>
> In the computation of a basis for the Riemann-Roch space
> L(G), and for coding purposes, you can take a divisor G
> supported on any closed point of degree d, not only
> a rational point over the base field.
> It is true though that the sake of generality produces
> a little of confusion in the notation, but I will try to
> explain how to get what you want from the library.
>
> The ring from your example
> > def R=C[1][5];
> contains the "rational points" to evaluate functions,
> once you have extended the base field if necessary,
> so that there you do not have all the possible
> "points" to build the divisor G.
>
> The list of "closed points" C[3] is constructed in the following way:
> each point contains a couple of integers, namely the degree of the
> point and the index of such point in the corresponding "local ring",
> where you can find the coordinates.
>
> I will show you how to pass from C[3] to coordinates an vice versa,
> in your example ...
>
> > C[3];
> >
> > [1]:
> > 6,1
> > [2]:
> > 1,1
> > [3]:
> > 1,2
> > [4]:
> > 1,3
> > [5]:
> > 1,4
> > [6]:
> > 1,5
> > [7]:
> > 1,6
>
> For example the point (place) in position [4] = 1,3
> is a point of degree d=1, so that I have to look at the
> local ring C[5][d][1]=C[5][1][1], and there you have a
> list called POINTS where the point in position 3
> POINTS[3] is the point you look for, i.e. (0,-1,1)
>
> In the opposite way (precisely your question):
> you know the coordinates P=(-1,0,1) and you look
> for the "place" in C[3]. Then you have to look
> the position of such point in the list POINTS
> in C[5][1][1], since it is rational over the prime field
> (in this case, the position in this ring is equal to that
> in C[1][5] as long as you do not extend the base field
> looking for more rational points to evaluate),
> that is position 6.
> Thus, you are considering the sixth point of degree 1,
> which corresponds in the list of places C[3] to the
> place number [7] = 1,6
> This means the divisor you want is
> G=0,0,0,0,0,0,10;
> (10 times the point/place P).
> Now you have to be careful not to evaluate at the
> rational point POINTS[6] in the ring C[1][5],
> which is the same point !
> Note now that the divisor D consists of just rational
> points with coefficient 1, so that you have just to choose
> such points, and the syntax now is different:
> > intvec D=1,2,3,4,5;
> meaning that you choose the rational points number 1 to 5,
> but not the 6th !
>
> I am aware that the notation is confusing, but we did in
> this way for the sake of generality.
>
> I hope I have helped you a little bit.
>
> Best regards,
> J. Ignacio Farran.


Report this post
Top
 Profile  
Reply with quote  
 Post subject: Re: Riemann-Roch computations in Brill-Noether routines
PostPosted: Thu Nov 12, 2009 1:36 pm 
Site Admin

Joined: Wed Nov 12, 2008 5:09 pm
Posts: 20
Dear colleague,
>
> In the computation of a basis for the Riemann-Roch space
> L(G), and for coding purposes, you can take a divisor G
> supported on any closed point of degree d, not only
> a rational point over the base field.
> It is true though that the sake of generality produces
> a little of confusion in the notation, but I will try to
> explain how to get what you want from the library.
>
> The ring from your example
> > def R=C[1][5];
> contains the "rational points" to evaluate functions,
> once you have extended the base field if necessary,
> so that there you do not have all the possible
> "points" to build the divisor G.
>
> The list of "closed points" C[3] is constructed in the following way:
> each point contains a couple of integers, namely the degree of the
> point and the index of such point in the corresponding "local ring",
> where you can find the coordinates.
>
> I will show you how to pass from C[3] to coordinates an vice versa,
> in your example ...
>
> > C[3];
> >
> > [1]:
> > 6,1
> > [2]:
> > 1,1
> > [3]:
> > 1,2
> > [4]:
> > 1,3
> > [5]:
> > 1,4
> > [6]:
> > 1,5
> > [7]:
> > 1,6
>
> For example the point (place) in position [4] = 1,3
> is a point of degree d=1, so that I have to look at the
> local ring C[5][d][1]=C[5][1][1], and there you have a
> list called POINTS where the point in position 3
> POINTS[3] is the point you look for, i.e. (0,-1,1)
>
> In the opposite way (precisely your question):
> you know the coordinates P=(-1,0,1) and you look
> for the "place" in C[3]. Then you have to look
> the position of such point in the list POINTS
> in C[5][1][1], since it is rational over the prime field
> (in this case, the position in this ring is equal to that
> in C[1][5] as long as you do not extend the base field
> looking for more rational points to evaluate),
> that is position 6.
> Thus, you are considering the sixth point of degree 1,
> which corresponds in the list of places C[3] to the
> place number [7] = 1,6
> This means the divisor you want is
> G=0,0,0,0,0,0,10;
> (10 times the point/place P).
> Now you have to be careful not to evaluate at the
> rational point POINTS[6] in the ring C[1][5],
> which is the same point !
> Note now that the divisor D consists of just rational
> points with coefficient 1, so that you have just to choose
> such points, and the syntax now is different:
> > intvec D=1,2,3,4,5;
> meaning that you choose the rational points number 1 to 5,
> but not the 6th !
>
> I am aware that the notation is confusing, but we did in
> this way for the sake of generality.
>
> I hope I have helped you a little bit.
>
> Best regards,
> J. Ignacio Farran.


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

It is currently Fri May 13, 2022 11:06 am
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group