1Function: rnfisnorm 2Section: number_fields 3C-Name: rnfisnorm 4Prototype: GGD0,L, 5Help: rnfisnorm(T,a,{flag=0}): T is as output by rnfisnorminit applied to 6 L/K. Tries to tell whether a is a norm from L/K. Returns a vector [x,q] 7 where a=Norm(x)*q. Looks for a solution which is a S-integer, with S a list 8 of places in K containing the ramified primes, generators of the class group 9 of ext, as well as those primes dividing a. If L/K is Galois, you may omit 10 flag, otherwise it is used to add more places to S: all the places above the 11 primes p <= flag (resp. p | flag) if flag > 0 (resp. flag < 0). The answer 12 is guaranteed (i.e a is a norm iff q=1) if L/K is Galois or, under GRH, if S 13 contains all primes less than 12.log(disc(M))^2, where M is the normal 14 closure of L/K. 15Doc: similar to 16 \kbd{bnfisnorm} but in the relative case. $T$ is as output by 17 \tet{rnfisnorminit} applied to the extension $L/K$. This tries to decide 18 whether the element $a$ in $K$ is the norm of some $x$ in the extension 19 $L/K$. 20 21 The output is a vector $[x,q]$, where $a = \Norm(x)*q$. The 22 algorithm looks for a solution $x$ which is an $S$-integer, with $S$ a list 23 of places of $K$ containing at least the ramified primes, the generators of 24 the class group of $L$, as well as those primes dividing $a$. If $L/K$ is 25 Galois, then this is enough but you may want to add more primes to $S$ to 26 produce different elements, possibly smaller; otherwise, $\fl$ is used to 27 add more primes to $S$: all the places above the primes $p \leq \fl$ 28 (resp.~$p|\fl$) if $\fl>0$ (resp.~$\fl<0$). 29 30 The answer is guaranteed (i.e.~$a$ is a norm iff $q = 1$) if the field is 31 Galois, or, under \idx{GRH}, if $S$ contains all primes less than 32 $12\log^2\left|\disc(M)\right|$, where $M$ is the normal 33 closure of $L/K$. 34 35 If \tet{rnfisnorminit} has determined (or was told) that $L/K$ is 36 \idx{Galois}, and $\fl \neq 0$, a Warning is issued (so that you can set 37 $\fl = 1$ to check whether $L/K$ is known to be Galois, according to $T$). 38 Example: 39 40 \bprog 41 bnf = bnfinit(y^3 + y^2 - 2*y - 1); 42 p = x^2 + Mod(y^2 + 2*y + 1, bnf.pol); 43 T = rnfisnorminit(bnf, p); 44 rnfisnorm(T, 17) 45 @eprog\noindent 46 checks whether $17$ is a norm in the Galois extension $\Q(\beta) / 47 \Q(\alpha)$, where $\alpha^3 + \alpha^2 - 2\alpha - 1 = 0$ and $\beta^2 + 48 \alpha^2 + 2\alpha + 1 = 0$ (it is). 49