(moved over from sage-support...)

On Jan 14, 2008, at 10:28 PM, David Harvey wrote:

> What would be *really* nice is if we could work directly in the
> fraction field of the quotient of R.<x1,y1,x2,y2,x3,y3,a,b> by the
> appropriate ideal. (Does that even make sense? Is the ideal prime?) I
> tried to do this but Sage gave up pretty quickly on me. A nice encore
> would be to do this using Sage's elliptic curve class to do the
> actual arithmetic. After all EllipticCurves can be defined over any
> field....
>
> Here's my dream session:
>
> sage: R.<x1,y1,x2,y2,x3,y3,a,b> = QQ[]
> sage: I = R.ideal(y1^2 - x1^3 - a*x1 - b, y2^2 - x2^3 - a*x2 - b,
> y3^2 - x3^3 - a*x3 - b)
> sage: S = FractionField(R.quotient(I))     # currently barfs
> sage: E = EllipticCurve(S, [a, b])
> sage: P1 = E(x1, y1)
> sage: P2 = E(x2, y2)
> sage: P3 = E(x3, y3)
> sage: (P1 + P2) + P3 == P1 + (P2 + P3)
> True

Ha ha ha I can almost make this work.

I edited sage/rings/ideal.py so that is_prime() always returns True  
and is_maximal() function always returns False (not a good long-term  
solution.....)

Then:

sage: R.<x1,y1,x2,y2,x3,y3,a,b> = QQ[]
sage: I = R.ideal(y1^2 - x1^3 - a*x1 - b, y2^2 - x2^3 - a*x2 - b,   
y3^2 - x3^3 - a*x3 - b)
sage: S = FractionField(R.quotient(I))
sage: S
Fraction Field of Quotient of Multivariate Polynomial Ring in x1, y1,  
x2, y2, x3, y3, a, b over Rational Field by the ideal (-x1^3 + y1^2 -  
x1*a - b, -x2^3 + y2^2 - x2*a - b, -x3^3 + y3^2 - x3*a - b)
sage: E = EllipticCurve(S, [a, b])
sage: E
Elliptic Curve defined by y^2  = x^3 + abar*x + bbar over Fraction  
Field of Quotient of Multivariate Polynomial Ring in x1, y1, x2, y2,  
x3, y3, a, b over Rational Field by the ideal (-x1^3 + y1^2 - x1*a -  
b, -x2^3 + y2^2 - x2*a - b, -x3^3 + y3^2 - x3*a - b)
sage: P1 = E(x1, y1)
sage: P1
(x1bar : y1bar : 1)
sage: P2 = E(x2, y2)
sage: P3 = E(x3, y3)
sage: P1 + P2
((x1bar^2*x2bar + x1bar*x2bar^2 - 2*y1bar*y2bar + x1bar*abar +  
x2bar*abar + 2*bbar)/(x1bar^2 - 2*x1bar*x2bar + x2bar^2) :  
(-3*y1bar^3*x2bar^2 + x1bar^2*y1bar^2*y2bar +  
x1bar*y1bar^2*x2bar*y2bar - 5*y1bar^2*x2bar^2*y2bar +  
5*x1bar^2*y1bar*y2bar^2 - x1bar*y1bar*x2bar*y2bar^2 -  
y1bar*x2bar^2*y2bar^2 + 3*x1bar^2*y2bar^3 -  
6*x1bar^2*y1bar*x2bar*abar + 9*x1bar*y1bar*x2bar^2*abar -  
9*x1bar^2*x2bar*y2bar*abar + 6*x1bar*x2bar^2*y2bar*abar -  
y1bar^3*abar + 2*y1bar^2*y2bar*abar - 2*y1bar*y2bar^2*abar +  
y2bar^3*abar + x1bar*y1bar*abar^2 + 2*y1bar*x2bar*abar^2 -  
2*x1bar*y2bar*abar^2 - x2bar*y2bar*abar^2 - 9*x1bar^2*y1bar*bbar +  
9*x1bar*y1bar*x2bar*bbar - 9*x1bar*x2bar*y2bar*bbar +  
9*x2bar^2*y2bar*bbar + 3*y1bar*abar*bbar - 3*y2bar*abar*bbar)/ 
(x1bar^2*y1bar^2 - 5*x1bar*y1bar^2*x2bar + 10*y1bar^2*x2bar^2 -  
10*x1bar^2*y2bar^2 + 5*x1bar*x2bar*y2bar^2 - x2bar^2*y2bar^2 +  
15*x1bar^2*x2bar*abar - 15*x1bar*x2bar^2*abar - y1bar^2*abar +  
y2bar^2*abar + x1bar*abar^2 - x2bar*abar^2 + 9*x1bar^2*bbar -  
9*x2bar^2*bbar) : 1)
sage: Q1 = (P1 + P2) + P3

.... but then it chickens out. Sage thinks for about 90s, chews up  
400MB RAM, then singular takes over and just sits there for a while.  
Maybe it's doing a multivariate gcd somewhere? Dunno. Funny thing is  
that singular doesn't use much memory at all. I killed it after 10  
minutes. Any ideas?

david


--~--~---------~--~----~------------~-------~--~----~
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-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to