Rational points of curves

We can create points on projective curves:

sage: P.<x,y,z,w> = ProjectiveSpace(QQ, 3)
sage: C = Curve([x^3 - 2*x*z^2 - y^3, z^3 - w^3 - x*y*z], P)
sage: Q = C([1,1,0,0])
sage: Q.parent()
Set of rational points of Projective Curve over Rational Field
 defined by x^3 - y^3 - 2*x*z^2, -x*y*z + z^3 - w^3
>>> from sage.all import *
>>> P = ProjectiveSpace(QQ, Integer(3), names=('x', 'y', 'z', 'w',)); (x, y, z, w,) = P._first_ngens(4)
>>> C = Curve([x**Integer(3) - Integer(2)*x*z**Integer(2) - y**Integer(3), z**Integer(3) - w**Integer(3) - x*y*z], P)
>>> Q = C([Integer(1),Integer(1),Integer(0),Integer(0)])
>>> Q.parent()
Set of rational points of Projective Curve over Rational Field
 defined by x^3 - y^3 - 2*x*z^2, -x*y*z + z^3 - w^3

or on affine curves:

sage: A.<x,y> = AffineSpace(GF(23), 2)
sage: C = Curve([y - y^4 + 17*x^2 - 2*x + 22], A)
sage: Q = C([22,21])
sage: Q.parent()
Set of rational points of Affine Plane Curve over Finite Field of size 23
 defined by -y^4 - 6*x^2 - 2*x + y - 1
