Function: ellisogenyapply
Section: elliptic_curves
C-Name: ellisogenyapply
Prototype: GG
Help: ellisogenyapply(f, g): given an isogeny f and g either a point P (in the
 domain of f) or an isogeny, apply f to g: return the image of P under f or
 the composite isogeny f o g.
Doc:
 Given an isogeny of elliptic curves $f:E'\to E$ (being the result of a call
 to \tet{ellisogeny}), apply $f$ to $g$:

 \item if $g$ is a point $P$ in the domain of $f$, return the image $f(P)$;

 \item if $g:E''\to E'$ is a compatible isogeny, return the composite
 isogeny $f \circ g:  E''\to E$.

 \bprog
 ? one = ffgen(101, 't)^0;
 ? E = ellinit([6, 53, 85, 32, 34] * one);
 ? P = [84, 71] * one;
 ? ellorder(E, P)
 %4 = 5
 ? [F, f] = ellisogeny(E, P);  \\ f: E->F = E/<P>
 ? ellisogenyapply(f, P)
 %6 = [0]
 ? F = ellinit(F);
 ? Q = [89, 44] * one;
 ? ellorder(F, Q)
 %9 = 2
 ? [G, g] = ellisogeny(F, Q); \\  g: F->G = F/<Q>
 ? gof = ellisogenyapply(g, f); \\ gof: E -> G
 @eprog
