Macaulay2 » Documentation
Packages » RationalPoints2 :: RationalPoints2
next | previous | forward | backward | up | index | toc

RationalPoints2 -- Find the rational points on a variety

Description

RationalPoints2 is a package for enumerating rational points on a variety defined by an ideal of a polynomial ring. The main function is rationalPoints. Over a finite field it will list all the rational points. Over a number field it can find all points of a 0-dimensional ideal in its splitting field, and all points with bounded height for a positive dimensional ideal. The package also provides some utility functions related to field extensions, which allow the computation of rational points with prescribed coefficient field.

An example over a finite field.

i1 : ZZ/2[x,y,z]; rationalPoints(ideal(y^2*z+y*z^2-x^3-x*z^2), Projective=>true)

o2 = {(1 : 0 : 1), (1 : 1 : 1), (0 : 1 : 0), (0 : 1 : 1), (0 : 0 : 1)}

o2 : List

An example over a number field: we enumerate the rational points on the unit circle with bounded height.

i3 : QQ[x,y]; rationalPoints(ideal(x^2+y^2-1), Bound=>5)

                                         3    4      3    4    4    3      4 
o4 = {{0, -1}, {1, 0}, {-1, 0}, {0, 1}, {-, - -}, {- -, - -}, {-, - -}, {- -,
                                         5    5      5    5    5    5      5 
     ------------------------------------------------------------------------
       3    4  3      4  3    3  4      3  4
     - -}, {-, -}, {- -, -}, {-, -}, {- -, -}}
       5    5  5      5  5    5  5      5  5

o4 : List

And an example of a 0-dimensional ideal.

i5 : QQ[x,y]; I = ideal(x^2+1,y^2-2);

o6 : Ideal of QQ[x..y]
i7 : rationalPoints(I, Verbose=>true)
-- the following polynomials do not split
   -- x^2-2

o7 = {}

o7 : List
i8 : rationalPoints(I, Split=>true, Verbose=>true)
-- base change to the field QQ[a]/(a^2-2)
-- base change to the field QQ[a]/(a^4+1)

        2   3          2   3         2     3          2     3
o8 = {{a , a  - a}, {-a , a  - a}, {a , - a  + a}, {-a , - a  + a}}

o8 : List

Caveat

Currently the functionality of positive dimensional ideals over number fields other than QQ depends on Sage (an algorithm by Doyle–Krumm for enumerating field elements with bounded height).

Author

Version

This documentation describes version 0.5 of RationalPoints2.

Source code

The source code from which this documentation is derived is in the file RationalPoints2.m2.

Exports

  • Types
  • Functions and commands
    • baseChange -- Perform base change for field extensions
    • charpoly -- Characteristic and minimal polynomials over the prime field
    • minpoly -- see charpoly -- Characteristic and minimal polynomials over the prime field
    • extField -- Define field extensions
    • setPariSize -- see extField -- Define field extensions
    • splittingField -- see extField -- Define field extensions
    • globalHeight -- Multiplicative height function
    • hermiteNormalForm -- Compute the Hermite normal form of a fractional ideal in a number field
    • integers -- Compute a basis for the integers of a number field
    • rationalPoints -- Find the rational points on a variety
    • zeros -- List the zeros of a polynomial
  • Methods
    • baseChange(InexactFieldFamily,Number) -- see baseChange -- Perform base change for field extensions
    • baseChange(InexactFieldFamily,RingElement) -- see baseChange -- Perform base change for field extensions
    • baseChange(Number,Ideal) -- see baseChange -- Perform base change for field extensions
    • baseChange(Number,Number) -- see baseChange -- Perform base change for field extensions
    • baseChange(Number,RingElement) -- see baseChange -- Perform base change for field extensions
    • baseChange(Ring,Ideal) -- see baseChange -- Perform base change for field extensions
    • baseChange(Ring,Number) -- see baseChange -- Perform base change for field extensions
    • baseChange(Ring,RingElement) -- see baseChange -- Perform base change for field extensions
    • charpoly(Number) -- see charpoly -- Characteristic and minimal polynomials over the prime field
    • charpoly(RingElement) -- see charpoly -- Characteristic and minimal polynomials over the prime field
    • minpoly(Number) -- see charpoly -- Characteristic and minimal polynomials over the prime field
    • minpoly(Ring) -- see charpoly -- Characteristic and minimal polynomials over the prime field
    • minpoly(RingElement) -- see charpoly -- Characteristic and minimal polynomials over the prime field
    • extField(List) -- see extField -- Define field extensions
    • extField(Ring,List) -- see extField -- Define field extensions
    • extField(Ring,RingElement) -- see extField -- Define field extensions
    • extField(RingElement) -- see extField -- Define field extensions
    • splittingField(Ring,RingElement) -- see extField -- Define field extensions
    • splittingField(RingElement) -- see extField -- Define field extensions
    • globalHeight(List) -- see globalHeight -- Multiplicative height function
    • hermiteNormalForm(List) -- see hermiteNormalForm -- Compute the Hermite normal form of a fractional ideal in a number field
    • hermiteNormalForm(RingElement) -- see hermiteNormalForm -- Compute the Hermite normal form of a fractional ideal in a number field
    • discriminant(Ring) -- see integers -- Compute a basis for the integers of a number field
    • integers(Ring) -- see integers -- Compute a basis for the integers of a number field
    • ProjectivePoint == ProjectivePoint -- see ProjectivePoint -- Class of a projective point
    • ring(ProjectivePoint) -- see ProjectivePoint -- Class of a projective point
    • rationalPoints(Ideal) -- see rationalPoints -- Find the rational points on a variety
    • rationalPoints(Ring,Ideal) -- see rationalPoints -- Find the rational points on a variety
    • zeros(Ring,RingElement) -- see zeros -- List the zeros of a polynomial
    • zeros(RingElement) -- see zeros -- List the zeros of a polynomial
  • Symbols
    • Amount -- see rationalPoints -- Find the rational points on a variety
    • Bound -- see rationalPoints -- Find the rational points on a variety
    • KeepAll -- see rationalPoints -- Find the rational points on a variety
    • Split -- see rationalPoints -- Find the rational points on a variety

For the programmer

The object RationalPoints2 is a package.

Menu

Main function that enumerates the rational points

Utility functions for handling field extensions and number fields