Open in CoCalc
1
def 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