ec pairing class group divisors in sage

This commit is contained in:
narodnik
2022-07-09 09:45:23 +02:00
parent 324f43d097
commit 2bcf9e3b58

View File

@@ -0,0 +1,32 @@
q = 61
K = GF(q)
E = EllipticCurve(K, [8, 1])
P = E(57,24)
Q = E(25,37)
R = E(17,32)
S = E(42,35)
inf = E(0)
D1 = ((1, P), (1, Q), (1, R))
D2 = ((4, inf), (-1, S))
# D1 ~ D2 <=> D1 = D2 + <f>
# sum(div(f)) = O, deg(div(f)) = 0
def dsum(D):
P = inf
for order, pnt in D:
P += order * pnt
return P
def degree(D):
return sum(order for order, _ in D)
def neg(D):
return tuple((-order, pnt) for order, pnt in D)
D = D1 + neg(D2)
assert degree(D) == 0
assert dsum(D) == inf