zaczynamy crystalline
This commit is contained in:
parent
0e34637387
commit
43c28ea23c
32
crystalline_p2.ipynb
Normal file
32
crystalline_p2.ipynb
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 0,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 9.5",
|
||||
"language": "sagemath",
|
||||
"metadata": {
|
||||
"cocalc": {
|
||||
"description": "Open-source mathematical software system",
|
||||
"priority": 10,
|
||||
"url": "https://www.sagemath.org/"
|
||||
}
|
||||
},
|
||||
"name": "sage-9.5",
|
||||
"resource_dir": "/ext/jupyter/kernels/sage-9.5"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -2,7 +2,9 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"source": [
|
||||
"# Theory\n",
|
||||
"Let $C : y^m = f(x)$. Then:\n",
|
||||
@ -23,8 +25,11 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"# The program computes the basis of holomorphic differentials of y^m = f(x) in char p.\n",
|
||||
"# The coefficient j means that we compute the j-th eigenpart, i.e.\n",
|
||||
@ -47,8 +52,11 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"# The program computes the basis of de Rham cohomology of y^m = f(x) in char p.\n",
|
||||
"# We treat them as pairs [omega, f], where omega is regular on the affine part\n",
|
||||
@ -80,8 +88,11 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"#auxiliary programs\n",
|
||||
"def stopnie_bazy_holo(m, f, j, p):\n",
|
||||
@ -201,7 +212,9 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"source": [
|
||||
"We have: $V(\\omega, f) = (C(\\omega), 0)$ and $F(\\omega, f) = (0, f^p)$, where C denotes the Cartier operator. Moreover:\n",
|
||||
"\n",
|
||||
@ -214,8 +227,11 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"def czesc_wielomianu(p, h):\n",
|
||||
" R.<x> = PolynomialRing(GF(p))\n",
|
||||
@ -254,7 +270,9 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"source": [
|
||||
"$F((\\omega, P(x) \\cdot y^j)) = (0, P(x)^p \\cdot y^{p \\cdot j}) = (0, P(x)^p \\cdot f(x)^{[p \\cdot j/m]} \\cdot y^{(p \\cdot j) \\, mod \\, m})$"
|
||||
]
|
||||
@ -262,8 +280,11 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"def frobenius_dr(p, m, f, elt, j): #Cartier na y^m = f dla elt = [forma rozniczkowa, fkcja]\n",
|
||||
" R.<x> = PolynomialRing(GF(p))\n",
|
||||
@ -348,7 +369,9 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 243,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
@ -395,7 +418,9 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 241,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
@ -407,7 +432,8 @@
|
||||
]
|
||||
},
|
||||
"execution_count": 241,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
@ -418,7 +444,9 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 247,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
@ -428,7 +456,8 @@
|
||||
]
|
||||
},
|
||||
"execution_count": 247,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
@ -439,7 +468,9 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 249,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
@ -448,7 +479,8 @@
|
||||
]
|
||||
},
|
||||
"execution_count": 249,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
@ -459,7 +491,9 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
@ -468,7 +502,8 @@
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
@ -482,17 +517,29 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
"execution_count": 0,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 9.1",
|
||||
"language": "sage",
|
||||
"name": "sagemath"
|
||||
"display_name": "SageMath 9.5",
|
||||
"language": "sagemath",
|
||||
"metadata": {
|
||||
"cocalc": {
|
||||
"description": "Open-source mathematical software system",
|
||||
"priority": 10,
|
||||
"url": "https://www.sagemath.org/"
|
||||
}
|
||||
},
|
||||
"name": "sage-9.5",
|
||||
"resource_dir": "/ext/jupyter/kernels/sage-9.5"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
@ -508,5 +555,5 @@
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -655,7 +655,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": 3,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -667,7 +667,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 3,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -681,6 +681,29 @@
|
||||
"C = superelliptic(f, m, p)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"1/y"
|
||||
]
|
||||
},
|
||||
"execution_count": 7,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"C.basis_holomorphic_differentials[0].form"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
@ -2103,6 +2126,376 @@
|
||||
"print(\"Current Time =\", current_time)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"p = 7\n",
|
||||
"R.<x> = PolynomialRing(GF(p))\n",
|
||||
"f = x^3 + x + 1\n",
|
||||
"m = 2\n",
|
||||
"C = superelliptic(f, m, p)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[((1/y) dx, 0, (1/y) dx), ((x/y) dx, 2/x*y, ((x + 2)/(x^2*y)) dx)]"
|
||||
]
|
||||
},
|
||||
"execution_count": 13,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"C.basis_de_rham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"w = C.basis_de_rham[1]"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"w0 = w.f"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"1"
|
||||
]
|
||||
},
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"w0.is_regular_on_U0()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((x^3 - x - 2)/(x^2*y)) dx"
|
||||
]
|
||||
},
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"diffn(w0)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"p = 7\n",
|
||||
"R.<x> = PolynomialRing(GF(p))\n",
|
||||
"d = 9\n",
|
||||
"f = sum(x^i * (d+1-i) for i in range(0, d+1))\n",
|
||||
"m = 2\n",
|
||||
"C = superelliptic(f, m, p)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[((1/y) dx, 0, (1/y) dx),\n",
|
||||
" ((x/y) dx, 0, (x/y) dx),\n",
|
||||
" ((x^2/y) dx, 0, (x^2/y) dx),\n",
|
||||
" ((x^3/y) dx, 0, (x^3/y) dx),\n",
|
||||
" (((-2*x^6 + x^5 + 2*x^4 + x^3 - 2*x^2)/y) dx, 2/x*y, ((2*x - 1)/(x^2*y)) dx),\n",
|
||||
" (((-2*x^6 + x^5 + 2*x^4 + x^3 - 2*x^2)/y) dx, 2/x^2*y, ((2*x^2 - x - 2)/(x^3*y)) dx),\n",
|
||||
" (((3*x^5 - 3*x^4 + 3*x^3 + 2*x + 2)/y) dx, 2/x^3*y, ((-3*x^2 + 3*x - 3)/(x^4*y)) dx),\n",
|
||||
" (((x^4 - 3*x^2 - x - 1)/y) dx, 2/x^4*y, ((3*x^4 - x^2 + 3)/(x^5*y)) dx)]"
|
||||
]
|
||||
},
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"C.basis_de_rham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[((1/y) dx, 0, (1/y) dx), ((x/y) dx, 2/x*y, (1/(x*y)) dx)]"
|
||||
]
|
||||
},
|
||||
"execution_count": 17,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"p = 13\n",
|
||||
"R.<x> = PolynomialRing(GF(p))\n",
|
||||
"f = x^3 + x\n",
|
||||
"m = 2\n",
|
||||
"C = superelliptic(f, m, p)\n",
|
||||
"C.basis_de_rham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"4"
|
||||
]
|
||||
},
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"R(f*f(1/x)*x^3).discriminant()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[((1/y) dx, 0, (1/y) dx), ((x/y) dx, 2/x*y, ((x + 2)/(x^2*y)) dx)]"
|
||||
]
|
||||
},
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"p = 19\n",
|
||||
"R.<x> = PolynomialRing(GF(p))\n",
|
||||
"f = x^3 + x + 1\n",
|
||||
"m = 2\n",
|
||||
"C = superelliptic(f, m, p)\n",
|
||||
"C.basis_de_rham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[((1/y) dx, 0, (1/y) dx), ((x/y) dx, 2/x*y, ((-1)/(x*y)) dx)]"
|
||||
]
|
||||
},
|
||||
"execution_count": 4,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"p = 3\n",
|
||||
"R.<x> = PolynomialRing(GF(p))\n",
|
||||
"f = x^3 -x\n",
|
||||
"m = 2\n",
|
||||
"C = superelliptic(f, m, p)\n",
|
||||
"C.basis_de_rham"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"R.<x, y> = PolynomialRing(GF(p), 2)\n",
|
||||
"s = superelliptic_function(C, 2*y/(x*(x+1)))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((-x^2 - x + 1)/(x^2*y + x*y)) dx"
|
||||
]
|
||||
},
|
||||
"execution_count": 9,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"diffn(s)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"o1 = superelliptic_cech(C, superelliptic_form(C, (x+1)/y), superelliptic_function(C, 2*y/(x+1)))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"o2 = superelliptic_cech(C, superelliptic_form(C, x/y), superelliptic_function(C, 2*y/x))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"o3 = superelliptic_cech(C, superelliptic_form(C, 1/y), superelliptic_function(C, 0))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
],
|
||||
"source": [
|
||||
"o4 = o1 - o2 - o3"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"(0 dx, (1/(x^2 + x))*y, ((-x^2 - x + 1)/(x^2*y + x*y)) dx)"
|
||||
]
|
||||
},
|
||||
"execution_count": 14,
|
||||
"metadata": {
|
||||
},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"o4"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 0,
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user