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