Hey thanks for the plaudit. I realize that these elliptic functions involve some complicated calculus, but think that the effort is worthwhile. Though elliptic curves are easy-enough to understand, especially in Edward's normal form, some of the younger curve-calculators may want an easier example to start out with. I hate to sound trite, but maybe it's time to look at the harmonic oscillator again?
Fibration1 = Show[
ParametricPlot3D[
Evaluate[{Cos[t], -Sin[t], (1/2) # Pi/6} & /@ Range[0, 12]], {t, 0,
2 Pi}, Boxed -> False, Axes -> False,
PlotStyle -> Directive[Black, Thickness[.005]]],
ParametricPlot3D[
Evaluate[{Cos[# Pi/6], -Sin[# Pi/6], #/12 (1/2) t} & /@
Range[0, 12]], {t, 0, 2 Pi}, Boxed -> False, Axes -> False,
PlotStyle -> Directive[Black, Thickness[0.005]]],
ParametricPlot3D[
Evaluate[{1.01 Cos[t], -1.01 Sin[t], (1/2) t}], {t, 0, 2 Pi},
Boxed -> False, Axes -> False,
PlotStyle -> Directive[Thickness[.015], Black]],
Graphics3D[{
PointSize[Large],
Point[{1.01 Cos[# Pi/6], -1.01 Sin[# Pi/6], 0}] & /@ Range[12]
}], PlotRange -> All, ImageSize -> {500, 500}]

The time helix of the harmonic oscillator is a proper helix in the sense that intersections along the vertical, at equal time intervals, project into the phase plane, as points spaced by equal-angle intervals. The connection between continuous and discrete time evolution can be expressed in terms of the well known trigonometric addition rules:
$$ (X_3,Y_3) \leftarrow (X_1 X_2-Y_1Y_2, X_1 Y_2 + Y_1X_2) . $$
With a little bit of differential geometry, it's relatively easy to motivate and derive the invariant differentials of the harmonic oscillator:
$$ dt= \frac{dX}{Y} = -\frac{dY}{X} $$
But are they truly invariant? What will happen if we transform these differentials by the trigonometric addition rules?
rep = {
X3[t] -> X1[t] X2[t] - Y1[t] Y2[t],
Y3[t] -> X1[t] Y2[t] + Y1[t] X2[t]
};
dt == D[X3[t], t]/(Y3[t]) ==
Expand@Factor[D[X3[t] /. rep, t]/(Y3[t] /. rep) /. {
D[Y1[t], t] -> -(X1[t]/Y1[t]) D[X1[t], t],
D[Y2[t], t] -> -(X2[t]/Y2[t]) D[X2[t], t]
}]
dt == D[-Y3[t], t]/(X3[t]) ==
Expand@Factor[D[-Y3[t] /. rep, t]/(X3[t] /. rep) /. {
D[X1[t], t] -> -(Y1[t]/X1[t]) D[Y1[t], t],
D[X2[t], t] -> -(Y2[t]/X2[t]) D[Y2[t], t]
}]

In terms of group theory--I will explain more later--this validation code proves associative and closure property of the trigonometric addition rules at once. Generalizing to elliptic curve addition laws, this approach provides a viable alternative to the zero-calculus method advocated by HALES. However, his notes can be useful because more complicated calculations do require use of a function like PolynomialReduce.