Ask Your Question
1

Formal Group Law on Elliptic Curves

asked 2022-09-28 07:12:35 +0100

Fhn gravatar image

updated 2022-10-27 08:25:08 +0100

FrédéricC gravatar image

It is very likely I am misunderstanding something, in which case I apologize in advance. Here's my question.

Start with an elliptic curve $E/\mathbb Z_p$ and $M=(p)$ the maximal ideal of $\mathbb Z_p$.

I am considering $\hat E$ the formal group and say $F$ its group law.

I am trying to take two points in $M$ and add them using the group law, something that should be possible and converge (see Silverman AEC pg 119).

On Sage, this is easy to set up:

E=EllipticCurve('61a1')
Ep=E.change_ring(Qp(5))
Ef=Ep.formal_group()
F=Ef.group_law(16)
a=Qp(5, prec=16)(5+3*5^2)
b=Qp(5, prec=16)(5^2-2*5^3)
X=Ef.x(16)
Y=Ef.y(16)
I=Ef.inverse(16)

Now the command F(a,b) pops an error saying that a,b need to have positive valuation. The issue is that it is working over the ring $\mathbb Z_p[[t]]$ over which, indeed a,b have valuation 0. But, unless I am misunderstanding something, since a and b have positive valuation in $\mathbb Z_p$, we should be allowed to add them, right?

The same issue does not exist with the other functions, like X(a), Y(a), I(a) etc.

I have found a way to get around this issue by taking exp(log(a)+log(b)) where exp and log are the formal group logarithmic and exponential functions, but surely this is not a nice way.

So is this indeed a bug or am I misunderstanding something? And if it is a bug, is there an easy/good way to fix/get around it?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2022-10-06 18:14:40 +0100

dan_fulea gravatar image

The following worked for me, regarding the computation of $F(a, b)$.

E  = EllipticCurve('61a1')
Ep = E.change_ring(Qp(5))
Ef = Ep.formal_group()
F  = Ef.group_law(16)

# t1, t2 = F.parent().gens()

a  = Qp(5, prec=16)(5+3*5^2)
b  = Qp(5, prec=16)(5^2-2*5^3)

print( F.polynomial()(a, b) )

which delivers

5 + 4*5^2 + 2*5^3 + 3*5^4 + 3*5^7 + 3*5^8 + 3*5^9 + 4*5^10 + 3*5^11 + 5^12 + 3*5^13 + 2*5^14 + 5^15 + 3*5^16 + O(5^17)

Here, we may go wrong with the "last $p$-adic digits", when precisions do not match in the sense of the (default) precision used inside F.parent().

Note: Unfortunately the base ring

sage: R = Qp(5)
sage: R
5-adic Field with capped relative precision 20
sage: R.is_exact()
False

is not an exact field. So sage lets the programmer arrange for controlling precision in the performed operations.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2022-09-28 07:12:35 +0100

Seen: 1,218 times

Last updated: Oct 06 '22