Function: rnfidealabstorel
Section: number_fields
C-Name: rnfidealabstorel
Prototype: GG
Help: rnfidealabstorel(rnf,x): transforms the ideal x from absolute to
relative representation.
Doc: let $\var{rnf}$ be a relative
number field extension $L/K$ as output by \kbd{rnfinit} and let $x$ be an
ideal of the absolute extension $L/\Q$. Returns the relative pseudo-matrix in
HNF giving the ideal $x$ considered as an ideal of the relative extension
$L/K$, i.e.~as a $\Z_K$-module.
Let \kbd{Labs} be an (absolute) \kbd{nf} structure attached to $L$,
obtained via \kbd{Labs = nfinit(rnf))}. Then \kbd{rnf} ``knows'' about
\kbd{Labs} and $x$ may be given in any format
attached to \kbd{Labs}, e.g. a prime ideal or an ideal in HNF wrt.
\kbd{Labs.zk}:
\bprog
? K = nfinit(y^2+1); rnf = rnfinit(K, x^2-y); Labs = nfinit(rnf);
? m = idealhnf(Labs, 17, x^3+2); \\ some ideal in HNF wrt. Labs.zk
? B = rnfidealabstorel(rnf, m)
%3 = [[1, 8; 0, 1], [[17, 4; 0, 1], 1]] \\ pseudo-basis for m as Z_K-module
? A = rnfidealreltoabs(rnf, B)
%4 = [17, x^2 + 4, x + 8, x^3 + 8*x^2] \\ Z-basis for m in Q[x]/(rnf.polabs)
? mathnf(matalgtobasis(Labs, A)) == m
%5 = 1
@eprog\noindent If on the other hand, we do not have a \kbd{Labs} at hand,
because it would be too expensive to compute, but we nevertheless have
a $\Z$-basis for $x$, then we can use the function with this basis as
argument. The entries of $x$ may be given either modulo \kbd{rnf.polabs}
(absolute form, possibly lifted) or modulo \kbd{rnf.pol} (relative form as
\typ{POLMOD}s):
\bprog
? K = nfinit(y^2+1); rnf = rnfinit(K, x^2-y);
? rnfidealabstorel(rnf, [17, x^2 + 4, x + 8, x^3 + 8*x^2])
%2 = [[1, 8; 0, 1], [[17, 4; 0, 1], 1]]
? rnfidealabstorel(rnf, Mod([17, y + 4, x + 8, y*x + 8*y], x^2-y))
%3 = [[1, 8; 0, 1], [[17, 4; 0, 1], 1]]
@eprog