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