**TASK 1: Generating rational curves**

On this page we will discuss how to generate and store rational curves we find on our
hypersurface X : X_0^5 + … + X_5^5 = 0 over F_2 = Z/2Z. To simplify the discussion, on this
page a *rational curve of degree d* will be a 6-tuple of homogeneous polynomials

G_0, ..., G_5 ∈ F_2[S, T]

of degree d with gcd(G_0, …, G_5) = 1 and with

G_0^5 + ... + G_5^5 = 0

Problems related to this task (please answer here on this page):

- How do we generate these morphisms?
- How to present a morphism? (What data type to use?)
- How to define a standard ordering on these rational curves (so we can weed out doubles)
- Take into account that permuting the variables leaves the equation unchanged, so that if G_0, …, G_5 is a morphism, then so is G_1, G_0, G_2, G_3, G_4, G_5. This leads to a factor of 720 reduction if we cleverly order the morphisms
- Also two curves which differ by an automorphism of
**P**^1 have exactly the same properties. How can we avoid weed out morphisms which differ by such an automorphism? This might lead to a factor 6 reduction.

We will upload to this page

- Pari scripts used to generate lists
- Output files produced

Here's a brute force script to compute degree 5 rational curves; it's fairly quick though 5 is well below the lower bound that Mingmin predicted for it to be possible to get free curves. Program can be modified easily for higher degree curves, but I imagine it will begin to get very slow very quickly: ratcurves.gp

Here is a script that tries to find rational curves in the following way: You pick random polynomials v[1], v[2], v[3], v[4], v[5] of degree d in t over F_2. Then you set f = v[1]^5 + v[2]^5 + v[3]^5 + v[4]^5 + v[5]^5. Then you see if f has degree divisible by 5 and f(0) is nonzero (to prevent stupid solutions). Next, you compute h = gcd(f, f'). If f is a fifth power, then the degree of h should be at least 4/5ths of the degree of f. It turns that this is a pretty good predictor for when f is a fifth power (although it doesn't always work, especially for low degrees). Then you just run this procedure many times: factor.gp There is still some work to do on this thing, because as I mentioned above it doesn't always work. But since f passes the test mentioned above seldomly you can write a separate (slow) function that finds the 5th root of f if there is one. Then we still have to “homogenize” to get actual curves so we can stick them into the script that finds splitting types.

Degree 5 Very Free Rational Curve Check (slows down around 4200): result_on_degree_5_curves.rtf

Degree 5 Very Free Rational Curve Check (does not slow down; it uses all the tricks I could think of): mike.gp I ran it here on my machine and it produced no output.

Here is a link to a page with material about the idea with triples: triples

**Examples** of degree 8 rational curves found with the triples method during the meeting of Moday, July 2:

t^5 + t^2 t^8 + t^3 + t^2 + 1 t^8 + t^7 + t^6 + t^5 + t^4 + t^3 + t^2 t^8 + t^7 + t^5 + t t^6 + t^3 + t^2 + 1 t^8 + t^6 + t^4 + t^2 + t

and

t^8 + t^7 + t^6 + t^3 + t^2 + t t^8 + t^7 + t^6 + t^3 + t t^7 + t^5 + t^4 + t^3 + t^2 + t + 1 t^7 + t^6 + t^5 + t^4 + t^2 + t t^6 + t^4 + t^3 + t^2 + t t^6 + t^5 + t^4 + t^3 + t^2 + t + 1

and

t^8 + t^3 + t + 1 t^8 + t^6 + t^3 + t t^7 + t^6 + t^4 + t^3 + t t^8 + t^7 + t^5 + t^4 + t^3 + t^2 + t + 1 t^6 + t + 1 t^8 + t^7 + t^6 + t^5 + t^4 + t^2 + t + 1