Open in CoCalc
1def dembelle_curves():
2    F = NumberField(x**2 - x - 1, 'w')
3    w = F.gen()
4    v = [
5    [ w + 1, -w - 1, w, -2, -w + 1 ],
6    [ 0, w - 1, w + 1, 0, -w ],
7    [ 0, -w + 1, 1, 1, 0 ],
8    [ w + 1, -1, 0, -2*w - 1, 0 ],
9    [ w, w + 1, 0, w + 1, 0 ],
10    [ w, w + 1, w + 1, 2*w - 2, -w + 1 ],
11    [ w + 1, w - 1, 0, 2, w - 1 ],
12    [ w, w - 1, 1, 0, 0 ],
13    [ 0, 1, 1, -2*w - 1, 2*w + 1 ],
14    [ 1, -1, w + 1, -w - 2, -w - 1 ],
15    [ 1, -w, w, w - 2, -w + 1 ],
16    [ 1, -w, w, -w, 0 ],
17    [ w + 1, -1, w, -2*w - 1, 0 ],
18    [ w, -w - 1, 1, 0, 0 ],
19    [ w + 1, 0, w, -w - 2, w - 2 ],
20    [ 1, w - 1, w, -1, -w + 1 ],
21    [ 1, w, w, 0, 0 ],
22    [ 1, -1, 1, -1, 0 ],
23    [ 0, -w - 1, w + 1, 0, 0 ],
24    [ 0, 0, w, -w - 1, 0 ],
25    [ 0, 1, w + 1, 2*w - 3, -2*w + 1 ],
26    [ 1, -w, 1, 0, 0 ],
27    [ 1, -w - 1, w + 1, 0, -w ],
28    [ w + 1, w + 1, w + 1, 3*w + 1, 3*w + 2 ],
29    [ 1, w - 1, 1, -w, 0 ],
30    [ w, 1, w + 1, -2, -w ],
31    [ 0, w, w + 1, w - 1, -w ],
32    [ w + 1, -w, w + 1, -2*w - 1, 0 ],
33    [ 0, w + 1, w + 1, 2*w + 1, 0 ],
34    [ 0, -w, w, w - 1, -w + 1 ],
35    [ 1, -w - 1, w, w - 1, -1 ],
36    [ w + 1, w - 1, w + 1, -w - 1, -w ],
37    [ w + 1, w + 1, 0, 2*w + 1, 0 ],
38    [ w, -w + 1, w, -2*w + 2, -w + 1 ],
39    [ w, w, 0, w, -w + 2 ],
40    [ 0, 1, w, w + 1, 0 ],
41    [ 1, -w - 1, 1, -w - 1, 2*w + 1 ],
42    [ 0, -w - 1, w, -2, -1 ],
43    [ 1, 0, w + 1, -1, -w ],
44    [ 1, w - 1, w, -w + 1, -w + 1 ],
45    [ 0, w + 1, w + 1, 1, -w ],
46    [ w, w - 1, 0, -2*w - 2, w + 2 ],
47    [ w + 1, 1, 1, -w - 2, 0 ],
48    [ w, -w + 1, 0, -w, 0 ],
49    [ 1, w, 0, -2*w - 2, w + 1 ],
50    [ w + 1, 1, 0, -2*w - 1, 0 ],
51    [ 1, 0, w + 1, -w - 1, 0 ],
52    [ w + 1, -1, 0, -2*w, w ],
53    [ w, w, w + 1, w - 2, -2*w + 2 ],
54    [ 0, w + 1, w + 1, -2*w - 1, 0 ],
55    [ w + 1, 0, w + 1, -3*w - 2, 0 ],
56    [ w + 1, w + 1, 1, 2*w + 1, w ],
57    [ 1, w, 1, -w - 1, 2*w - 3 ],
58    [ w, 1, w, -3*w - 3, 2*w ],
59    [ w, -w - 1, w + 1, -1, -w ],
60    [ w + 1, -w - 1, w + 1, -2*w - 2, 0 ],
61    [ 0, w - 1, w + 1, -w + 1, -w ],
62    [ 1, -w - 1, 1, w, 2*w + 1 ],
63    [ w + 1, -1, w, -w - 1, -1 ],
64    [ 1, w - 1, 1, -3*w - 2, 2*w + 1 ],
65    [ w, -1, w, 3*w + 2, -3*w - 2 ],
66    [ 0, w + 1, w + 1, w - 1, -w ],
67    [ w + 1, 0, 1, -w - 2, -2*w - 2 ],
68    [ 0, w + 1, 1, 2*w + 1, 2*w + 1 ],
69    [ w, 0, 1, -3*w + 3, 0 ],
70    [ 1, w - 1, 0, -3*w - 1, 2*w + 1 ],
71    [ 0, -w, 1, 2*w - 2, -w + 1 ],
72    [ 1, 1, w, -2*w + 2, -w + 1 ],
73    [ w + 1, -w + 1, 0, 2*w - 3, 0 ],
74    [ 1, -w + 1, w, -w + 1, -w + 1 ],
75    [ 1, 0, w, -w, -1 ],
76    [ w + 1, w - 1, 0, w, 0 ],
77    [ 0, 0, 1, -3*w - 2, 2*w + 1 ],
78    [ 0, 1, 1, -3, 1 ],
79    [ 0, -w + 1, 1, -w + 1, 0 ],
80    [ w + 1, w, w + 1, w - 3, -3 ],
81    [ w, -w, 1, 3*w + 1, -3*w - 3 ],
82    [ 0, -1, w + 1, w, -w ],
83    [ 0, -1, w + 1, -3*w - 1, 2*w + 3 ],
84    [ w + 1, 0, w + 1, -2*w - 1, -w ],
85    [ w + 1, -1, 1, -3*w - 2, 2*w + 1 ],
86    [ w + 1, w - 1, 0, -3*w - 1, -3*w - 2 ],
87    [ w, 1, 1, -2*w + 1, 0 ],
88    [ 1, -1, 1, -3*w - 3, -2*w - 1 ],
89    [ 1, -w + 1, 0, -w, 0 ],
90    [ w, w, w + 1, 0, -1 ],
91    [ 1, w - 1, 1, -1, -w ],
92    [ 0, -w + 1, 1, w - 2, 0 ],
93    [ 0, -w + 1, 1, -3*w + 1, w + 2 ],
94    [ 0, 1, 1, 0, 0 ],
95    [ 1, w, w + 1, -w + 1, -w ],
96    [ 1, 1, 0, w - 1, 0 ],
97    [ 0, w + 1, w, w, -w - 1 ],
98    [ 0, 0, 1, w - 3, -w + 2 ],
99    [ w + 1, w + 1, 0, 3*w + 2, 2*w + 1 ],
100    [ w + 1, -1, w + 1, -2*w - 2, -2*w ],
101    [ w + 1, w, 0, 2*w - 2, -3*w + 2 ],
102    [ w, -w + 1, w + 1, -w - 1, 0 ],
103    [ 1, w, 1, -2, 0 ],
104    [ 0, -1, w + 1, 0, 0 ],
105    [ 0, w, 1, -3*w - 2, -3*w - 2 ],
106    [ 1, -w, w, -w - 1, 0 ],
107    [ w + 1, w - 1, w + 1, -2*w, -w - 1 ],
108    [ 0, w + 1, 1, w, w - 2 ],
109    [ w + 1, w + 1, w, -3, -w + 1 ],
110    [ 1, -w + 1, w, -w, 0 ],
111    [ w + 1, -w, 0, -2*w - 1, 0 ],
112    [ 0, w + 1, w + 1, 0, 0 ],
113    [ w + 1, -w + 1, w + 1, w + 1, 0 ],
114    [ 1, w - 1, w + 1, -w, -2 ],
115    [ w, 0, 0, w - 3, -w + 2 ],
116    [ w + 1, -w, w, -3*w, 1 ],
117    [ 1, -w - 1, 0, 2*w, -w ],
118    [ w, -w + 1, w, -w - 1, -1 ],
119    [ w, -w, 1, -w + 1, 0 ],
120    [ w + 1, w - 1, 1, 2*w - 1, 3 ],
121    [ w + 1, -w - 1, w, -2*w - 2, w + 1 ],
122    [ 1, w + 1, w, 2*w - 2, -3*w ],
123    [ 0, -w, w, -2, w + 1 ],
124    [ 0, 0, w + 1, -2*w + 1, -3 ],
125    [ w + 1, -w - 1, w + 1, -2*w - 1, 0 ],
126    [ 1, -w + 1, 1, -3*w - 1, 2*w + 2 ],
127    [ 1, -w, w + 1, -w - 2, -2*w - 1 ],
128    [ 0, -w + 1, w, -w + 2, -w + 1 ],
129    [ 1, -w - 1, 0, -w + 3, -2*w + 3 ],
130    [ w + 1, -w, w + 1, -3*w - 2, -2*w - 1 ],
131    [ 1, -1, 1, w - 2, -w + 1 ],
132    [ w + 1, w + 1, 0, 2*w + 1, -1 ],
133    [ w, -w + 1, w + 1, -3*w + 1, -w - 1 ],
134    [ w + 1, 1, 1, -w, 0 ],
135    [ w, -1, 0, -w, 0 ],
136    [ w, 1, w, -1, 0 ],
137    [ w, 0, 1, -3*w - 2, -w - 1 ],
138    [ w, -w - 1, 1, w + 1, 2*w + 1 ],
139    [ 1, -1, 0, -3*w - 2, 3*w + 2 ],
140    [ w, 1, 0, -w, 0 ],
141    [ 0, w, 1, -w, -w - 1 ],
142    [ 1, w - 1, 1, -2, -w ],
143    [ w, 0, 1, -w - 1, 0 ],
144    [ 0, w + 1, w, -w + 1, -w + 1 ],
145    [ w, -w, 1, -2*w - 2, 0 ],
146    [ w, 1, w, -w, -w ],
147    [ 1, -w + 1, 1, 0, w ],
148    [ 1, -1, 0, w - 2, -w + 2 ],
149    [ w, -w + 1, 1, -2*w, 0 ],
150    [ w, w - 1, 0, 2*w - 3, 0 ],
151    [ w + 1, 1, w, w - 3, -w + 1 ],
152    [ w, 1, 0, w - 3, 2*w - 3 ],
153    [ w, 0, 0, w - 1, 0 ],
154    [ 1, -w, 1, -2*w - 2, 2*w + 1 ],
155    [ w + 1, -w + 1, w + 1, -3*w, w - 3 ],
156    [ w, 1, 0, w, 0 ],
157    [ w, w - 1, w, -2, -w ],
158    [ w, 0, 1, w - 3, -w + 2 ],
159    [ w, -w, w + 1, 3*w + 1, -2*w - 2 ],
160    [ w + 1, 1, w + 1, w + 1, 0 ],
161    [ w, -w + 1, 1, -w + 1, -2*w + 3 ],
162    [ w + 1, w + 1, 1, w + 3, 2*w - 1 ],
163    [ 1, w - 1, w + 1, -w, -w ],
164    [ 1, w, 0, 2*w + 1, 0 ],
165    [ 1, -1, 0, -2*w - 3, 3*w + 3 ],
166    [ w + 1, -1, 1, 2*w - 3, -w - 3 ],
167    [ w, -1, w + 1, -2*w - 1, -w - 1 ],
168    [ 0, -1, w, 2*w - 3, -w + 1 ],
169    [ w + 1, -1, w + 1, -w - 2, -2*w ],
170    [ 1, 0, 1, -w, 0 ],
171    [ w + 1, -w, 0, 2*w - 3, 0 ],
172    [ w, w - 1, w + 1, -2*w - 1, -2*w - 1 ],
173    [ w, w + 1, w, -2, -w + 1 ],
174    [ w, -w, 0, w, 0 ],
175    [ 1, -w - 1, 1, -1, 0 ],
176    [ w, w, w, 1, 0 ],
177    [ w + 1, -w - 1, w, -2*w - 1, 0 ],
178    [ 1, 0, 0, -w - 1, 0 ],
179    [ w, 0, 1, -1, 0 ],
180    [ w, -1, 0, -2*w + 3, 0 ],
181    [ 0, -w - 1, w, 3*w + 2, -3*w - 2 ],
182    [ w, w, w, w - 2, -w + 1 ],
183    [ 0, 1, 1, -w + 2, -2*w + 3 ],
184    [ w + 1, -1, w, -w - 1, -w + 1 ],
185    [ 0, -w + 1, w, -2*w, w + 1 ],
186    [ 1, w, w + 1, 2*w - 1, w + 2 ],
187    [ w + 1, w + 1, w, w, -w - 1 ],
188    [ w, -w - 1, 0, -2*w - 1, 0 ],
189    [ w + 1, w + 1, 1, 2*w, 0 ],
190    [ w, w + 1, 1, 2*w - 1, 1 ],
191    [ 1, w, w + 1, -2*w - 1, -3*w - 2 ],
192    [ w + 1, w - 1, 0, -2*w - 3, 3 ],
193    [ w, 0, 0, -w + 1, 0 ],
194    [ w + 1, 0, 0, 1, 2*w - 3 ],
195    [ 1, 1, 1, w - 1, w - 1 ],
196    [ 1, -w, w + 1, -3*w - 2, 3*w + 2 ],
197    [ 0, -1, w + 1, w - 3, -2*w + 3 ],
198    [ w + 1, 1, 0, -w, 0 ],
199    [ w, -w - 1, w + 1, -2*w - 2, -w - 1 ],
200    [ 0, -1, 1, w - 1, w - 2 ],
201    [ 0, w, w, -1, -w ]
202    ]
203    return [EllipticCurve(F, a) for a in v]
204
205
206