Weighted projective curves

Weighted projective curves in Sage are curves in a weighted projective space or a weighted projective plane.

EXAMPLES:

For now, only curves in weighted projective plane is supported:

sage: WP.<x, y, z> = WeightedProjectiveSpace([1, 3, 1], QQ)
sage: C1 = WP.curve(y^2 - x^5 * z - 3 * x^2 * z^4 - 2 * z^6); C1
Weighted Projective Curve over Rational Field defined by y^2 - x^5*z - 3*x^2*z^4 - 2*z^6
sage: C2 = Curve(y^2 - x^5 * z - 3 * x^2 * z^4 - 2 * z^6, WP); C2
Weighted Projective Curve over Rational Field defined by y^2 - x^5*z - 3*x^2*z^4 - 2*z^6
sage: C1 == C2
True
>>> from sage.all import *
>>> WP = WeightedProjectiveSpace([Integer(1), Integer(3), Integer(1)], QQ, names=('x', 'y', 'z',)); (x, y, z,) = WP._first_ngens(3)
>>> C1 = WP.curve(y**Integer(2) - x**Integer(5) * z - Integer(3) * x**Integer(2) * z**Integer(4) - Integer(2) * z**Integer(6)); C1
Weighted Projective Curve over Rational Field defined by y^2 - x^5*z - 3*x^2*z^4 - 2*z^6
>>> C2 = Curve(y**Integer(2) - x**Integer(5) * z - Integer(3) * x**Integer(2) * z**Integer(4) - Integer(2) * z**Integer(6), WP); C2
Weighted Projective Curve over Rational Field defined by y^2 - x^5*z - 3*x^2*z^4 - 2*z^6
>>> C1 == C2
True

AUTHORS:

  • Gareth Ma (2025)

class sage.schemes.curves.weighted_projective_curve.WeightedProjectiveCurve(A, X, *kwargs)[source]

Bases: Curve_generic

Curves in weighted projective spaces.

EXAMPLES:

We construct a hyperelliptic curve manually:

sage: WP.<x, y, z> = WeightedProjectiveSpace([1, 3, 1], QQ)
sage: C = Curve(y^2 - x^5 * z - 3 * x^2 * z^4 - 2 * z^6, WP); C
Weighted Projective Curve over Rational Field defined by y^2 - x^5*z - 3*x^2*z^4 - 2*z^6
>>> from sage.all import *
>>> WP = WeightedProjectiveSpace([Integer(1), Integer(3), Integer(1)], QQ, names=('x', 'y', 'z',)); (x, y, z,) = WP._first_ngens(3)
>>> C = Curve(y**Integer(2) - x**Integer(5) * z - Integer(3) * x**Integer(2) * z**Integer(4) - Integer(2) * z**Integer(6), WP); C
Weighted Projective Curve over Rational Field defined by y^2 - x^5*z - 3*x^2*z^4 - 2*z^6
projective_curve()[source]

Return this weighted projective curve as a projective curve.

A weighted homogeneous polynomial \(f(x_1, \ldots, x_n)\), where \(x_i\) has weight \(w_i\), can be viewed as an unweighted homogeneous polynomial \(f(y_1^{w_1}, \ldots, y_n^{w_n})\). This correspondence extends to varieties.

EXAMPLES:

sage: WP = WeightedProjectiveSpace([1, 3, 1], QQ, "x, y, z")
sage: x, y, z = WP.gens()
sage: C = WP.curve(y^2 - (x^5*z + 3*x^2*z^4 - 2*x*z^5 + 4*z^6)); C
Weighted Projective Curve over Rational Field defined by y^2 - x^5*z - 3*x^2*z^4 + 2*x*z^5 - 4*z^6
sage: C.projective_curve()
Projective Plane Curve over Rational Field defined by y^6 - x^5*z - 3*x^2*z^4 + 2*x*z^5 - 4*z^6
>>> from sage.all import *
>>> WP = WeightedProjectiveSpace([Integer(1), Integer(3), Integer(1)], QQ, "x, y, z")
>>> x, y, z = WP.gens()
>>> C = WP.curve(y**Integer(2) - (x**Integer(5)*z + Integer(3)*x**Integer(2)*z**Integer(4) - Integer(2)*x*z**Integer(5) + Integer(4)*z**Integer(6))); C
Weighted Projective Curve over Rational Field defined by y^2 - x^5*z - 3*x^2*z^4 + 2*x*z^5 - 4*z^6
>>> C.projective_curve()
Projective Plane Curve over Rational Field defined by y^6 - x^5*z - 3*x^2*z^4 + 2*x*z^5 - 4*z^6