macierz froba chyba dziala; sprawdzone na krzywych el

This commit is contained in:
jgarnek 2021-08-23 15:25:30 +02:00
parent 891996e1af
commit 15c6350fb7
1 changed files with 45 additions and 548 deletions

View File

@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 132, "execution_count": 137,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -109,7 +109,6 @@
" p = self.characteristic\n", " p = self.characteristic\n",
" M = matrix(GF(p), 2*g, 2*g)\n", " M = matrix(GF(p), 2*g, 2*g)\n",
" for i, w in basis.items():\n", " for i, w in basis.items():\n",
" print('w', w)\n",
" v = w.frobenius().coordinates()\n", " v = w.frobenius().coordinates()\n",
" M[i, :] = v\n", " M[i, :] = v\n",
" return M\n", " return M\n",
@ -318,7 +317,6 @@
" A = self.jth_component(j)\n", " A = self.jth_component(j)\n",
" d = degree_of_rational_fctn(A)\n", " d = degree_of_rational_fctn(A)\n",
" if(-d*M + j*R -(M+1)<0):\n", " if(-d*M + j*R -(M+1)<0):\n",
" print('not', d, j, r, m, -d*M + j*R -(M+1))\n",
" return 0\n", " return 0\n",
" return 1\n", " return 1\n",
" \n", " \n",
@ -364,7 +362,6 @@
" return superelliptic_cech(C, superelliptic_form(C, Rx(0)), superelliptic_function(C, fct^p))\n", " return superelliptic_cech(C, superelliptic_form(C, Rx(0)), superelliptic_function(C, fct^p))\n",
"\n", "\n",
" def coordinates(self):\n", " def coordinates(self):\n",
" print(self, self.is_cocycle())\n",
" C = self.curve\n", " C = self.curve\n",
" p = C.characteristic\n", " p = C.characteristic\n",
" m = C.exponent\n", " m = C.exponent\n",
@ -382,13 +379,11 @@
" fct = self.f\n", " fct = self.f\n",
" \n", " \n",
" if fct.function == Rx(0) and omega.form != Rx(0):\n", " if fct.function == Rx(0) and omega.form != Rx(0):\n",
" print('c1')\n",
" for j in range(1, m):\n", " for j in range(1, m):\n",
" omega_j = Fx(omega.jth_component(j))\n", " omega_j = Fx(omega.jth_component(j))\n",
" if omega_j != Fx(0):\n", " if omega_j != Fx(0):\n",
" d = degree_of_rational_fctn(omega_j)\n", " d = degree_of_rational_fctn(omega_j)\n",
" index = degrees0_inv[(d, j)]\n", " index = degrees0_inv[(d, j)]\n",
" print('baza', basis[index])\n",
" a = coeff_of_rational_fctn(omega_j)\n", " a = coeff_of_rational_fctn(omega_j)\n",
" a1 = coeff_of_rational_fctn(basis[index].omega0.jth_component(j))\n", " a1 = coeff_of_rational_fctn(basis[index].omega0.jth_component(j))\n",
" elt = self - basis[index].mult(a/a1)\n", " elt = self - basis[index].mult(a/a1)\n",
@ -481,584 +476,86 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 133, "execution_count": 146,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n"
]
}
],
"source": [ "source": [
"p = 5\n", "p = 5\n",
"C = superelliptic(x^3 + x + 2, 7, p)\n", "C = superelliptic(x^3 + x + 2, 2, p)\n",
"baza = C.basis_de_rham()\n", "baza = C.basis_de_rham()\n",
"print(C.genus())\n",
"#C.basis_holomorphic_differentials()" "#C.basis_holomorphic_differentials()"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 134, "execution_count": 147,
"metadata": { "metadata": {
"scrolled": false "scrolled": false
}, },
"outputs": [],
"source": [
"A = C.frobenius_matrix()\n",
"B = C.verschiebung_matrix()"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {},
"outputs": [ "outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"w ((x/y) dx, 2/x*y^6, ((x - 1)/(x^2*y)) dx)\n",
"(0 dx, ((2*x^12 + 3*x^10 + x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (2*x^12 + 3*x^10 + x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5\n",
"(((-x^7 + 2*x^6)/y^5) dx, ((3*x^10 + x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (3*x^10 + x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5\n",
"(((2*x^6 + 2*x^5)/y^5) dx, ((x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5\n",
"(((2*x^5 + 2*x^3)/y^5) dx, ((2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5\n",
"(((-x^3 - 2*x^2)/y^5) dx, ((3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5\n",
"(((-x^3 - x^2 - 2*x)/y^5) dx, ((x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5\n",
"(((-x^2 + x - 2)/y^5) dx, ((3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^5\n",
"((x/y^5) dx, ((3*x^4 + 3*x^2 + 4*x + 2)/x^5)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (3*x^4 + 3*x^2 + 4*x + 2)/x^5\n",
"((x/y^5) dx, ((3*x^2 + 4*x + 2)/x^5)*y^2, ((x^3 - 1)/(x^2*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (3*x^2 + 4*x + 2)/x^5\n",
"((x/y^5) dx, ((4*x + 2)/x^5)*y^2, ((x^5 - x^2 - x + 2)/(x^4*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (4*x + 2)/x^5\n",
"((x/y^5) dx, 2/x^5*y^2, ((x^6 - x^2 - 2)/(x^5*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff 2/x^5\n",
"((x/y^5) dx, 0, (x/y^5) dx) 1\n",
"c1\n",
"baza ((x/y^5) dx, 0, (x/y^5) dx)\n",
"coeff x\n",
"coeff x\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w (((-1)/y) dx, 2/x^2*y^6, ((-2*x - 2)/(x^3*y)) dx)\n",
"(0 dx, ((2*x^12 + 3*x^10 + x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (2*x^12 + 3*x^10 + x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10\n",
"(((-x^2 + 2*x)/y^5) dx, ((3*x^10 + x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (3*x^10 + x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, ((x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10)*y^2, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (x^9 + 2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, ((2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10)*y^2, ((2*x^3 - 2)/(x^2*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (2*x^8 + 3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, ((3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10)*y^2, ((2*x^4 + 2*x^3 + x + 2)/(x^3*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (3*x^7 + x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, ((x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10)*y^2, ((2*x^5 + 2*x^4 + x^2 + x + 2)/(x^4*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (x^6 + 3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, ((3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10)*y^2, ((2*x^6 + 2*x^5 + x^2 - x + 2)/(x^5*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (3*x^5 + 3*x^4 + 3*x^2 + 4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, ((3*x^4 + 3*x^2 + 4*x + 2)/x^10)*y^2, ((2*x^5 + 2*x^4 - 1)/(x^4*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (3*x^4 + 3*x^2 + 4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, ((3*x^2 + 4*x + 2)/x^10)*y^2, ((2*x^8 + 2*x^7 - 1)/(x^7*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (3*x^2 + 4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, ((4*x + 2)/x^10)*y^2, ((2*x^10 + 2*x^9 - x^2 - x + 2)/(x^9*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (4*x + 2)/x^10\n",
"(((2*x + 2)/y^5) dx, 2/x^10*y^2, ((2*x^11 + 2*x^10 - x^2 - 2)/(x^10*y^5)) dx) 1\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff 2/x^10\n",
"(((2*x + 2)/y^5) dx, 0, ((2*x + 2)/y^5) dx) 1\n",
"c1\n",
"baza ((x/y^5) dx, 0, (x/y^5) dx)\n",
"coeff 2*x + 2\n",
"coeff x\n",
"((2/y^5) dx, 0, (2/y^5) dx) 1\n",
"c1\n",
"baza ((1/y^5) dx, 0, (1/y^5) dx)\n",
"coeff 2\n",
"coeff 1\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w (((-2*x)/y^2) dx, 2/x*y^5, ((2*x - 1)/(x^2*y^2)) dx)\n",
"(0 dx, ((2*x^9 + x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5)*y^4, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (2*x^9 + x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5\n",
"(((-2*x^4 - x^3)/y^3) dx, ((x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5)*y^4, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5\n",
"(((-x^3 + x^2 + x)/y^3) dx, ((2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5)*y^4, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5\n",
"(((x^2 + 1)/y^3) dx, ((x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5)*y^4, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5\n",
"(((-1)/y^3) dx, ((4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5)*y^4, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2a\n",
"coeff (4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5\n",
"2 5 (0 dx, 2/x*y^4, ((-2*x - 1)/(x^2*y^3)) dx)\n",
"przed d -1 j 4 (((-1)/y^3) dx, ((4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^5)*y^4, 0 dx) (0 dx, 4/x*y^4, ((x - 2)/(x^2*y^3)) dx)\n",
"po (((-1)/y^3) dx, ((x^3 + 2*x^2 + 4*x + 1)/x^5)*y^4, ((-x + 2)/(x^2*y^3)) dx)\n",
"(((-1)/y^3) dx, ((x^3 + 2*x^2 + 4*x + 1)/x^5)*y^4, ((-x + 2)/(x^2*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (x^3 + 2*x^2 + 4*x + 1)/x^5\n",
"(((-1)/y^3) dx, ((2*x^2 + 4*x + 1)/x^5)*y^4, ((-x^3 - x^2 + 2*x + 1)/(x^3*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (2*x^2 + 4*x + 1)/x^5\n",
"(((-1)/y^3) dx, ((4*x + 1)/x^5)*y^4, ((-x^4 + 2*x^2 - x - 2)/(x^4*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (4*x + 1)/x^5\n",
"(((-1)/y^3) dx, 1/x^5*y^4, ((-x^5 - x^2 - 2)/(x^5*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff 1/x^5\n",
"(((-1)/y^3) dx, 0, ((-1)/y^3) dx) 1\n",
"c1\n",
"baza ((1/y^3) dx, 0, (1/y^3) dx)\n",
"coeff 4\n",
"coeff 1\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w ((1/y^2) dx, 2/x^2*y^5, ((-x - 2)/(x^3*y^2)) dx)\n",
"(0 dx, ((2*x^9 + x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10)*y^4, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2a\n",
"coeff (2*x^9 + x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10\n",
"1 5 (0 dx, 2/x*y^4, ((-2*x - 1)/(x^2*y^3)) dx)\n",
"przed d -1 j 4 (0 dx, ((2*x^9 + x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10)*y^4, 0 dx) (0 dx, 2/x*y^4, ((-2*x - 1)/(x^2*y^3)) dx)\n",
"po (0 dx, ((x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10)*y^4, ((2*x + 1)/(x^2*y^3)) dx)\n",
"(0 dx, ((x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10)*y^4, ((2*x + 1)/(x^2*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (x^7 + 2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10\n",
"(0 dx, ((2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10)*y^4, ((x^2 - x - 1)/(x^4*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (2*x^6 + x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10\n",
"(0 dx, ((x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10)*y^4, ((-x^2 - 1)/(x^5*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (x^5 + 4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10\n",
"(0 dx, ((4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10)*y^4, (1/(x^5*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (4*x^4 + x^3 + 2*x^2 + 4*x + 1)/x^10\n",
"(0 dx, ((x^3 + 2*x^2 + 4*x + 1)/x^10)*y^4, ((x^2 - x + 2)/(x^7*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (x^3 + 2*x^2 + 4*x + 1)/x^10\n",
"(0 dx, ((2*x^2 + 4*x + 1)/x^10)*y^4, ((-x^2 + 2*x + 1)/(x^8*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (2*x^2 + 4*x + 1)/x^10\n",
"(0 dx, ((4*x + 1)/x^10)*y^4, ((2*x^2 - x - 2)/(x^9*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (4*x + 1)/x^10\n",
"(0 dx, 1/x^10*y^4, ((-x^2 - 2)/(x^10*y^3)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff 1/x^10\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w ((1/y^3) dx, 0, (1/y^3) dx)\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w (0 dx, 2/x*y^4, ((-2*x - 1)/(x^2*y^3)) dx)\n",
"(0 dx, ((2*x^6 + 4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y^6, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2c\n",
"coeff (2*x^6 + 4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5\n",
"(((2*x + 1)/y) dx, ((4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y^6, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2a\n",
"coeff (4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5\n",
"2 0 ((x/y) dx, 2/x*y^6, ((x - 1)/(x^2*y)) dx)\n",
"przed d -1 j 6 (((2*x + 1)/y) dx, ((4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y^6, 0 dx) ((2*x/y) dx, 4/x*y^6, ((2*x - 2)/(x^2*y)) dx)\n",
"po ((1/y) dx, ((3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y^6, ((-2*x + 2)/(x^2*y)) dx)\n",
"((1/y) dx, ((3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y^6, ((-2*x + 2)/(x^2*y)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2a\n",
"coeff (3*x^3 + 2*x^2 + 3*x + 3)/x^5\n",
"4 1 (((-1)/y) dx, 2/x^2*y^6, ((-2*x - 2)/(x^3*y)) dx)\n",
"przed d -2 j 6 ((1/y) dx, ((3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y^6, ((-2*x + 2)/(x^2*y)) dx) ((1/y) dx, 3/x^2*y^6, ((2*x + 2)/(x^3*y)) dx)\n",
"po (0 dx, ((2*x^2 + 3*x + 3)/x^5)*y^6, ((-2*x^2 - 2)/(x^3*y)) dx)\n",
"(0 dx, ((2*x^2 + 3*x + 3)/x^5)*y^6, ((-2*x^2 - 2)/(x^3*y)) dx) 1\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (2*x^2 + 3*x + 3)/x^5\n",
"(0 dx, ((3*x + 3)/x^5)*y^6, ((-2*x - 2)/(x^4*y)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff (3*x + 3)/x^5\n",
"(0 dx, 3/x^5*y^6, ((-2*x^2 + 1)/(x^5*y)) dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2b\n",
"coeff 3/x^5\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w ((1/y^4) dx, 0, (1/y^4) dx)\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w ((2*x/y^4) dx, 2/x*y^3, ((-x - 1)/(x^2*y^4)) dx)\n",
"(0 dx, ((2*x^6 + 4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y, 0 dx) 1\n",
"c2\n",
"c2c\n",
"coeff (2*x^6 + 4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5\n",
"(((2*x + 1)/y^6) dx, ((4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y, 0 dx) 1\n",
"c2\n",
"c2b\n",
"coeff (4*x^4 + 3*x^3 + 2*x^2 + 3*x + 3)/x^5\n",
"(((2*x + 1)/y^6) dx, ((3*x^3 + 2*x^2 + 3*x + 3)/x^5)*y, ((2*x^3 - 2*x + 2)/(x^2*y^6)) dx) 1\n",
"c2\n",
"c2b\n",
"coeff (3*x^3 + 2*x^2 + 3*x + 3)/x^5\n",
"(((2*x + 1)/y^6) dx, ((2*x^2 + 3*x + 3)/x^5)*y, ((2*x^4 + x^3 - 2*x^2 - 2)/(x^3*y^6)) dx) 1\n",
"c2\n",
"c2b\n",
"coeff (2*x^2 + 3*x + 3)/x^5\n",
"(((2*x + 1)/y^6) dx, ((3*x + 3)/x^5)*y, ((2*x^5 + x^4 - 2*x - 2)/(x^4*y^6)) dx) 1\n",
"c2\n",
"c2b\n",
"coeff (3*x + 3)/x^5\n",
"(((2*x + 1)/y^6) dx, 3/x^5*y, ((2*x^6 + x^5 - 2*x^2 + 1)/(x^5*y^6)) dx) 1\n",
"c2\n",
"c2b\n",
"coeff 3/x^5\n",
"(((2*x + 1)/y^6) dx, 0, ((2*x + 1)/y^6) dx) 1\n",
"c1\n",
"baza ((x/y^6) dx, 0, (x/y^6) dx)\n",
"coeff 2*x + 1\n",
"coeff x\n",
"((1/y^6) dx, 0, (1/y^6) dx) 1\n",
"c1\n",
"baza ((1/y^6) dx, 0, (1/y^6) dx)\n",
"coeff 1\n",
"coeff 1\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w ((1/y^5) dx, 0, (1/y^5) dx)\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w ((x/y^5) dx, 0, (x/y^5) dx)\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w ((1/y^6) dx, 0, (1/y^6) dx)\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"w ((x/y^6) dx, 0, (x/y^6) dx)\n",
"(0 dx, 0, 0 dx) 1\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n",
"c2\n"
]
},
{ {
"data": { "data": {
"text/plain": [ "text/plain": [
"[0 0 0 0 0 0 0 0 0 1 0 0]\n", "[0 0]\n",
"[0 0 0 0 0 0 0 0 2 2 0 0]\n", "[1 2]"
"[0 0 0 0 4 2 0 0 0 0 0 0]\n",
"[0 0 0 0 0 1 0 0 0 0 0 0]\n",
"[0 0 0 0 0 0 0 0 0 0 0 0]\n",
"[2 4 0 0 0 0 0 0 0 0 0 0]\n",
"[0 0 0 0 0 0 0 0 0 0 0 0]\n",
"[0 0 0 0 0 0 0 0 0 0 1 2]\n",
"[0 0 0 0 0 0 0 0 0 0 0 0]\n",
"[0 0 0 0 0 0 0 0 0 0 0 0]\n",
"[0 0 0 0 0 0 0 0 0 0 0 0]\n",
"[0 0 0 0 0 0 0 0 0 0 0 0]"
] ]
}, },
"execution_count": 134, "execution_count": 148,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
], ],
"source": [ "source": [
"C.frobenius_matrix()" "A"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 4, "execution_count": 149,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(((-x*y + 1)/y^5) dx, 4/x*y^4, ((-x^3*y + x*y^2 + x^2 - 2*y^2)/(x^2*y^5)) dx)\n",
"((1/y^5) dx, 0, (1/y^5) dx)\n",
"(0 dx, 0, 0 dx)\n"
]
},
{ {
"data": { "data": {
"text/plain": [ "text/plain": [
"(0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0)" "[2 0]\n",
"[4 0]"
] ]
}, },
"execution_count": 4, "execution_count": 149,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
], ],
"source": [ "source": [
"w.coordinates()" "B"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 65, "execution_count": 150,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"a, b, c = C.degree_and_basis_de_rham()" "E = EllipticCurve(GF(p), [1, 2])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'y' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-7-1009561bb01d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0momega\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msuperelliptic_form\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mC\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0momega\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_regular_on_U0\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0momega\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_regular_on_Uinfty\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0momega\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'y' is not defined"
]
}
],
"source": [
"licz = 0\n",
"m = 2\n",
"p = 5\n",
"R1.<x> = PolynomialRing(GF(p))\n",
"f = R1(x^3 + x + 4)\n",
"r = f.degree()\n",
"C = superelliptic(f, m, p)\n",
"for i in range(0, r):\n",
" for j in range(1, m):\n",
" omega = superelliptic_form(C, x^i/y^j)\n",
" if (omega.is_regular_on_U0() and omega.is_regular_on_Uinfty()):\n",
" print(omega)\n",
" licz += 1\n",
"print(licz, C.genus())\n",
"print(C.basis_holomorphic_differentials())"
] ]
}, },
{ {