From 15c6350fb75194a4fafc93d91a658d7e0d42984a Mon Sep 17 00:00:00 2001 From: jgarnek Date: Mon, 23 Aug 2021 15:25:30 +0200 Subject: [PATCH] macierz froba chyba dziala; sprawdzone na krzywych el --- superelliptic.ipynb | 593 ++++---------------------------------------- 1 file changed, 45 insertions(+), 548 deletions(-) diff --git a/superelliptic.ipynb b/superelliptic.ipynb index 6aa15df..81acbe4 100644 --- a/superelliptic.ipynb +++ b/superelliptic.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 132, + "execution_count": 137, "metadata": {}, "outputs": [], "source": [ @@ -109,7 +109,6 @@ " p = self.characteristic\n", " M = matrix(GF(p), 2*g, 2*g)\n", " for i, w in basis.items():\n", - " print('w', w)\n", " v = w.frobenius().coordinates()\n", " M[i, :] = v\n", " return M\n", @@ -318,7 +317,6 @@ " A = self.jth_component(j)\n", " d = degree_of_rational_fctn(A)\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 1\n", " \n", @@ -364,7 +362,6 @@ " return superelliptic_cech(C, superelliptic_form(C, Rx(0)), superelliptic_function(C, fct^p))\n", "\n", " def coordinates(self):\n", - " print(self, self.is_cocycle())\n", " C = self.curve\n", " p = C.characteristic\n", " m = C.exponent\n", @@ -382,13 +379,11 @@ " fct = self.f\n", " \n", " if fct.function == Rx(0) and omega.form != Rx(0):\n", - " print('c1')\n", " for j in range(1, m):\n", " omega_j = Fx(omega.jth_component(j))\n", " if omega_j != Fx(0):\n", " d = degree_of_rational_fctn(omega_j)\n", " index = degrees0_inv[(d, j)]\n", - " print('baza', basis[index])\n", " a = coeff_of_rational_fctn(omega_j)\n", " a1 = coeff_of_rational_fctn(basis[index].omega0.jth_component(j))\n", " elt = self - basis[index].mult(a/a1)\n", @@ -481,584 +476,86 @@ }, { "cell_type": "code", - "execution_count": 133, + "execution_count": 146, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], "source": [ "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", + "print(C.genus())\n", "#C.basis_holomorphic_differentials()" ] }, { "cell_type": "code", - "execution_count": 134, + "execution_count": 147, "metadata": { "scrolled": false }, - "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": { - "text/plain": [ - "[0 0 0 0 0 0 0 0 0 1 0 0]\n", - "[0 0 0 0 0 0 0 0 2 2 0 0]\n", - "[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, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "C.frobenius_matrix()" + "A = C.frobenius_matrix()\n", + "B = C.verschiebung_matrix()" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 148, "metadata": {}, "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": { "text/plain": [ - "(0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0)" + "[0 0]\n", + "[1 2]" ] }, - "execution_count": 4, + "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "w.coordinates()" + "A" ] }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 149, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[2 0]\n", + "[4 0]" + ] + }, + "execution_count": 149, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "B" + ] + }, + { + "cell_type": "code", + "execution_count": 150, "metadata": {}, "outputs": [], "source": [ - "a, b, c = C.degree_and_basis_de_rham()" - ] - }, - { - "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\u001b[0m in \u001b[0;36m\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. = 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())" + "E = EllipticCurve(GF(p), [1, 2])" ] }, {