diff --git a/superelliptic.ipynb b/superelliptic.ipynb index f56a2ac..6af5b96 100644 --- a/superelliptic.ipynb +++ b/superelliptic.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 41, + "execution_count": 67, "metadata": {}, "outputs": [], "source": [ @@ -157,6 +157,15 @@ " M[i, :] = v\n", " return M \n", " \n", + " def p_rank(self):\n", + " return self.cartier_matrix().rank()\n", + " \n", + " def final_type(self):\n", + " F = self.frobenius_matrix()\n", + " V = self.verschiebung_matrix()\n", + " p = self.characteristic\n", + " return flag(F, V, p)\n", + " \n", "def reduction(C, g):\n", " p = C.characteristic\n", " Rxy. = PolynomialRing(GF(p), 2)\n", @@ -305,12 +314,7 @@ " def __rmul__(self, constant):\n", " C = self.curve\n", " omega = self.form\n", - " return superelliptic_form(C, constant*omega) \n", - " \n", - " def mult(self, constant):\n", - " C = self.curve\n", - " omega = self.form\n", - " return superelliptic_form(C, constant*omega) \n", + " return superelliptic_form(C, constant*omega) \n", " \n", " def cartier(self):\n", " C = self.curve\n", @@ -352,7 +356,7 @@ " index = degrees_holo_inv[(d, j)]\n", " a = coeff_of_rational_fctn(omega_j, p)\n", " a1 = coeff_of_rational_fctn(basis[index].jth_component(j), p)\n", - " elt = self - basis[index].mult(a/a1)\n", + " elt = self - (a/a1)*basis[index]\n", " return elt.coordinates() + a/a1*vector([GF(p)(i == index) for i in range(0, g)])\n", " \n", " return vector(g*[0])\n", @@ -413,14 +417,14 @@ " def __sub__(self, other):\n", " C = self.curve\n", " return superelliptic_cech(C, self.omega0 - other.omega0, self.f - other.f)\n", - " \n", - " def mult(self, constant):\n", + "\n", + " def __rmul__(self, constant):\n", " C = self.curve\n", " w1 = self.omega0.form\n", " f1 = self.f.function\n", " w2 = superelliptic_form(C, constant*w1)\n", " f2 = superelliptic_function(C, constant*f1)\n", - " return superelliptic_cech(C, w2, f2)\n", + " return superelliptic_cech(C, w2, f2) \n", " \n", " def __repr__(self):\n", " return \"(\" + str(self.omega0) + \", \" + str(self.f) + \", \" + str(self.omega8) + \")\" \n", @@ -466,7 +470,7 @@ " index = degrees_holo_inv[(d, j)]\n", " a = coeff_of_rational_fctn(omega_j, p)\n", " a1 = coeff_of_rational_fctn(basis[index].omega0.jth_component(j), p)\n", - " elt = self - basis[index].mult(a/a1)\n", + " elt = self - (a/a1)*basis[index]\n", " return elt.coordinates() + a/a1*vector([GF(p)(i == index) for i in range(0, 2*g)])\n", " \n", " for j in range(1, m):\n", @@ -477,7 +481,7 @@ " if (d, j) in degrees1.values():\n", " index = degrees1_inv[(d, j)]\n", " a = coeff_of_rational_fctn(fct_j, p)\n", - " elt = self - basis[index].mult(a/m)\n", + " elt = self - (a/m)*basis[index]\n", " return elt.coordinates() + a/m*vector([GF(p)(i == index) for i in range(0, 2*g)])\n", " \n", " if d<0:\n", @@ -489,7 +493,7 @@ " if (fct_j != Rx(0)):\n", " G = superelliptic_function(C, y^j*x^d)\n", " a = coeff_of_rational_fctn(fct_j, p)\n", - " elt =self - superelliptic_cech(C, diffn(G), G).mult(a)\n", + " elt =self - a*superelliptic_cech(C, diffn(G), G)\n", " return elt.coordinates()\n", "\n", " return vector(2*g*[0])\n", @@ -556,7 +560,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 68, "metadata": {}, "outputs": [], "source": [ @@ -609,14 +613,11 @@ " if final_type[i] == -1 and final_type[dim - i] != -1:\n", " i1 = dim - i\n", " final_type[i] = final_type[i1] - i1 + dim/2\n", - " print('test', final_type)\n", " \n", " final_type[0] = 0\n", " for i in range(1, dim+1):\n", " if final_type[i] == -1:\n", " final_type[i] = min(final_type[i-1] + 1, dim/2)\n", - " \n", - " print('poprawiony ft', final_type)\n", " \n", " if is_final(final_type, dim/2):\n", " return final_type[1:dim/2 + 1]\n", @@ -638,60 +639,1423 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "0 3\n", - "test [0, -1, -1, -1, 4, -1, -1, -1, 4]\n", - "poprawiony ft [0, 1, 2, 3, 4, 4, 4, 4, 4]\n", - "0 3 4 [1, 2, 3, 4]\n", - "0 4\n", - "test [0, -1, -1, -1, 4, -1, -1, -1, 4]\n", - "poprawiony ft [0, 1, 2, 3, 4, 4, 4, 4, 4]\n", - "0 4 4 [1, 2, 3, 4]\n", - "1 1\n", - "test [0, -1, -1, -1, 4, -1, -1, -1, 4]\n", - "poprawiony ft [0, 1, 2, 3, 4, 4, 4, 4, 4]\n", - "1 1 4 [1, 2, 3, 4]\n", - "1 2\n" + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + x^8 + 8*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 2*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 2*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 2*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n" ] }, { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\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 6\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mC\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_smooth\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 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mV\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mC\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mverschiebung_matrix\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[0m\u001b[1;32m 9\u001b[0m \u001b[0mF\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mC\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrobenius_matrix\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 10\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mV\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrank\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflag\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mF\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mV\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\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\u001b[0m in \u001b[0;36mverschiebung_matrix\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 123\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[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbasis\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 124\u001b[0m \u001b[0mw\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbasis\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 125\u001b[0;31m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mw\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mverschiebung\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcoordinates\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[0m\u001b[1;32m 126\u001b[0m \u001b[0mM\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 127\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mM\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m\u001b[0m in \u001b[0;36mcoordinates\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 450\u001b[0m \u001b[0ma1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoeff_of_rational_fctn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbasis\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0momega0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjth_component\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 451\u001b[0m \u001b[0melt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mbasis\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmult\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0ma1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 452\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0melt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcoordinates\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0ma1\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mvector\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mGF\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m)\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[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mg\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[0m\u001b[1;32m 453\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 454\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\u001b[0m in \u001b[0;36mcoordinates\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 450\u001b[0m \u001b[0ma1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoeff_of_rational_fctn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbasis\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0momega0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjth_component\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 451\u001b[0m \u001b[0melt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mbasis\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmult\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0ma1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 452\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0melt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcoordinates\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0ma1\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mvector\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mGF\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m)\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[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mg\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[0m\u001b[1;32m 453\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 454\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\u001b[0m in \u001b[0;36mcoordinates\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 447\u001b[0m \u001b[0md\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdegree_of_rational_fctn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0momega_j\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 448\u001b[0m \u001b[0mindex\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdegrees_holo_inv\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0md\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[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 449\u001b[0;31m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoeff_of_rational_fctn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0momega_j\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\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 450\u001b[0m \u001b[0ma1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcoeff_of_rational_fctn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbasis\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0momega0\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjth_component\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 451\u001b[0m \u001b[0melt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mbasis\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmult\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0ma1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m\u001b[0m in \u001b[0;36mcoeff_of_rational_fctn\u001b[0;34m(f, p)\u001b[0m\n\u001b[1;32m 502\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 503\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcoeff_of_rational_fctn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mp\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--> 504\u001b[0;31m \u001b[0mRx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPolynomialRing\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mGF\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnames\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'x'\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[0mx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mRx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_first_ngens\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\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 505\u001b[0m \u001b[0mFx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mFractionField\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mRx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 506\u001b[0m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mFx\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/sagemath-9.1/local/lib/python3.7/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py\u001b[0m in \u001b[0;36mPolynomialRing\u001b[0;34m(base_ring, *args, **kwds)\u001b[0m\n\u001b[1;32m 631\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"you must specify the names of the variables\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 632\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 633\u001b[0;31m \u001b[0mnames\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnormalize_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnames\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 634\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 635\u001b[0m \u001b[0;31m# At this point, we have only handled the \"names\" keyword if it was\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/sagemath-9.1/local/lib/python3.7/site-packages/sage/structure/category_object.pyx\u001b[0m in \u001b[0;36msage.structure.category_object.normalize_names (build/cythonized/sage/structure/category_object.c:8424)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 922\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 923\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 924\u001b[0;31m \u001b[0mcpdef\u001b[0m \u001b[0mnormalize_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mPy_ssize_t\u001b[0m \u001b[0mngens\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnames\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[0m\u001b[1;32m 925\u001b[0m r\"\"\"\n\u001b[1;32m 926\u001b[0m \u001b[0mReturn\u001b[0m \u001b[0ma\u001b[0m \u001b[0mtuple\u001b[0m \u001b[0mof\u001b[0m \u001b[0mstrings\u001b[0m \u001b[0mof\u001b[0m \u001b[0mvariable\u001b[0m \u001b[0mnames\u001b[0m \u001b[0mof\u001b[0m \u001b[0mlength\u001b[0m \u001b[0mngens\u001b[0m \u001b[0mgiven\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/sagemath-9.1/local/lib/python3.7/site-packages/sage/structure/category_object.pyx\u001b[0m in \u001b[0;36msage.structure.category_object.normalize_names (build/cythonized/sage/structure/category_object.c:7828)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1019\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnames\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mtuple\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\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 1020\u001b[0m \u001b[0;31m# Convert names to strings and strip whitespace\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1021\u001b[0;31m \u001b[0mnames\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mnames\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 1022\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1023\u001b[0m \u001b[0;31m# Interpret names as string and convert to tuple of strings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32msrc/cysignals/signals.pyx\u001b[0m in \u001b[0;36mcysignals.signals.python_check_interrupt\u001b[0;34m()\u001b[0m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 7*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 3*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 3*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 4*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 4*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 5*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 5*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 6*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 2*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 6*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 6*x^8 + 10*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 10*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 3*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 4*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 5*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 6*x 3\n", + "[0, 1, 2, 3]\n", + "x^9 + 7*x^8 + 7*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 8*x 3\n", + "[1, 2, 2, 3]\n", + "x^9 + 7*x^8 + 9*x 3\n" ] } ], "source": [ - "p = 5\n", + "p = 11\n", "for a in range(0, p):\n", " for b in range(0, p):\n", - " Rx. = PolynomialRing(GF(p))\n", - " C = superelliptic(x^9+a*x^8+b*x^3+x^2+x+1, 2, p)\n", - " if C.is_smooth():\n", - " print(a, b)\n", - " V = C.verschiebung_matrix()\n", - " F = C.frobenius_matrix()\n", - " print(a, b, V.rank(), flag(F, V, p))" + " for c in range(0, p):\n", + " Rx. = PolynomialRing(GF(p))\n", + " C = superelliptic(x^9+a*x^8+c*x, 2, p)\n", + " if C.is_smooth() and C.p_rank() == 3:\n", + " print(C.polynomial, C.p_rank())\n", + " V = C.verschiebung_matrix()\n", + " F = C.frobenius_matrix()\n", + " print(flag(F, V, p))" ] }, { @@ -716,51 +2080,82 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 81, "metadata": { "scrolled": true }, - "outputs": [], - "source": [ - "Rx. = PolynomialRing(GF(5))\n", - "C = superelliptic(x^9+3*x^3+x^2+x+1, 2, 5)\n", - "#C.cartier_matrix()" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "om = C.basis_holomorphic_differentials[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, "outputs": [ { - "ename": "AttributeError", - "evalue": "'sage.rings.integer.Integer' object has no attribute 'curve'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mInteger\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mom\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m/opt/sagemath-9.1/local/lib/python3.7/site-packages/sage/rings/integer.pyx\u001b[0m in \u001b[0;36msage.rings.integer.Integer.__mul__ (build/cythonized/sage/rings/integer.c:13835)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1998\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1999\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2000\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcoercion_model\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbin_op\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mleft\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mright\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moperator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmul\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 2001\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2002\u001b[0m \u001b[0mcpdef\u001b[0m \u001b[0m_mul_\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mright\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/opt/sagemath-9.1/local/lib/python3.7/site-packages/sage/structure/coerce.pyx\u001b[0m in \u001b[0;36msage.structure.coerce.CoercionModel.bin_op (build/cythonized/sage/structure/coerce.c:11104)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1247\u001b[0m \u001b[0mmul_method\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'__r%s__'\u001b[0m\u001b[0;34m%\u001b[0m\u001b[0mop_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1248\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmul_method\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1249\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmul_method\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\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 1250\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mNotImplemented\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1251\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m\u001b[0m in \u001b[0;36m__rmul__\u001b[0;34m(constant, self)\u001b[0m\n\u001b[1;32m 296\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__rmul__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconstant\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\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--> 298\u001b[0;31m \u001b[0mC\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcurve\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 299\u001b[0m \u001b[0momega\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mform\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 300\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msuperelliptic_form\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mC\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconstant\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;32m/opt/sagemath-9.1/local/lib/python3.7/site-packages/sage/structure/element.pyx\u001b[0m in \u001b[0;36msage.structure.element.Element.__getattr__ (build/cythonized/sage/structure/element.c:4614)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 485\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'LeftZeroSemigroup_with_category.element_class'\u001b[0m \u001b[0mobject\u001b[0m \u001b[0mhas\u001b[0m \u001b[0mno\u001b[0m \u001b[0mattribute\u001b[0m \u001b[0;34m'blah_blah'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 486\u001b[0m \"\"\"\n\u001b[0;32m--> 487\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetattr_from_category\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\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 488\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 489\u001b[0m \u001b[0mcdef\u001b[0m \u001b[0mgetattr_from_category\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\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/opt/sagemath-9.1/local/lib/python3.7/site-packages/sage/structure/element.pyx\u001b[0m in \u001b[0;36msage.structure.element.Element.getattr_from_category (build/cythonized/sage/structure/element.c:4723)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 498\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 499\u001b[0m \u001b[0mcls\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mP\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_abstract_element_class\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 500\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mgetattr_from_other_class\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\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 501\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 502\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__dir__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\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/opt/sagemath-9.1/local/lib/python3.7/site-packages/sage/cpython/getattr.pyx\u001b[0m in \u001b[0;36msage.cpython.getattr.getattr_from_other_class (build/cythonized/sage/cpython/getattr.c:2614)\u001b[0;34m()\u001b[0m\n\u001b[1;32m 392\u001b[0m \u001b[0mdummy_error_message\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcls\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 393\u001b[0m \u001b[0mdummy_error_message\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 394\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdummy_error_message\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 395\u001b[0m \u001b[0mattribute\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m<\u001b[0m\u001b[0mobject\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0mattr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 396\u001b[0m \u001b[0;31m# Check for a descriptor (__get__ in Python)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mAttributeError\u001b[0m: 'sage.rings.integer.Integer' object has no attribute 'curve'" + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "[1]\n" ] } ], "source": [ - "2*om" + "p = 5\n", + "Rx. = PolynomialRing(GF(p))\n", + "C = superelliptic(x^3 - x, 2, p)\n", + "if (C.is_smooth()):\n", + " print(C.p_rank())\n", + " print(C.final_type())" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0 0 0 0 0 0 0 0]\n", + "[0 0 0 0 0 0 0 0]\n", + "[0 0 0 0 0 0 0 0]\n", + "[0 0 0 0 0 0 0 0]\n", + "[0 0 0 4 2 3 3 2]\n", + "[4 0 4 4 2 0 0 4]\n", + "[0 0 4 3 0 0 1 2]\n", + "[3 0 0 0 0 1 0 0]" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "C.frobenius_matrix()" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "test [0, -1, -1, -1, 4, -1, -1, -1, 4]\n", + "poprawiony ft [0, 1, 2, 3, 4, 4, 4, 4, 4]\n" + ] + }, + { + "data": { + "text/plain": [ + "[1, 2, 3, 4]" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "flag(F, V, p)" ] }, {