Bill Allombert on Fri, 04 Apr 2014 23:24:34 +0200

 new functions bnrisgalois, bnrgaloismatrix, bnrgaloisapply

```On Sun, Dec 15, 2013 at 02:56:29PM +0100, Bill Allombert wrote:
> Dear PARI developers,

I have just merged this branch. Please read the rest of quoted email for more
detail. I did not yet implement the computation of the actual Galois group.
This is a bit painful to do in the current group model.

> I have created a branch 'bill-bnrisgalois'
> which adds a GP function bnrisgalois which allow to check whether some
> abelian extensions given by class field theory is Galois over a subfield
> of the base field, without computing the polynomial defining the extension.
>
> This require to use bnrinit(,,1)
>
> From the documentation:
>
>  check whether the class field associated to
>  the subgroup H is Galois over the subfield of bnr.nf fixed by the
>  group gal, which can be given as output by galoisinit, or as a
>  matrix or a vector of matrices as output by bnrgaloismatrix, the second
>  option being preferable, since it saves the recomputation of the matrices.
>  Note: The function assumes that the ray class field associated to bnr is
>  Galois, which is not checked.
>
> In the following example, we lists the congruence subgroups of subextension of
> degree at most 3 of the ray class field of conductor 9 which are Galois
> over the rationals.
>
> ? K=bnfinit(a^4-3*a^2+253009);
> ? G=galoisinit(K);
> ? B=bnrinit(K,9,1);
> ? L1=[H|H<-subgrouplist(B,3), bnrisgalois(B,G,H)]
> %4 = [[1,0,0,0;0,3,2,0;0,0,1,0;0,0,0,1],[3,2,1,0;0,1,0,0;0,0,1,0;0,0,0,1],[3,0,0,1;0,1,0,0;0,0,1,0;0,0,0,1],[1,0,0,0;0,1,0,0;0,0,3,1;0,0,0,1]]
> ? ##
>   ***   last result computed in 292 ms.
> ? M=bnrgaloismatrix(B,G)
> %5 = [[3051,4900,7000,2800;8,7,0,4;1,1,5,2;1,1,1,0],[7349,3500,7000,2800;0,5,8,4;3,5,5,2;0,2,1,0]]
> ? L2=[H|H<-subgrouplist(B,3), bnrisgalois(B,M,H)]
> %6 = [[1,0,0,0;0,3,2,0;0,0,1,0;0,0,0,1],[3,2,1,0;0,1,0,0;0,0,1,0;0,0,0,1],[3,0,0,1;0,1,0,0;0,0,1,0;0,0,0,1],[1,0,0,0;0,1,0,0;0,0,3,1;0,0,0,1]]
> ? ##
>   ***   last result computed in 0 ms.
>
> The second computation is much faster since bnrgaloismatrix(B,G) is
> computed only once.
>
> Cheers,
> Bill.

```