|
|
@@ -538,6 +538,87 @@
|
|
|
"assert f(Px, Py) != 0\n",
|
|
|
"assert b0(Px, Py) == 0\n"
|
|
|
]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "cell_type": "markdown",
|
|
|
+ "id": "d9a8af14",
|
|
|
+ "metadata": {},
|
|
|
+ "source": [
|
|
|
+ "# Abstract Algebraic Method\n",
|
|
|
+ "\n",
|
|
|
+ "See Knapp page 350"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "cell_type": "code",
|
|
|
+ "execution_count": 22,
|
|
|
+ "id": "ce94255a",
|
|
|
+ "metadata": {},
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "text/plain": [
|
|
|
+ "(True, False)"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "execution_count": 22,
|
|
|
+ "metadata": {},
|
|
|
+ "output_type": "execute_result"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "source": [
|
|
|
+ "R.<x> = FunctionField(GF(11)); _.<Y> = R[]\n",
|
|
|
+ "K.<y> = R.extension(Y^2 - x^3 - 4*x)\n",
|
|
|
+ "P = (2, 4)\n",
|
|
|
+ "I = K.maximal_order().ideal(x - 2, y - 4)\n",
|
|
|
+ "# (x - 2) in I^2 should be false if I = <x - 2>\n",
|
|
|
+ "x - 2 in I, x - 2 in I^2\n",
|
|
|
+ "# But for some reason I need y - 4 as well..."
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "cell_type": "code",
|
|
|
+ "execution_count": 17,
|
|
|
+ "id": "2a10bcd6",
|
|
|
+ "metadata": {},
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "text/plain": [
|
|
|
+ "(True, True, False)"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "execution_count": 17,
|
|
|
+ "metadata": {},
|
|
|
+ "output_type": "execute_result"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "source": [
|
|
|
+ "f = y - 2*x\n",
|
|
|
+ "f in I, f in I^2, f in I^3"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "cell_type": "code",
|
|
|
+ "execution_count": 20,
|
|
|
+ "id": "73406fd6",
|
|
|
+ "metadata": {},
|
|
|
+ "outputs": [
|
|
|
+ {
|
|
|
+ "data": {
|
|
|
+ "text/plain": [
|
|
|
+ "2"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "execution_count": 20,
|
|
|
+ "metadata": {},
|
|
|
+ "output_type": "execute_result"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "source": [
|
|
|
+ "d = [i for i in range(1, 10) if f in I^i]\n",
|
|
|
+ "max(d)"
|
|
|
+ ]
|
|
|
}
|
|
|
],
|
|
|
"metadata": {
|