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