# Revision history [back]

I've found a solution. It's not necessary to consider the fraction field.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: I=R.ideal(x^3+a4*x+a6-y^2)
sage: Q=R.quotient(I)
sage: E=EllipticCurve(Q,[a4,a6])
sage: D=E.discriminant()
sage: D.lift()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


I've found a solution. It's not necessary to consider the fraction field.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: I=R.ideal(x^3+a4*x+a6-y^2)
sage: Q=R.quotient(I)
sage: E=EllipticCurve(Q,[a4,a6])
sage: D=E.discriminant()
sage: D.lift()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


But what if I want to add some points on the elliptic curve generally?

I've found a solution. It's not necessary to consider the fraction field.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: I=R.ideal(x^3+a4*x+a6-y^2)
sage: Q=R.quotient(I)
sage: E=EllipticCurve(Q,[a4,a6])
sage: D=E.discriminant()
sage: D.lift()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


It's not even necessary to consider the quotient ring.

sage:  R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: E=EllipticCurve(R,[a4,a6])
sage: E.discriminant()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


But what if I want to add some points on the elliptic curve generally?generally and want to simplify those terms?

I've found a solution. It's not necessary to consider the fraction field.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: I=R.ideal(x^3+a4*x+a6-y^2)
sage: Q=R.quotient(I)
sage: E=EllipticCurve(Q,[a4,a6])
sage: D=E.discriminant()
sage: D.lift()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


It's not even necessary to consider the quotient ring.

sage:  R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: E=EllipticCurve(R,[a4,a6])
sage: E.discriminant()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


But what if I want to add some points on the elliptic curve generally and want to simplify those terms?

I've found a solution. It's not necessary to consider the fraction field.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: I=R.ideal(x^3+a4*x+a6-y^2)
sage: Q=R.quotient(I)
sage: E=EllipticCurve(Q,[a4,a6])
sage: D=E.discriminant()
sage: D.lift()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


It's not even necessary to consider the quotient ring.

sage:  R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: E=EllipticCurve(R,[a4,a6])
sage: E.discriminant()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


But what if I want to add some points on the elliptic curve generally and want to simplify those terms?

I've found a solution. It's not necessary to consider the fraction field.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: I=R.ideal(x^3+a4*x+a6-y^2)
sage: Q=R.quotient(I)
sage: E=EllipticCurve(Q,[a4,a6])
sage: D=E.discriminant()
sage: D.lift()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


It's not even necessary to consider the quotient ring.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: E=EllipticCurve(R,[a4,a6])
sage: E.discriminant()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


But what if I want to add some points on the elliptic curve generally and want to simplify those the output terms?

I've found a solution. It's not necessary to consider the fraction field.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: I=R.ideal(x^3+a4*x+a6-y^2)
sage: Q=R.quotient(I)
sage: E=EllipticCurve(Q,[a4,a6])
sage: D=E.discriminant()
sage: D.lift()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


It's not even necessary to consider the quotient ring.

sage: R=PolynomialRing(QQ, ['x','y','a4','a6'])
sage: R.inject_variables()
Defining x, y, a4, a6
sage: E=EllipticCurve(R,[a4,a6])
sage: E.discriminant()
-64*a4^3 - 432*a6^2
sage: factor(_)
(-16) * (4*a4^3 + 27*a6^2)


But what if I want to add some points on the elliptic curve generally and want to simplify the output terms?

Okay, I've also found an answer to that. One can "extract" the numerator and denominator separately and then lift them.