1 | initial version |

This is a later answer, hoping that the quick good answer of FrédéricC will be accepted.

Let us place the above in the context of a sample elliptic curve, my choice is

```
E = EllipticCurve(QQ, [-1, 0])
FormalGroupOfE = E.formal_group()
f = FormalGroupOfE.log(prec=20)
print(f)
```

This gives:

```
t - 2/5*t^5 + 2/3*t^9 - 20/13*t^13 + 70/17*t^17 + O(t^20)
```

Here, `t`

is a printed variable, that does not exist so far as `t`

, so we introduce it.

```
sage: t = f.parent().gens()[0]
sage: t
t
```

Now we can associate the `reverse`

object, and check the compositions...

```
sage: g = f.reverse()
sage: g
t + 2/5*t^5 + 2/15*t^9 + 44/975*t^13 + 422/27625*t^17 + O(t^20)
sage: g(f(t))
t + O(t^20)
sage: f(g(t))
t + O(t^20)
```

If $F$ is the "group law" of the formal group,

```
sage: F = FormalGroupOfE.group_law()
sage: F
t1 + t2 + 2*t1^4*t2 + 4*t1^3*t2^2 + 4*t1^2*t2^3 + 2*t1*t2^4 - 2*t1^8*t2
+ 8*t1^6*t2^3 + 16*t1^5*t2^4 + 16*t1^4*t2^5 + 8*t1^3*t2^6 - 2*t1*t2^8
+ O(t1, t2)^10
```

(code was split manually,) and we have by definition $f(\ F(x,y)\ )=f(x)+f(y)$, so let us check the relation obtained from this one, after applying $g$:

```
sage: t1, t2 = F.parent().gens()
sage: F(t1, t2) == g( f(t1) + f(t2) )
True
```