w = e^(2*i*pi / 3)
w
1/2*I*sqrt(3) - 1/2
Careful, Sage's symbolic elements do not evaluate powers automatically:
w^3
(1/2*I*sqrt(3) - 1/2)^3
To verify ω³ = 1 we need to use the function .expand()
(w^3).expand()
1
Now, we can construct the order, and get its discriminant
O = ZZ[w]
O.discriminant()
-3
Of, course, we knew this already, because we knew the minimal polynomial of ω.
By the way, we could have used Sage's number fields, instead of the symbolic engine.
K.<w> = CyclotomicField(3)
K, w
(Cyclotomic Field of order 3 and degree 2, w)
w^3
1
chi = w.minpoly()
chi
x^2 + x + 1
chi.discriminant()
-3
Constructing the order also works
O = ZZ[w]
O
Order in Number Field in w0 with defining polynomial x^2 + x + 1 with w0 = -0.50000000000000000? + 0.866025403784439?*I
O.discriminant()
-3
Now, we can use the Hilbert class polynomial to get all the j-invariants with CM by -3
H = hilbert_class_polynomial(-3)
H
x
Clearly, the only root is j=0, so we learn that -3 has class number 1
H.roots()
[(0, 1)]
Hence, the only curve is defined over ℚ
E = EllipticCurve(j=0)
E
Elliptic Curve defined by y^2 + y = x^3 over Rational Field
E.has_cm()
True
E.cm_discriminant()
-3
By default, Sage does not use the short Weierstrass model (y² = x³ + ax + b) for CM elliptic curves. We can get one like this
E.short_weierstrass_model()
Elliptic Curve defined by y^2 = x^3 + 16 over Rational Field
But here is a more famous (non isomorphic) equation for j = 0
F = EllipticCurve([0,1])
F
Elliptic Curve defined by y^2 = x^3 + 1 over Rational Field
F.j_invariant()
0
E.is_isomorphic(F)
False
Let's find a prime of supersingular reduction for our curve. First, we must exclude primes of singular reduction
F.discriminant().factor()
-1 * 2^4 * 3^3
It would seem that the curve has singular reduction at 2 and 3, but actually Sage's preferred equation shows that 2 is not such a prime
E.discriminant().factor()
-1 * 3^3
and it turns out that it is indeed the only supersingular curve over 𝔽₂
E.change_ring(GF(2)).is_supersingular()
True
Let's try to find a prime p > 3 such that the curve has supseringular reduction. We need -3 to not be a square modulo p
GF(5)(-3).is_square()
False
Ebar = E.change_ring(GF(5))
Ebar
Elliptic Curve defined by y^2 + y = x^3 over Finite Field of size 5
Ebar.is_supersingular()
True
Ebar.trace_of_frobenius()
0
Find a prime power $q$ and an elliptic curve $E/𝔽_q$ such that the 3-isogeny volcano of $E$ is the same as the one below.
%%HTML
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" id="svg2564" version="1.1" viewBox="0 0 50.701473 50.843376" height="50.843376mm" width="50.701473mm"> <defs id="defs2558" /> <metadata id="metadata2561"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <g transform="translate(13.255499,-109.04855)" id="layer1"> <g style="opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" transform="matrix(0.35277777,0,0,-0.35277777,-47.905526,134.47024)" id="g18"> <path d="m 192.73492,22.1615 c 0,2.75117 -2.23019,4.98138 -4.98138,4.98138 -2.75117,0 -4.98138,-2.23021 -4.98138,-4.98138 0,-2.75118 2.23021,-4.98139 4.98138,-4.98139 2.75119,0 4.98138,2.23021 4.98138,4.98139 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path20" /> <path d="m 187.75354,22.1615 -23.97946,5.47377" style="vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path22" /> <path d="m 187.75354,22.1615 26.64955,13.18463 m 2.98883,0 c 0,1.65071 -1.33813,2.98883 -2.98883,2.98883 -1.65071,0 -2.98883,-1.33812 -2.98883,-2.98883 0,-1.65071 1.33812,-2.98883 2.98883,-2.98883 1.6507,0 2.98883,1.33812 2.98883,2.98883 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path24" /> <path d="m 214.40309,35.34613 17.05066,0.08737 m 0.99628,0 c 0,0.55025 -0.44605,0.99628 -0.99628,0.99628 -0.55025,0 -0.99628,-0.44603 -0.99628,-0.99628 0,-0.55023 0.44603,-0.99627 0.99628,-0.99627 0.55023,0 0.99628,0.44604 0.99628,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path26" /> <path d="m 214.40309,35.34613 11.08054,8.83655 m 0.99627,0 c 0,0.55023 -0.44604,0.99628 -0.99627,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55025 0.44605,-0.99628 0.99628,-0.99628 0.55023,0 0.99627,0.44603 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path28" /> <path d="m 214.40309,35.34613 3.87879,16.60168 m 0.99627,0 c 0,0.55024 -0.44605,0.99628 -0.99627,0.99628 -0.55025,0 -0.99628,-0.44604 -0.99628,-0.99628 0,-0.55023 0.44603,-0.99627 0.99628,-0.99627 0.55022,0 0.99627,0.44604 0.99627,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path30" /> <path d="m 187.75354,22.1615 6.92409,28.9143 m 2.98883,0 c 0,1.65072 -1.33814,2.98884 -2.98883,2.98884 -1.65071,0 -2.98883,-1.33812 -2.98883,-2.98884 0,-1.65069 1.33812,-2.98882 2.98883,-2.98882 1.65069,0 2.98883,1.33813 2.98883,2.98882 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path32" /> <path d="m 194.67763,51.0758 15.32113,7.4747 m 0.99628,0 c 0,0.55024 -0.44603,0.99628 -0.99628,0.99628 -0.55023,0 -0.99627,-0.44604 -0.99627,-0.99628 0,-0.55023 0.44604,-0.99627 0.99627,-0.99627 0.55025,0 0.99628,0.44604 0.99628,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path34" /> <path d="m 194.67763,51.0758 6.14917,12.76897 m 0.99627,0 c 0,0.55023 -0.44604,0.99628 -0.99627,0.99628 -0.55025,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44603,-0.99627 0.99628,-0.99627 0.55023,0 0.99627,0.44604 0.99627,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path36" /> <path d="m 194.67763,51.0758 -3.70946,16.64019 m 0.99628,0 c 0,0.55023 -0.44605,0.99628 -0.99628,0.99628 -0.55023,0 -0.99627,-0.44605 -0.99627,-0.99628 0,-0.55023 0.44604,-0.99628 0.99627,-0.99628 0.55023,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path38" /> <path d="m 168.75546,27.63527 c 0,2.75117 -2.23021,4.98138 -4.98138,4.98138 -2.75118,0 -4.98138,-2.23021 -4.98138,-4.98138 0,-2.75117 2.2302,-4.98139 4.98138,-4.98139 2.75117,0 4.98138,2.23022 4.98138,4.98139 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path40" /> <path d="M 163.77408,27.63527 144.54301,12.29832" style="vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path42" /> <path d="m 163.77408,27.63527 6.30684,29.05749 m 2.98883,0 c 0,1.6507 -1.33814,2.98884 -2.98883,2.98884 -1.65072,0 -2.98883,-1.33814 -2.98883,-2.98884 0,-1.65071 1.33811,-2.98883 2.98883,-2.98883 1.65069,0 2.98883,1.33812 2.98883,2.98883 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path44" /> <path d="m 170.08092,56.69276 10.56039,13.37839 m 0.99628,0 c 0,0.55023 -0.44603,0.99628 -0.99628,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55025,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path46" /> <path d="m 170.08092,56.69276 v 14.17319 m 0.99628,0 c 0,0.55023 -0.44605,0.99628 -0.99628,0.99628 -0.55025,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55025 0.44603,-0.99628 0.99628,-0.99628 0.55023,0 0.99628,0.44603 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path48" /> <path d="m 170.08092,56.69276 -10.56151,13.37839 m 0.99628,0 c 0,0.55023 -0.44603,0.99628 -0.99628,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55025,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path50" /> <path d="M 163.77408,27.63527 145.4842,51.07668 m 2.98884,0 c 0,1.65071 -1.33814,2.98882 -2.98884,2.98882 -1.6507,0 -2.98882,-1.33811 -2.98882,-2.98882 0,-1.65072 1.33812,-2.98884 2.98882,-2.98884 1.6507,0 2.98884,1.33812 2.98884,2.98884 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path52" /> <path d="m 145.4842,51.07668 3.70945,16.63931 m 0.99628,0 c 0,0.55023 -0.44605,0.99628 -0.99628,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55023,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path54" /> <path d="m 145.4842,51.07668 -6.14916,12.76918 m 0.99627,0 c 0,0.55023 -0.44604,0.99627 -0.99627,0.99627 -0.55025,0 -0.99628,-0.44604 -0.99628,-0.99627 0,-0.55024 0.44603,-0.99628 0.99628,-0.99628 0.55023,0 0.99627,0.44604 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path56" /> <path d="m 145.4842,51.07668 -15.32114,7.47382 m 0.99627,0 c 0,0.55024 -0.44604,0.99628 -0.99627,0.99628 -0.55024,0 -0.99628,-0.44604 -0.99628,-0.99628 0,-0.55023 0.44604,-0.99627 0.99628,-0.99627 0.55023,0 0.99627,0.44604 0.99627,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path58" /> <path d="m 149.5244,12.29832 c 0,2.75119 -2.23021,4.98139 -4.98139,4.98139 -2.75117,0 -4.98138,-2.2302 -4.98138,-4.98139 0,-2.75117 2.23021,-4.98138 4.98138,-4.98138 2.75118,0 4.98139,2.23021 4.98139,4.98138 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path60" /> <path d="m 144.54301,12.29832 -4.4e-4,-24.59664" style="vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path62" /> <path d="m 144.54301,12.29832 -18.78427,23.04696 m 2.98883,0 c 0,1.65071 -1.33813,2.98882 -2.98883,2.98882 -1.65071,0 -2.98883,-1.33811 -2.98883,-2.98882 0,-1.65072 1.33812,-2.98883 2.98883,-2.98883 1.6507,0 2.98883,1.33811 2.98883,2.98883 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path64" /> <path d="m 125.75874,35.34528 -3.87771,16.60145 m 0.99627,0 c 0,0.55023 -0.44603,0.99628 -0.99627,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55024,0 0.99627,0.44605 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path66" /> <path d="m 125.75874,35.34528 -11.08055,8.83632 m 0.99628,0 c 0,0.55023 -0.44603,0.99627 -0.99628,0.99627 -0.55023,0 -0.99627,-0.44604 -0.99627,-0.99627 0,-0.55024 0.44604,-0.99628 0.99627,-0.99628 0.55025,0 0.99628,0.44604 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path68" /> <path d="m 125.75874,35.34528 -17.04957,0.08822 m 0.99627,0 c 0,0.55025 -0.44603,0.99628 -0.99627,0.99628 -0.55023,0 -0.99628,-0.44603 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99627 0.99628,-0.99627 0.55024,0 0.99627,0.44604 0.99627,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path70" /> <path d="m 144.54301,12.29832 -29.73181,0.31534 m 2.98883,0 c 0,1.65071 -1.33812,2.98884 -2.98883,2.98884 -1.65071,0 -2.98883,-1.33813 -2.98883,-2.98884 0,-1.65069 1.33812,-2.98883 2.98883,-2.98883 1.65071,0 2.98883,1.33814 2.98883,2.98883 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path72" /> <path d="m 114.8112,12.61366 -10.69452,13.27481 m 0.99628,0 c 0,0.55023 -0.44604,0.99628 -0.99628,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99627 0.99628,-0.99627 0.55024,0 0.99628,0.44604 0.99628,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path74" /> <path d="m 114.8112,12.61366 -13.81743,3.15341 m 0.99628,0 c 0,0.55023 -0.44605,0.99628 -0.99628,0.99628 -0.55023,0 -0.99627,-0.44605 -0.99627,-0.99628 0,-0.55023 0.44604,-0.99627 0.99627,-0.99627 0.55023,0 0.99628,0.44604 0.99628,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path76" /> <path d="M 114.8112,12.61366 99.41608,5.29533 m 0.99627,0 c 0,0.55024 -0.44603,0.99628 -0.99627,0.99628 -0.55024,0 -0.99628,-0.44604 -0.99628,-0.99628 0,-0.55024 0.44604,-0.99627 0.99628,-0.99627 0.55024,0 0.99627,0.44603 0.99627,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path78" /> <path d="m 149.52396,-12.29832 c 0,2.75117 -2.2302,4.98138 -4.98139,4.98138 -2.75117,0 -4.98138,-2.23021 -4.98138,-4.98138 0,-2.75119 2.23021,-4.98139 4.98138,-4.98139 2.75119,0 4.98139,2.2302 4.98139,4.98139 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path80" /> <path d="m 144.54257,-12.29832 19.23151,-15.33651" style="vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path82" /> <path d="m 144.54257,-12.29832 -29.73224,-0.31621 m 2.98883,0 c 0,1.65071 -1.33812,2.98883 -2.98883,2.98883 -1.65071,0 -2.98883,-1.33812 -2.98883,-2.98883 0,-1.65071 1.33812,-2.98883 2.98883,-2.98883 1.65071,0 2.98883,1.33812 2.98883,2.98883 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path84" /> <path d="m 114.81033,-12.61453 -15.39425,7.32028 m 0.99627,0 c 0,0.55023 -0.44603,0.99628 -0.99627,0.99628 -0.55024,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44604,-0.99628 0.99628,-0.99628 0.55024,0 0.99627,0.44605 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path86" /> <path d="m 114.81033,-12.61453 -13.81765,-3.15364 m 0.99627,0 c 0,0.55024 -0.44604,0.99627 -0.99627,0.99627 -0.55024,0 -0.99628,-0.44603 -0.99628,-0.99627 0,-0.55023 0.44604,-0.99628 0.99628,-0.99628 0.55023,0 0.99627,0.44605 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path88" /> <path d="M 114.81033,-12.61453 104.1156,-25.88847 m 0.99628,0 c 0,0.55023 -0.44603,0.99627 -0.99628,0.99627 -0.55023,0 -0.99628,-0.44604 -0.99628,-0.99627 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55025,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path90" /> <path d="m 144.54257,-12.29832 -18.78383,-23.04696 m 2.98883,0 c 0,1.65072 -1.33813,2.98883 -2.98883,2.98883 -1.65071,0 -2.98883,-1.33811 -2.98883,-2.98883 0,-1.65071 1.33812,-2.98882 2.98883,-2.98882 1.6507,0 2.98883,1.33811 2.98883,2.98882 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path92" /> <path d="m 125.75874,-35.34528 -17.04957,-0.08715 m 0.99627,0 c 0,0.55024 -0.44603,0.99627 -0.99627,0.99627 -0.55023,0 -0.99628,-0.44603 -0.99628,-0.99627 0,-0.55024 0.44605,-0.99628 0.99628,-0.99628 0.55024,0 0.99627,0.44604 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path94" /> <path d="m 125.75874,-35.34528 -11.08055,-8.83632 m 0.99628,0 c 0,0.55024 -0.44603,0.99628 -0.99628,0.99628 -0.55023,0 -0.99627,-0.44604 -0.99627,-0.99628 0,-0.55023 0.44604,-0.99627 0.99627,-0.99627 0.55025,0 0.99628,0.44604 0.99628,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path96" /> <path d="m 125.75874,-35.34528 -3.87771,-16.60145 m 0.99627,0 c 0,0.55023 -0.44603,0.99628 -0.99627,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55024,0 0.99627,0.44605 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path98" /> <path d="m 168.75546,-27.63483 c 0,2.75118 -2.23021,4.98139 -4.98138,4.98139 -2.75118,0 -4.98138,-2.23021 -4.98138,-4.98139 0,-2.75119 2.2302,-4.98138 4.98138,-4.98138 2.75117,0 4.98138,2.23019 4.98138,4.98138 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path100" /> <path d="m 163.77408,-27.63483 23.97989,5.47376" style="vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path102" /> <path d="M 163.77408,-27.63483 145.4842,-51.07668 m 2.98884,0 c 0,1.65072 -1.33814,2.98884 -2.98884,2.98884 -1.6507,0 -2.98882,-1.33812 -2.98882,-2.98884 0,-1.65071 1.33812,-2.98882 2.98882,-2.98882 1.6507,0 2.98884,1.33811 2.98884,2.98882 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path104" /> <path d="m 145.4842,-51.07668 -15.32114,-7.47382 m 0.99627,0 c 0,0.55023 -0.44604,0.99627 -0.99627,0.99627 -0.55024,0 -0.99628,-0.44604 -0.99628,-0.99627 0,-0.55024 0.44604,-0.99628 0.99628,-0.99628 0.55023,0 0.99627,0.44604 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path106" /> <path d="m 145.4842,-51.07668 -6.14916,-12.76918 m 0.99627,0 c 0,0.55024 -0.44604,0.99628 -0.99627,0.99628 -0.55025,0 -0.99628,-0.44604 -0.99628,-0.99628 0,-0.55023 0.44603,-0.99627 0.99628,-0.99627 0.55023,0 0.99627,0.44604 0.99627,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path108" /> <path d="m 145.4842,-51.07668 3.70945,-16.63931 m 0.99628,0 c 0,0.55023 -0.44605,0.99628 -0.99628,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55023,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path110" /> <path d="m 163.77408,-27.63483 6.30684,-29.05793 m 2.98883,0 c 0,1.65071 -1.33814,2.98883 -2.98883,2.98883 -1.65072,0 -2.98883,-1.33812 -2.98883,-2.98883 0,-1.6507 1.33811,-2.98884 2.98883,-2.98884 1.65069,0 2.98883,1.33814 2.98883,2.98884 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path112" /> <path d="m 170.08092,-56.69276 -10.56151,-13.37839 m 0.99628,0 c 0,0.55023 -0.44603,0.99628 -0.99628,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55025,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path114" /> <path d="m 170.08092,-56.69276 v -14.17319 m 0.99628,0 c 0,0.55025 -0.44605,0.99628 -0.99628,0.99628 -0.55025,0 -0.99628,-0.44603 -0.99628,-0.99628 0,-0.55023 0.44603,-0.99628 0.99628,-0.99628 0.55023,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path116" /> <path d="m 170.08092,-56.69276 10.56039,-13.37839 m 0.99628,0 c 0,0.55023 -0.44603,0.99628 -0.99628,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55025,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path118" /> <path d="m 192.73535,-22.16107 c 0,2.75117 -2.23019,4.98138 -4.98138,4.98138 -2.75118,0 -4.98139,-2.23021 -4.98139,-4.98138 0,-2.75118 2.23021,-4.98139 4.98139,-4.98139 2.75119,0 4.98138,2.23021 4.98138,4.98139 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path120" /> <path d="M 187.75397,-22.16107 198.42728,0" style="vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path122" /> <path d="m 187.75397,-22.16107 6.92366,-28.91561 m 2.98883,0 c 0,1.65072 -1.33814,2.98884 -2.98883,2.98884 -1.65071,0 -2.98883,-1.33812 -2.98883,-2.98884 0,-1.65071 1.33812,-2.98882 2.98883,-2.98882 1.65069,0 2.98883,1.33811 2.98883,2.98882 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path124" /> <path d="m 194.67763,-51.07668 -3.71054,-16.63931 m 0.99627,0 c 0,0.55023 -0.44603,0.99628 -0.99627,0.99628 -0.55024,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44604,-0.99628 0.99628,-0.99628 0.55024,0 0.99627,0.44605 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path126" /> <path d="m 194.67763,-51.07668 6.14917,-12.76918 m 0.99627,0 c 0,0.55024 -0.44604,0.99628 -0.99627,0.99628 -0.55025,0 -0.99628,-0.44604 -0.99628,-0.99628 0,-0.55023 0.44603,-0.99627 0.99628,-0.99627 0.55023,0 0.99627,0.44604 0.99627,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path128" /> <path d="m 194.67763,-51.07668 15.32113,-7.47382 m 0.99628,0 c 0,0.55023 -0.44603,0.99627 -0.99628,0.99627 -0.55023,0 -0.99627,-0.44604 -0.99627,-0.99627 0,-0.55024 0.44604,-0.99628 0.99627,-0.99628 0.55025,0 0.99628,0.44604 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path130" /> <path d="m 187.75397,-22.16107 26.64912,-13.18506 m 2.98883,0 c 0,1.65071 -1.33813,2.98883 -2.98883,2.98883 -1.65071,0 -2.98883,-1.33812 -2.98883,-2.98883 0,-1.65071 1.33812,-2.98883 2.98883,-2.98883 1.6507,0 2.98883,1.33812 2.98883,2.98883 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path132" /> <path d="m 214.40309,-35.34613 3.8777,-16.6006 m 0.99628,0 c 0,0.55023 -0.44605,0.99628 -0.99628,0.99628 -0.55023,0 -0.99627,-0.44605 -0.99627,-0.99628 0,-0.55023 0.44604,-0.99628 0.99627,-0.99628 0.55023,0 0.99628,0.44605 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path134" /> <path d="m 214.40309,-35.34613 11.08054,-8.83655 m 0.99627,0 c 0,0.55025 -0.44604,0.99628 -0.99627,0.99628 -0.55023,0 -0.99628,-0.44603 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99628 0.99628,-0.99628 0.55023,0 0.99627,0.44605 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path136" /> <path d="m 214.40309,-35.34613 17.04956,-0.08737 m 0.99628,0 c 0,0.55023 -0.44605,0.99627 -0.99628,0.99627 -0.55023,0 -0.99627,-0.44604 -0.99627,-0.99627 0,-0.55025 0.44604,-0.99628 0.99627,-0.99628 0.55023,0 0.99628,0.44603 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path138" /> <path d="m 203.40866,0 c 0,2.75117 -2.23019,4.98138 -4.98138,4.98138 -2.75118,0 -4.98139,-2.23021 -4.98139,-4.98138 0,-2.75117 2.23021,-4.98138 4.98139,-4.98138 2.75119,0 4.98138,2.23021 4.98138,4.98138 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path140" /> <path d="M 198.42728,0 187.75354,22.16107" style="vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path142" /> <path d="m 198.42728,0 26.92334,-12.61453 m 2.98883,0 c 0,1.65071 -1.33812,2.98883 -2.98883,2.98883 -1.6507,0 -2.98883,-1.33812 -2.98883,-2.98883 0,-1.65071 1.33813,-2.98883 2.98883,-2.98883 1.65071,0 2.98883,1.33812 2.98883,2.98883 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path144" /> <path d="m 225.35062,-12.61453 10.69452,-13.27394 m 0.99627,0 c 0,0.55023 -0.44604,0.99627 -0.99627,0.99627 -0.55024,0 -0.99628,-0.44604 -0.99628,-0.99627 0,-0.55023 0.44604,-0.99628 0.99628,-0.99628 0.55023,0 0.99627,0.44605 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path146" /> <path d="m 225.35062,-12.61453 13.81743,-3.15364 m 0.99627,0 c 0,0.55024 -0.44603,0.99627 -0.99627,0.99627 -0.55024,0 -0.99628,-0.44603 -0.99628,-0.99627 0,-0.55023 0.44604,-0.99628 0.99628,-0.99628 0.55024,0 0.99627,0.44605 0.99627,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path148" /> <path d="m 225.35062,-12.61453 15.39512,7.3192 m 0.99628,0 c 0,0.55024 -0.44605,0.99627 -0.99628,0.99627 -0.55023,0 -0.99627,-0.44603 -0.99627,-0.99627 0,-0.55024 0.44604,-0.99628 0.99627,-0.99628 0.55023,0 0.99628,0.44604 0.99628,0.99628 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path150" /> <path d="m 198.42728,0 26.92421,12.61366 m 2.98883,0 c 0,1.65071 -1.33812,2.98884 -2.98883,2.98884 -1.6507,0 -2.98883,-1.33813 -2.98883,-2.98884 0,-1.65069 1.33813,-2.98883 2.98883,-2.98883 1.65071,0 2.98883,1.33814 2.98883,2.98883 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path152" /> <path d="m 225.35149,12.61366 15.39425,-7.31833 m 0.99628,0 c 0,0.55024 -0.44605,0.99628 -0.99628,0.99628 -0.55023,0 -0.99627,-0.44604 -0.99627,-0.99628 0,-0.55024 0.44604,-0.99627 0.99627,-0.99627 0.55023,0 0.99628,0.44603 0.99628,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path154" /> <path d="m 225.35149,12.61366 13.81765,3.15341 m 0.99628,0 c 0,0.55023 -0.44604,0.99628 -0.99628,0.99628 -0.55023,0 -0.99627,-0.44605 -0.99627,-0.99628 0,-0.55023 0.44604,-0.99627 0.99627,-0.99627 0.55024,0 0.99628,0.44604 0.99628,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path156" /> <path d="m 225.35149,12.61366 10.69473,13.27481 m 0.99628,0 c 0,0.55023 -0.44605,0.99628 -0.99628,0.99628 -0.55023,0 -0.99628,-0.44605 -0.99628,-0.99628 0,-0.55023 0.44605,-0.99627 0.99628,-0.99627 0.55023,0 0.99628,0.44604 0.99628,0.99627 z" style="vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" id="path158" /> </g> </g></svg>
We start from the crater: we look for some discriminants of class number 7, and we check whether (3) splits in the ring of integers
for i in range(1,1000):
D = fundamental_discriminant(-i)
if hilbert_class_polynomial(D).degree() == 7:
print(D, GF(3)(D).is_square())
(-71, True) (-151, False) (-223, False) (-251, True) (-71, True) (-463, False) (-467, True) (-487, False) (-587, True) (-151, False) (-71, True) (-811, False) (-827, True) (-859, False) (-223, False)
We may thus choose D = -71
D = -71
H = hilbert_class_polynomial(-71)
H
x^7 + 313645809715*x^6 - 3091990138604570*x^5 + 98394038810047812049302*x^4 - 823534263439730779968091389*x^3 + 5138800366453976780323726329446*x^2 - 425319473946139603274605151187659*x + 737707086760731113357714241006081263
We now need to find a prime of ordinary reduction, and for the fun we also ask that the Hilbert class polynomial splits in $𝔽_p$, so that the curves are defined over it.
for p in primes(3, 1000):
if GF(p)(D).is_square():
Hp = H.change_ring(GF(p))
if Hp.splitting_field('x').degree() == 1:
print(p, Hp.is_squarefree())
(71, False) (107, True) (293, True) (509, True) (643, True) (647, True) (739, True) (971, True)
71 is obviously an outlier, we may thus take 107. We get all the j-invariants by factoring the Hilbert class polynomial
p = 107
k = GF(p)
Hp = H.change_ring(k)
Hp.roots()
[(77, 1), (64, 1), (63, 1), (57, 1), (46, 1), (30, 1), (19, 1)]
E = EllipticCurve(j=GF(p)(77))
E
Elliptic Curve defined by y^2 = x^3 + 33*x + 58 over Finite Field of size 107
E.isogenies_prime_degree(3)
[Isogeny of degree 3 from Elliptic Curve defined by y^2 = x^3 + 33*x + 58 over Finite Field of size 107 to Elliptic Curve defined by y^2 = x^3 + 5*x + 76 over Finite Field of size 107, Isogeny of degree 3 from Elliptic Curve defined by y^2 = x^3 + 33*x + 58 over Finite Field of size 107 to Elliptic Curve defined by y^2 = x^3 + 15*x + 65 over Finite Field of size 107]
By looking at the list of rational isogenies, we see that only the crater is defined over $𝔽_p$. Let's investigate more. The factorization of the division polynomials gives us the generators of the kernels of the isogenies
E.division_polynomial(3).factor()
(3) * (x + 15) * (x + 49) * (x^2 + 43*x + 3)
However, by looking at the rational 3-torsion points, we see that only x = -15 defines a rational point, whereas x = -49 defines a point over a quadratic extension
E(0).division_points(3)
[(0 : 1 : 0), (92 : 19 : 1), (92 : 88 : 1)]
E.lift_x(-15)
(92 : 19 : 1)
E.change_ring(GF(p^2)).lift_x(-49)
(58 : 67*z2 + 80 : 1)
Said otherwise, the Frobenius π has two distinct eigenvalues ±1 modulo 3: x = -15 is associated to +1, while x = -49 is associated to -1. We can follow the crater along the direction +1 by taking at every step the isogeny defined by the unique $𝔽_p$-rational group of order $3$
EE = E
print(EE.j_invariant())
while True:
P = EE(0).division_points(3)[1]
EE = EE.isogeny(P).codomain()
print(EE.j_invariant())
if EE.j_invariant() == E.j_invariant():
break
77 30 57 63 19 46 64 77
Let's draw the graph via a depth first search, for confirmation
def explore(G, E):
jE = E.j_invariant()
G.add_vertex(jE)
for i in E.isogenies_prime_degree(3):
F = i.codomain()
jF = F.j_invariant()
if jF not in G:
explore(G, F)
G.add_edge(jE, jF)
return G
explore(Graph(), E)
To get some vertical isogenies, we need to move to an algebraic extension. The factorization pattern of the division polynomial (or the matrix of π) suggests that an extension of degree 2 is enough.
EE = E.change_ring(GF(p^2))
G = explore(Graph(), EE)
G
Graph on 21 vertices (use the .plot() method to plot)
G.plot()
To get the last level, we need to take a new extension. By the general theory, we now know that the Frobenius endomorphism of any curve $E/𝔽_{p^2}$ on the bottom level must have matrix $\left(\begin{smallmatrix}1&1\\0&1\end{smallmatrix}\right) \mod 3$, and thus that $π^3=1\mod 3$. Thus, an extension of degree 3 will give the missing level.
EE = E.change_ring(GF(p^6))
G = explore(Graph(), EE)
G
Graph on 63 vertices (use the .plot() method to plot)
G.plot()
What if we want the full volcano to be defined over $𝔽_p$? Instead of focusing on the fundamental discriminant (associated to the crater), we may shoot directly for the class group of the lower level. Because the conductor of the lower level is 9, we look at $D = -71·9^2$
D*3^4
-5751
H = hilbert_class_polynomial(D*3^4)
H
x^42 + 29373489319796294798995014230863504612817776539125678959130838513526546481104742462853277256213605581879*x^41 + 3058163468249674092134318314328457246566814848408098728420245732555182858494620890703520701107979054721617574989443341575936803548*x^40 + 862801874820186997307744690295950815899955592192766483022322337489934033418247048543498367312835008700737203383817261194769269602230733833174736710791346557123201438140325015124198637367867827868952535259144*x^39 + 89828931972822997234783473721638128774939742632034046565142362257114451149444650357941828776836222174071656390202503505274795042601878424606027004029745557343254331738223159925930936298621912463663611600161409289866234348461847307582*x^38 + 4676181899438673517047819265572469899106637272954568829797411350349988373422139243276003586159595581284687101184634145740898369656746996789302546673022107231715164651026069374868315010945124178735607853310644164763344874516736964294061667306338209220582632251*x^37 + 1427246459834825662622647921290934956544539732266864888793428638697482338720421384867350585851595354043954598206381093916042202322749344490068321012676937260580783906156043533582402579261806009374543383302191633411809330346581009206070960804313753546424658343293733217845278397937*x^36 + 1140436378857423483885732880744917285222785097053343666193321640327634101570136490336378015561148366740756397463194996218793476552187805391262753336204242950617713688113182792725078193896198242622284764374082631281622015797611190068568249380671873612335439201899735809985710270706039383206633008005499*x^35 - 7846894647855753013858705589015388246915766780910230255219829808572155617950482835490338371515959505494801991028690004003851417659495676551706607818376821853732995656268949644484120733387786904994456386180918725752929328179273433870747045657501836343279081965282853528465728347034068026862604592716249972854852810*x^34 + 86419122059579839419836812148240577229346641773012961444369211459087836485984253640914380832171746930898329298003028476273549987196855212775371273957755045642954636755727355807753893571246102847828012626254752438139480744434795498693872039356752393168823622220726061255470755476430306823683677518509040723675068171343883080786*x^33 - 27072550691652175086343132068039484585090832909695344001081487644874453688837996672487351066418400525429006459933776110188309847526753618124483692673427818108887633787689301896955266843641930632040469864334920972564504395084212260100602905644859649178848711249697923940507021857590480682230757731592142553318528566677544052493491136938902*x^32 + 8285742045111428888214029068538622323450579303952373715537403301901396327430399760608412982578568338965216517236783131821528872621035567994611923163812123363970749802931486212875546965962639586163039797479952843682634318225915582095222095478196777460723234261338229822040364699530997713983811017485662136931300728945229929375998827478091138751774453*x^31 - 8308937243065304216223490245651071129801915778628355702503408815950617797849176160812852073385735862111277039381632161217677833369008463249682306720520124878628918515148259845434951494778142789417233822079623560695854787898992937223928774280638429208962543002658338668146592513194050854739914332427781230359638196823842436404169298724366935289266262831319352*x^30 + 2541944492532655145232264184709735596005938713185831644372714920894314455280862948945468309041521046268013198359323323540178962193632089754294924208026387915554924745507166150480308417611606076451262197673713370881076721156591989832391347609026305741027169490169031891092284948501823290557230232242601108602228626051241066495092791135521098270049500784209742691174572300*x^29 - 6615646771914952560739620693213850395597466415338269549660923979309430464126769672663483288239210967523835083686347249310131225729673436177691044631368830715879618864164464307509984856103137974444159880719320879516380024894323763418241797095717314198884520646626131580599865569468146718897647496833870360792947482721471501993675398800711642922317256941208334001570118205591339918*x^28 + 2014322059007627069367061183687290141323422274392530348930528360728653633300709872042234933426264701143973496000850198268864509518632481271505880721492825167759937148748875845340911072021992435110780429849151164620933260324403488639008551382335776620528076732442483979454393594717414016049234857058891798724541433038563160819284777566880823864383143511425699572235604281760771662822935632774*x^27 - 10932601163627386430507088348191633067186389434797246416238204681050069084597198738472368877051710519005593207909078574724460360189813647141307124342467395534065363740060014409160733796990211691597417572656701244788952001257302767677254239764191264868938600724114312177997138532396109799103048393930328587215559238288678698190972318645863069818922645606332351337436248644728993369086789756959620450*x^26 + 22427394443633637286459284298841663332870403973620593647930119266381159126925680725981549578588147727606504438786190911497485549730696947240213047769572123801148645320551550722479990105163217259666547047396769294631615703584162454373295805198582634227399484787853188704410231593827637647888656151097239972001768704753332160690058486695240730722603718063308065531616937741063240940254498694594772830584405*x^25 - 7783943074492749018874857576651916651237868043786345577872881363997382310974928704324828609880937578252878371875686113957416492058465893148925685478213332062665199304719703171663337643726704838780266002064173780924799541793045148759021862718364650693377367707073039854853090411653268031002480543655486593626900858733653185229432053197430857916691718486943674682320468324381179901097971348221015763735743888191*x^24 - 4030850624276605643161977653235915427569821555905856435939760118144756580510889720885351383841269644349751381577622895463135792437365023008812347230297289936239063835691371131847019879708622704651018378164042046590018843349786297696293745239263126564344796530202691102370770262962121395272852746391300307213409819472225533514231215377349849207579376307204169867510482449138669797103332604462142285138039580601374943*x^23 + 2002877373771599503651511144763912288359821143151935405926644297624689459909383470186168024181351065496464808497634476531355328083564748979154028155578067202632370781177403332344104675788198543536843215606312435064229163935168656245614880286576279133641831813646325903746328985293258479152429259352397085601396986713054429294860936278444562794138001470256600742765880451943212959652619117386999332190105010736419614967360*x^22 + 1389229333893002908185414730642820809375959639797687849410726742113348937331611057213596407139412417167736613574686076557938243828984221494354943730339559886081497839366095738203745888091711513393539948801383441630663530910070073913224414702977831926401333390145966899108484150035194057242593765067326105083807888037754208458490690190532544292344382177688018632770295563328717853922008121647211205160548947464815572860878742163*x^21 - 973064968609160984915533056465327732745250521494010384296928220572041273932059069904356958547509766470968743693518294576764984941154609048033245178375300215430145473949428286076584480454036112985108933171712139394462534174454851287336982874181847712691791738490111102925947230237785449814614083375556937283466752595624934715242864692122170152357147131291151882349658123050284980632226224954106587881683806507492785338013172756289291*x^20 + 274348343091039965384281017149809019176089093356533849749488204591922254610078204123544274753947775232198667889432875794328729242003303493172126119823261853696316973752851331479810143244660039118132462846253230259616379634147972095184645761707380894613343998192591957495458220329622545478620926868955647094732875686911201729067871807262955481994971298448563045288134632929160527026329013609121526349611012343009248861084056097416703458126*x^19 - 38255358079377263721130886296247019120843639179970641270003901166489373224636580032205114867405112109125841103710216877032544395620690054749194459059707356346467629773923262740603931877321098688969770077241898134310914175888378023845684054319213274359349840106599914019190570885103533474824942575348283903914240100987663864904801770934984434835829444688274013662056419716546944220800885985464131646082041371975684523255231132725610355639673973*x^18 + 5381798418789620731977619209770449244698369613309330558066070724326534959499783522567357977912638829960511400109684771679583804570474851447491015267857626363931005523973289326453222221055377737178164792343808073008384924250688257823568270252175097474572298845254142089988361316796683735840196365150777421179356293311260940002632710308425579725707666558622135755520769990828206031672349382154157882332890944541412403842411198459437621642706143440632*x^17 - 927918541408217586780929560704311742673506125878898764625198762908941889343787752922031850134962645363081713457711045164648690059567449002861975404185303693870616009295264957116773637689312813026326317283603176220740343250955496061743595898585785581412488622116759061167787086207005624124961556033880357818344622767810283932118740991110573966165705344537306923597363300166671788599444111164760466430202419755302792000913144466948211858143588735226534986*x^16 + 98520201469099237484897789262154548119115230609197662409917341479169466683167047547878366348653830920092184425969067639913187426147971313462004033883573648108054712874932532027895076751708690256368894595607786137899225149530137766022324234426063081412434514300018137006224261597802213316555792703741441252504002163638412372030608846142464119060110521568594470459482323594092710416990665976919453014964031492865023204969881378261097072055607981609291119299706*x^15 - 3197965499442211657686826740505041927334201126607427071680083109056006534142604197237209716692182520994385426983961947118250692828362466067072357392042951550379783970938598505048286463375792760159783277540316330796691546249764712394859113254356486878387291954512253131610263413794530996809955911607684410117077723625228434559881972851408066040508269152726335374211402011686605670480615938738388315140976025429889526607696285972454626977594229517782420302040839046*x^14 + 57669316534112012160015098749980875341286069388715395941900892574643671068511899959430829281294399857624936119665437134161529003728738256393790178804829011850069216461628777607581783048925955374757012099325836993807693070034168194818975469631509826238330611837322974524979744302939774880165931896355366458637366294472713917509082348525010411651922719579263091173975948140699222393792901028425894697359347332030118951161839690092068980178422307351178811179940367440157*x^13 - 616873087914977963195625150149992404083805548675931669765895544507592751447067480339178457526119723919694633313335873324846151241282305506800430311239071078848719780556874389732061807715258399455313056204070563504498949559258903114842295012737938976457828624758625955798717395032150661278746719862466725834911893488994243986247661831327114286442772186794487537772419379719645300536635658982335485242713993144640886945384539348119410384322803376463213857472981276566044416*x^12 + 4218908649716485445520099577967208312908847283943538168244719148307833432185852864355152517728783070807192370099085887942233510499609706117478898257437074236058163651505705605780144183634976549684568135126799496676163433941343244486548494249657742966627810865281381135739863977454538850893397773866702918044334587217832999682138468962799226400731789323858242641185516966064538055747893968480899400995202690842706118204887142858840263730539047298413276000380576133866656414217*x^11 - 19402955028065563578287237733279132288371732816427524690211787746120538562052781815250587653880418696389432504033931011749270418255183031932031568116326143847525249870904419211720412928142231478995537815683923232903528291533396307239429554173060150872663833919779034381319796831180587423947728588263745443602554740587612179771144946561892413782457396219003281379389204607825176492191441020574355924053965908128477740710883838874644288983968953794452087695666127054036683682285321*x^10 + 61794562079778201923697516599144234170465325916407114282301663431611304062091636790809844698067179116544288793747291317304124176894462952085136096779127746611897363659463030206954705031240028801690666416224529662832876675400656987521189322274462532588362554631192873177221981961368824683301893531266733470958271489818455967573039272647642733540340932586615744080302266251646463762934835840046053145975944569540776777276988826648968712247082705185949441833471734389738686071297133931*x^9 - 138331146448216723156361682523420069768980074348261528916614629435500401964483058928370002369065784535922841211612970996277680813247890276350257244962654755438052447230068411754879126518068159165831509191618830431698285809000724340869800894181941611977829681994109461573560821745051680747036797942434467492456922171612094608039771649873923564997306748960083825720222839241229729174787318111262313675809763262667642022394505428689286803628579506078177303744155479687117319615993212544565*x^8 + 218480890681456981877140173866098483346340548113014322855719974874397030048485348215892139316274500211831761299317335394432161010130138247340346929025041749754863198023961165170644353248247200108996784439959904118509118190279105559991694550841494601113142840710534924858590205102024734526361826048707218576913532078122213465060777808599111625632926382908739237895639662149745113664724885700711607280724099961125196561256243523872428378250536135913952206514604854041728944137625779888272440*x^7 - 241808993628121871110640327316018706159700725511956489056123405468558251569157497859828907714700612650181240618973608943828481033668565837799086644912518036037491330676379842604029224582676270215953717132151467975282083862665614062707893977438549600683491124026269237818205605978932287260792934097972201278377947579852885915161288301111640174555091786060913712653292981312779417257966725768821671163814400844469337393707692555608505952927388772750391511487190745296365621437832065310404010851*x^6 + 183896244404488182704708408966979573883662857377936699391418309336425388044827623609700804912675498461646072160983889744795451086449390914345395760188335061708040567911804521608828852189317589485206508366905097996394590351027777077028233131064394281760707201702887636915653287625691469658041827361988348327295699280033304233738297567387482604771666630596338666433387589102867391417851728120385263409191894557768347525576550187106902635783844545737282698100678399305697961940794203377680216721138*x^5 - 92307456871157814950049275263663417579506464110026746557158776134822014415327835308003211463190188914231550742229926167505460681502676551302155179659390627400470781331713847815458371226200034565408914116142626062784986001010021913319240267645386540709039520141737938825733515533893686444299795984462296629307921549257739523370841814474402033996209548745952923308464973878555086818346178871744478790067757325270951239280270666520133405908386674642344586071638245847974248703497869489524592326747299*x^4 + 28070241959754879926649219922596319945801478849603290007755347145423183481075080600255961801806661169199648180239289342175801843691123865880748326000571687724632059917673186524857411318128507133597241272514749304668316812794659978491036267231504032805725994075579289574847254729727708080249810995566712585339955915568922495009061054228984844310645143504431113409730130583867048887124920264476773198262635805277096201378735761363405248320920921317044596463738566836721212002018627443644544978851248864*x^3 - 4138900059957431706768887027177415698089598093568313454663308009493068684594624551127972175408941799884804427082003299786122669331994570264352964043375422396830060618576904366066628939030457644739485355032886575786331809934597600777366578634531738383162315602826375919249147372894739044005641652212737566227331358562360978121173775641767361402302591445090164603175244301287742095816154471039455222090232278579901651047682580768818155098142546255299130696330801985811460209104568583868863953218957439421*x^2 + 150462696912378180395154378497266509528588026197753883618986543690912747796410884025758805733089809710149812973756922202067767228088739303598596979738154232706132373247804421267196139148630266031258233674283206057961768790862934604076630197233848556724997154094925347317312156195891741572983969750546039892602865332729347730396024951395327288886867367716539738616203513062733596016693655355522630082504966936182335639359269955156234604277237490784103665740979506999435226740851868180806172716102148351586*x - 65130997790079175632040424286946542184847314429328563631539965474105895953650035819660467912688405084931395936368946742899122304386482787730563837730049206912027706045061562361026224583443631285806373342914016999635784591396332288138542563247522161425906142097127590638538595154985967539502242326241560298107760202862887980316012391064109336452626431486314431921052090003148508902868570465567090196345064216237751010542677298617446396575445601220001301525917675458127398720523887067505457811141828772204191
As expected, the lower level has class number 42. We proceed like before.
for p in primes(3, 10000):
if GF(p)(D*3^4).is_square():
Hp = H.change_ring(GF(p))
if Hp.splitting_field('x').degree() == 1:
print(p, Hp.is_squarefree())
(71, False) (5851, True) (6007, True) (6151, True) (6427, True) (6907, True) (7351, True) (7687, True) (7867, True) (8887, True)
hilbert_class_polynomial(D*3^4).change_ring(GF(5851)).factor()
(x + 106) * (x + 148) * (x + 248) * (x + 282) * (x + 642) * (x + 1032) * (x + 1062) * (x + 1140) * (x + 1392) * (x + 1441) * (x + 1618) * (x + 1879) * (x + 1941) * (x + 2223) * (x + 2595) * (x + 2596) * (x + 2741) * (x + 2745) * (x + 2773) * (x + 2788) * (x + 2835) * (x + 2899) * (x + 3064) * (x + 3525) * (x + 3593) * (x + 3655) * (x + 3679) * (x + 3710) * (x + 3712) * (x + 3789) * (x + 3846) * (x + 3862) * (x + 3915) * (x + 4009) * (x + 4155) * (x + 4210) * (x + 4262) * (x + 4543) * (x + 4592) * (x + 5527) * (x + 5591) * (x + 5657)
E = EllipticCurve(j=GF(5851)(-106))
G = explore(Graph(), E)
G
Graph on 63 vertices (use the .plot() method to plot)
G.plot()