>>> from sage.all import *
>>> A = AffineSpace(GF(Integer(23)), Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = Curve([y - y**Integer(4) + Integer(17)*x**Integer(2) - Integer(2)*x + Integer(22)], A)
>>> Q = C([Integer(22),Integer(21)])
>>> Q.parent()
Set of rational points of Affine Plane Curve over Finite Field of size 23
 defined by -y^4 - 6*x^2 - 2*x + y - 1

AUTHORS:

  • Grayson Jorgenson (2016-6): initial version

class sage.schemes.curves.point.AffineCurvePoint_field(X, v, check=True)[source]

Bases: SchemeMorphism_point_affine_field

is_singular()[source]

Return whether this point is a singular point of the affine curve it is on.

EXAMPLES:

sage: # needs sage.rings.number_field
sage: K = QuadraticField(-1)
sage: A.<x,y,z> = AffineSpace(K, 3)
sage: C = Curve([(x^4 + 2*z + 2)*y, z - y + 1])
sage: Q1 = C([0,0,-1])
sage: Q1.is_singular()
True
sage: Q2 = C([-K.gen(),0,-1])
sage: Q2.is_singular()
False
>>> from sage.all import *
>>> # needs sage.rings.number_field
>>> K = QuadraticField(-Integer(1))
>>> A = AffineSpace(K, Integer(3), names=('x', 'y', 'z',)); (x, y, z,) = A._first_ngens(3)
>>> C = Curve([(x**Integer(4) + Integer(2)*z + Integer(2))*y, z - y + Integer(1)])
>>> Q1 = C([Integer(0),Integer(0),-Integer(1)])
>>> Q1.is_singular()
True
>>> Q2 = C([-K.gen(),Integer(0),-Integer(1)])
>>> Q2.is_singular()
False
class sage.schemes.curves.point.AffinePlaneCurvePoint_field(X, v, check=True)[source]

Bases: AffineCurvePoint_field

Point of an affine plane curve over a field.

is_ordinary_singularity()[source]

Return whether this point is an ordinary singularity of the affine plane curve it is on.

EXAMPLES:

sage: A.<x,y> = AffineSpace(QQ, 2)
sage: C = A.curve([x^5 - x^3*y^2 + 5*x^4 - x^3*y - 3*x^2*y^2 +
....: x*y^3 + 10*x^3 - 3*x^2*y - 3*x*y^2 + y^3 + 10*x^2 - 3*x*y - y^2 +
....: 5*x - y + 1])
sage: Q = C([-1,0])
sage: Q.is_ordinary_singularity()
True
>>> from sage.all import *
>>> A = AffineSpace(QQ, Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = A.curve([x**Integer(5) - x**Integer(3)*y**Integer(2) + Integer(5)*x**Integer(4) - x**Integer(3)*y - Integer(3)*x**Integer(2)*y**Integer(2) +
... x*y**Integer(3) + Integer(10)*x**Integer(3) - Integer(3)*x**Integer(2)*y - Integer(3)*x*y**Integer(2) + y**Integer(3) + Integer(10)*x**Integer(2) - Integer(3)*x*y - y**Integer(2) +
... Integer(5)*x - y + Integer(1)])
>>> Q = C([-Integer(1),Integer(0)])
>>> Q.is_ordinary_singularity()
True

sage: A.<x,y> = AffineSpace(GF(7), 2)
sage: C = A.curve([y^2 - x^7 - 6*x^3])
sage: Q = C([0,0])
sage: Q.is_ordinary_singularity()
False
>>> from sage.all import *
>>> A = AffineSpace(GF(Integer(7)), Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = A.curve([y**Integer(2) - x**Integer(7) - Integer(6)*x**Integer(3)])
>>> Q = C([Integer(0),Integer(0)])
>>> Q.is_ordinary_singularity()
False
is_transverse(D)[source]

Return whether the intersection of the curve D at this point with the curve this point is on is transverse or not.

INPUT:

  • D – a curve in the same ambient space as the curve this point is on

EXAMPLES:

sage: A.<x,y> = AffineSpace(QQ, 2)
sage: C = Curve([y - x^2], A)
sage: D = Curve([y], A)
sage: Q = C([0,0])
sage: Q.is_transverse(D)
False
>>> from sage.all import *
>>> A = AffineSpace(QQ, Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = Curve([y - x**Integer(2)], A)
>>> D = Curve([y], A)
>>> Q = C([Integer(0),Integer(0)])
>>> Q.is_transverse(D)
False

sage: # needs sage.rings.number_field
sage: R.<a> = QQ[]
sage: K.<b> = NumberField(a^2 - 2)
sage: A.<x,y> = AffineSpace(K, 2)
sage: C = Curve([y^2 + x^2 - 1], A)
sage: D = Curve([y - x], A)
sage: Q = C([-1/2*b, -1/2*b])
sage: Q.is_transverse(D)
True
>>> from sage.all import *
>>> # needs sage.rings.number_field
>>> R = QQ['a']; (a,) = R._first_ngens(1)
>>> K = NumberField(a**Integer(2) - Integer(2), names=('b',)); (b,) = K._first_ngens(1)
>>> A = AffineSpace(K, Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = Curve([y**Integer(2) + x**Integer(2) - Integer(1)], A)
>>> D = Curve([y - x], A)
>>> Q = C([-Integer(1)/Integer(2)*b, -Integer(1)/Integer(2)*b])
>>> Q.is_transverse(D)
True
multiplicity()[source]

Return the multiplicity of this point with respect to the affine curve it is on.

EXAMPLES:

sage: A.<x,y> = AffineSpace(QQ, 2)
sage: C = A.curve([2*x^7 - 3*x^6*y + x^5*y^2 + 31*x^6 - 40*x^5*y +
....: 13*x^4*y^2 - x^3*y^3 + 207*x^5 - 228*x^4*y + 70*x^3*y^2 - 7*x^2*y^3
....: + 775*x^4 - 713*x^3*y + 193*x^2*y^2 - 19*x*y^3 + y^4 + 1764*x^3 -
....: 1293*x^2*y + 277*x*y^2 - 22*y^3 + 2451*x^2 - 1297*x*y + 172*y^2 +
....: 1935*x - 570*y + 675])
sage: Q = C([-2,1])
sage: Q.multiplicity()
4
>>> from sage.all import *
>>> A = AffineSpace(QQ, Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = A.curve([Integer(2)*x**Integer(7) - Integer(3)*x**Integer(6)*y + x**Integer(5)*y**Integer(2) + Integer(31)*x**Integer(6) - Integer(40)*x**Integer(5)*y +
... Integer(13)*x**Integer(4)*y**Integer(2) - x**Integer(3)*y**Integer(3) + Integer(207)*x**Integer(5) - Integer(228)*x**Integer(4)*y + Integer(70)*x**Integer(3)*y**Integer(2) - Integer(7)*x**Integer(2)*y**Integer(3)
... + Integer(775)*x**Integer(4) - Integer(713)*x**Integer(3)*y + Integer(193)*x**Integer(2)*y**Integer(2) - Integer(19)*x*y**Integer(3) + y**Integer(4) + Integer(1764)*x**Integer(3) -
... Integer(1293)*x**Integer(2)*y + Integer(277)*x*y**Integer(2) - Integer(22)*y**Integer(3) + Integer(2451)*x**Integer(2) - Integer(1297)*x*y + Integer(172)*y**Integer(2) +
... Integer(1935)*x - Integer(570)*y + Integer(675)])
>>> Q = C([-Integer(2),Integer(1)])
>>> Q.multiplicity()
4
tangents()[source]

Return the tangents at this point of the affine plane curve this point is on.

OUTPUT: list of polynomials in the coordinate ring of the ambient space of the curve this point is on

EXAMPLES:

sage: A.<x,y> = AffineSpace(QQ, 2)
sage: C = A.curve([x^5 - x^3*y^2 + 5*x^4 - x^3*y - 3*x^2*y^2 +
....: x*y^3 + 10*x^3 - 3*x^2*y - 3*x*y^2 + y^3 + 10*x^2 - 3*x*y - y^2 +
....: 5*x - y + 1])
sage: Q = C([-1,0])
sage: Q.tangents()
[y, x + 1, x - y + 1, x + y + 1]
>>> from sage.all import *
>>> A = AffineSpace(QQ, Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = A.curve([x**Integer(5) - x**Integer(3)*y**Integer(2) + Integer(5)*x**Integer(4) - x**Integer(3)*y - Integer(3)*x**Integer(2)*y**Integer(2) +
... x*y**Integer(3) + Integer(10)*x**Integer(3) - Integer(3)*x**Integer(2)*y - Integer(3)*x*y**Integer(2) + y**Integer(3) + Integer(10)*x**Integer(2) - Integer(3)*x*y - y**Integer(2) +
... Integer(5)*x - y + Integer(1)])
>>> Q = C([-Integer(1),Integer(0)])
>>> Q.tangents()
[y, x + 1, x - y + 1, x + y + 1]
class sage.schemes.curves.point.AffinePlaneCurvePoint_finite_field(X, v, check=True)[source]

Bases: AffinePlaneCurvePoint_field, SchemeMorphism_point_affine_finite_field

Point of an affine plane curve over a finite field.

class sage.schemes.curves.point.IntegralAffineCurvePoint(X, v, check=True)[source]

Bases: AffineCurvePoint_field

Point of an integral affine curve.

closed_point()[source]

Return the closed point that corresponds to this rational point.

EXAMPLES:

sage: # needs sage.rings.finite_rings
sage: A.<x,y> = AffineSpace(GF(8), 2)
sage: C = Curve(x^5 + y^5 + x*y + 1)
sage: p = C([1,1])
sage: p.closed_point()
Point (x + 1, y + 1)
>>> from sage.all import *
>>> # needs sage.rings.finite_rings
>>> A = AffineSpace(GF(Integer(8)), Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = Curve(x**Integer(5) + y**Integer(5) + x*y + Integer(1))
>>> p = C([Integer(1),Integer(1)])
>>> p.closed_point()
Point (x + 1, y + 1)
place()[source]

Return a place on this point.

EXAMPLES:

sage: A.<x,y> = AffineSpace(GF(2), 2)
sage: C = Curve(x^5 + y^5 + x*y + 1)
sage: p = C(-1,-1)
sage: p
(1, 1)
sage: p.closed_point()
Point (x + 1, y + 1)
sage: _.place()
Place (x + 1, (1/(x^5 + 1))*y^4 + ((x^5 + x^4 + 1)/(x^5 + 1))*y^3
              + ((x^5 + x^3 + 1)/(x^5 + 1))*y^2 + (x^2/(x^5 + 1))*y)
>>> from sage.all import *
>>> A = AffineSpace(GF(Integer(2)), Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = Curve(x**Integer(5) + y**Integer(5) + x*y + Integer(1))
>>> p = C(-Integer(1),-Integer(1))
>>> p
(1, 1)
>>> p.closed_point()
Point (x + 1, y + 1)
>>> _.place()
Place (x + 1, (1/(x^5 + 1))*y^4 + ((x^5 + x^4 + 1)/(x^5 + 1))*y^3
              + ((x^5 + x^3 + 1)/(x^5 + 1))*y^2 + (x^2/(x^5 + 1))*y)
places()[source]

Return all places on this point.

EXAMPLES:

sage: A.<x,y> = AffineSpace(GF(2), 2)
sage: C = Curve(x^5 + y^5 + x*y + 1)
sage: p = C(-1,-1)
sage: p
(1, 1)
sage: p.closed_point()
Point (x + 1, y + 1)
sage: _.places()
[Place (x + 1, (1/(x^5 + 1))*y^4 + ((x^5 + x^4 + 1)/(x^5 + 1))*y^3
               + ((x^5 + x^3 + 1)/(x^5 + 1))*y^2 + (x^2/(x^5 + 1))*y),
 Place (x + 1, (1/(x^5 + 1))*y^4 + ((x^5 + x^4 + 1)/(x^5 + 1))*y^3
               + (x^3/(x^5 + 1))*y^2 + (x^2/(x^5 + 1))*y + x + 1)]
>>> from sage.all import *
>>> A = AffineSpace(GF(Integer(2)), Integer(2), names=('x', 'y',)); (x, y,) = A._first_ngens(2)
>>> C = Curve(x**Integer(5) + y**Integer(5) + x*y + Integer(1))
>>> p = C(-Integer(1),-Integer(1))
>>> p
(1, 1)
>>> p.closed_point()
Point (x + 1, y + 1)
>>> _.places()
[Place (x + 1, (1/(x^5 + 1))*y^4 + ((x^5 + x^4 + 1)/(x^5 + 1))*y^3
               + ((x^5 + x^3 + 1)/(x^5 + 1))*y^2 + (x^2/(x^5 + 1))*y),
 Place (x + 1, (1/(x^5 + 1))*y^4 + ((x^5 + x^4 + 1)/(x^5 + 1))*y^3
               + (x^3/(x^5 + 1))*y^2 + (x^2/(x^5 + 1))*y + x + 1)]
class sage.schemes.curves.point.IntegralAffineCurvePoint_finite_field(X, v, check=True)[source]

Bases: IntegralAffineCurvePoint

Point of an integral affine curve over a finite field.

class sage.schemes.curves.point.IntegralAffinePlaneCurvePoint(X, v, check=True)[source]

Bases: IntegralAffineCurvePoint, AffinePlaneCurvePoint_field

Point of an integral affine plane curve.

class sage.schemes.curves.point.IntegralAffinePlaneCurvePoint_finite_field(X, v, check=True)[source]

Bases: AffinePlaneCurvePoint_finite_field, IntegralAffineCurvePoint_finite_field

Point of an integral affine plane curve over a finite field.

class sage.schemes.curves.point.IntegralProjectiveCurvePoint(X, v, check=True)[source]

Bases: ProjectiveCurvePoint_field

closed_point()[source]

Return the closed point corresponding to this rational point.

EXAMPLES:

sage: P.<x,y,z> = ProjectiveSpace(GF(17), 2)
sage: C = Curve([x^4 - 16*y^3*z], P)
sage: C.singular_points()
[(0 : 0 : 1)]
sage: p = _[0]
sage: p.closed_point()
Point (x, y)
>>> from sage.all import *
>>> P = ProjectiveSpace(GF(Integer(17)), Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = Curve([x**Integer(4) - Integer(16)*y**Integer(3)*z], P)
>>> C.singular_points()
[(0 : 0 : 1)]
>>> p = _[Integer(0)]
>>> p.closed_point()
Point (x, y)
place()[source]

Return a place on this point.

EXAMPLES:

sage: P.<x,y,z> = ProjectiveSpace(GF(17), 2)
sage: C = Curve([x^4 - 16*y^3*z], P)
sage: C.singular_points()
[(0 : 0 : 1)]
sage: p = _[0]
sage: p.place()
Place (y)
>>> from sage.all import *
>>> P = ProjectiveSpace(GF(Integer(17)), Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = Curve([x**Integer(4) - Integer(16)*y**Integer(3)*z], P)
>>> C.singular_points()
[(0 : 0 : 1)]
>>> p = _[Integer(0)]
>>> p.place()
Place (y)
places()[source]

Return all places on this point.

EXAMPLES:

sage: P.<x,y,z> = ProjectiveSpace(GF(17), 2)
sage: C = Curve([x^4 - 16*y^3*z], P)
sage: C.singular_points()
[(0 : 0 : 1)]
sage: p = _[0]
sage: p.places()
[Place (y)]
>>> from sage.all import *
>>> P = ProjectiveSpace(GF(Integer(17)), Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = Curve([x**Integer(4) - Integer(16)*y**Integer(3)*z], P)
>>> C.singular_points()
[(0 : 0 : 1)]
>>> p = _[Integer(0)]
>>> p.places()
[Place (y)]
class sage.schemes.curves.point.IntegralProjectiveCurvePoint_finite_field(X, v, check=True)[source]

Bases: IntegralProjectiveCurvePoint

Point of an integral projective curve over a finite field.

class sage.schemes.curves.point.IntegralProjectivePlaneCurvePoint(X, v, check=True)[source]

Bases: IntegralProjectiveCurvePoint, ProjectivePlaneCurvePoint_field

Point of an integral projective plane curve over a field.

class sage.schemes.curves.point.IntegralProjectivePlaneCurvePoint_finite_field(X, v, check=True)[source]

Bases: ProjectivePlaneCurvePoint_finite_field, IntegralProjectiveCurvePoint_finite_field

Point of an integral projective plane curve over a finite field.

class sage.schemes.curves.point.ProjectiveCurvePoint_field(X, v, check=True)[source]

Bases: SchemeMorphism_point_projective_field

Point of a projective curve over a field.

is_singular()[source]

Return whether this point is a singular point of the projective curve it is on.

EXAMPLES:

sage: P.<x,y,z,w> = ProjectiveSpace(QQ, 3)
sage: C = Curve([x^2 - y^2, z - w], P)
sage: Q1 = C([0,0,1,1])
sage: Q1.is_singular()
True
sage: Q2 = C([1,1,1,1])
sage: Q2.is_singular()
False
>>> from sage.all import *
>>> P = ProjectiveSpace(QQ, Integer(3), names=('x', 'y', 'z', 'w',)); (x, y, z, w,) = P._first_ngens(4)
>>> C = Curve([x**Integer(2) - y**Integer(2), z - w], P)
>>> Q1 = C([Integer(0),Integer(0),Integer(1),Integer(1)])
>>> Q1.is_singular()
True
>>> Q2 = C([Integer(1),Integer(1),Integer(1),Integer(1)])
>>> Q2.is_singular()
False
class sage.schemes.curves.point.ProjectivePlaneCurvePoint_field(X, v, check=True)[source]

Bases: ProjectiveCurvePoint_field

Point of a projective plane curve over a field.

is_ordinary_singularity()[source]

Return whether this point is an ordinary singularity of the projective plane curve it is on.

EXAMPLES:

sage: P.<x,y,z> = ProjectiveSpace(QQ, 2)
sage: C = Curve([z^6 - x^6 - x^3*z^3 - x^3*y^3])
sage: Q = C([0,1,0])
sage: Q.is_ordinary_singularity()
False
>>> from sage.all import *
>>> P = ProjectiveSpace(QQ, Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = Curve([z**Integer(6) - x**Integer(6) - x**Integer(3)*z**Integer(3) - x**Integer(3)*y**Integer(3)])
>>> Q = C([Integer(0),Integer(1),Integer(0)])
>>> Q.is_ordinary_singularity()
False

sage: # needs sage.rings.number_field
sage: R.<a> = QQ[]
sage: K.<b> = NumberField(a^2 - 3)
sage: P.<x,y,z> = ProjectiveSpace(K, 2)
sage: C = P.curve([x^2*y^3*z^4 - y^6*z^3 - 4*x^2*y^4*z^3 -
....: 4*x^4*y^2*z^3 + 3*y^7*z^2 + 10*x^2*y^5*z^2 + 9*x^4*y^3*z^2 +
....: 5*x^6*y*z^2 - 3*y^8*z - 9*x^2*y^6*z - 11*x^4*y^4*z - 7*x^6*y^2*z -
....: 2*x^8*z + y^9 + 2*x^2*y^7 + 3*x^4*y^5 + 4*x^6*y^3 + 2*x^8*y])
sage: Q = C([-1/2, 1/2, 1])
sage: Q.is_ordinary_singularity()
True
>>> from sage.all import *
>>> # needs sage.rings.number_field
>>> R = QQ['a']; (a,) = R._first_ngens(1)
>>> K = NumberField(a**Integer(2) - Integer(3), names=('b',)); (b,) = K._first_ngens(1)
>>> P = ProjectiveSpace(K, Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = P.curve([x**Integer(2)*y**Integer(3)*z**Integer(4) - y**Integer(6)*z**Integer(3) - Integer(4)*x**Integer(2)*y**Integer(4)*z**Integer(3) -
... Integer(4)*x**Integer(4)*y**Integer(2)*z**Integer(3) + Integer(3)*y**Integer(7)*z**Integer(2) + Integer(10)*x**Integer(2)*y**Integer(5)*z**Integer(2) + Integer(9)*x**Integer(4)*y**Integer(3)*z**Integer(2) +
... Integer(5)*x**Integer(6)*y*z**Integer(2) - Integer(3)*y**Integer(8)*z - Integer(9)*x**Integer(2)*y**Integer(6)*z - Integer(11)*x**Integer(4)*y**Integer(4)*z - Integer(7)*x**Integer(6)*y**Integer(2)*z -
... Integer(2)*x**Integer(8)*z + y**Integer(9) + Integer(2)*x**Integer(2)*y**Integer(7) + Integer(3)*x**Integer(4)*y**Integer(5) + Integer(4)*x**Integer(6)*y**Integer(3) + Integer(2)*x**Integer(8)*y])
>>> Q = C([-Integer(1)/Integer(2), Integer(1)/Integer(2), Integer(1)])
>>> Q.is_ordinary_singularity()
True
is_transverse(D)[source]

Return whether the intersection of the curve D at this point with the curve this point is on is transverse or not.

INPUT:

  • D – a curve in the same ambient space as the curve this point is on

EXAMPLES:

sage: P.<x,y,z> = ProjectiveSpace(QQ, 2)
sage: C = Curve([x^2 - 2*y^2 - 2*z^2], P)
sage: D = Curve([y - z], P)
sage: Q = C([2,1,1])
sage: Q.is_transverse(D)
True
>>> from sage.all import *
>>> P = ProjectiveSpace(QQ, Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = Curve([x**Integer(2) - Integer(2)*y**Integer(2) - Integer(2)*z**Integer(2)], P)
>>> D = Curve([y - z], P)
>>> Q = C([Integer(2),Integer(1),Integer(1)])
>>> Q.is_transverse(D)
True

sage: P.<x,y,z> = ProjectiveSpace(GF(17), 2)
sage: C = Curve([x^4 - 16*y^3*z], P)
sage: D = Curve([y^2 - z*x], P)
sage: Q = C([0,0,1])
sage: Q.is_transverse(D)
False
>>> from sage.all import *
>>> P = ProjectiveSpace(GF(Integer(17)), Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = Curve([x**Integer(4) - Integer(16)*y**Integer(3)*z], P)
>>> D = Curve([y**Integer(2) - z*x], P)
>>> Q = C([Integer(0),Integer(0),Integer(1)])
>>> Q.is_transverse(D)
False
multiplicity()[source]

Return the multiplicity of this point with respect to the projective curve it is on.

EXAMPLES:

sage: P.<x,y,z> = ProjectiveSpace(GF(17), 2)
sage: C = Curve([y^3*z - 16*x^4], P)
sage: Q = C([0,0,1])
sage: Q.multiplicity()
3
>>> from sage.all import *
>>> P = ProjectiveSpace(GF(Integer(17)), Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = Curve([y**Integer(3)*z - Integer(16)*x**Integer(4)], P)
>>> Q = C([Integer(0),Integer(0),Integer(1)])
>>> Q.multiplicity()
3
tangents()[source]

Return the tangents at this point of the projective plane curve this point is on.

OUTPUT:

A list of polynomials in the coordinate ring of the ambient space of the curve this point is on.

EXAMPLES:

sage: P.<x,y,z> = ProjectiveSpace(QQ, 2)
sage: C = Curve([y^2*z^3 - x^5 + 18*y*x*z^3])
sage: Q = C([0,0,1])
sage: Q.tangents()
[y, 18*x + y]
>>> from sage.all import *
>>> P = ProjectiveSpace(QQ, Integer(2), names=('x', 'y', 'z',)); (x, y, z,) = P._first_ngens(3)
>>> C = Curve([y**Integer(2)*z**Integer(3) - x**Integer(5) + Integer(18)*y*x*z**Integer(3)])
>>> Q = C([Integer(0),Integer(0),Integer(1)])
>>> Q.tangents()
[y, 18*x + y]
class sage.schemes.curves.point.ProjectivePlaneCurvePoint_finite_field(X, v, check=True)[source]

Bases: ProjectivePlaneCurvePoint_field, SchemeMorphism_point_projective_finite_field

Point of a projective plane curve over a finite field.