Computation of the Setwise Stabiliser of a triangular ideal.




1   Introduction


Documented function and procedures above are the Magma implementation of the algorithm presented in my thesis (Section 3.3 and 3.4, Chapter 4). The function Setwise_Stabiliser computes the Setwise Stabiliser of a triangular ideal Ik[x1,…,xn] . For the natural group action of Sn (the symmetric group of degree n) on k[x1,… ,xn]

Sn X  k[x1,…,xn] —→  k[x1,…,xn]       
(σ,P(x1,…,xn)) ⊢→ P(xσ(1),…,xσ(n)),

the Setwise Stabiliser of I is defined by :

Dec(I) = { σ ∈ Sn   ∣   σ.f ∈ I  }. 

A triangular generating set {f1,…,fn} such that fi depends only on the variables x1,…,xi is supposed to be known. As this algorithm uses ideal membership tests, this triangular set of generators is supposed to be a lexicographical Groebner basis.
The algorithm implemented here improves the algorithm presented in the paper Computation of the Setwise Stabiliser of a triangular ideal in terms of complexity and efficiency.
Author : S. ORANGE (LIP6 - Paris 6 University / LMAH - University of Le Havre - France).

Source of this file : Documented Magma Code file.

2   Implementations


2.1   Find_One_Permutation


This procedure search a permutation σ ∈ dec(I) such that l is the suffix of σ. If such a permutation σ is found, any other computation are done. For the initial call of procedure Find_One_Permutation, σ is initialised to the permutation Id(Sn). A modular ideal membership preliminary test is performed in order to improve efficiency.


procedure Find_One_Permutation(r,G,l,~sigma ,~S,~SP,~n,~sn); if r eq 0 then sigma:= sn ! l; else Gprime:=Stabilizer(G,l[1]); elt:=({1..n} diff Set(l)) meet {Max(o): o in Orbits(Gprime)}; while ((not(IsEmpty(elt))) and (sigma eq Id(sn)) ) do a := Max(elt); elt := elt diff {a}; ll := [a] cat l; if NormalForm((SP[r])^(sn!(SetToSequence({1..n} diff Set(ll)) cat ll)) ,SP) eq 0 then if NormalForm((S[r])^(sn! (SetToSequence({1..n} diff Set(ll)) cat ll)) ,S) eq 0 then Find_One_Permutation(r-1,Gprime,ll ,~sigma ,~S,~SP,~n,~sn); end if; end if; end while; end if; end procedure;


2.2   Next_Setwise_Stabiliser


This procedure computes a strong generating set of the pointwise stabiliser of the set {k,…,n} in dec(I) from a strong generating set of the pointwise stabiliser of the set {k−1,…,n}. As the precedent procedure, a modular ideal membership pretest is performed.


procedure Next_Setwise_Stabiliser(index,~G,~S,~SP,~n,~sn,~orbites); elt:={1..(index-1)} meet {Max(o): o in orbites}; while (not(IsEmpty(elt))) do ak := Max(elt); elt := elt diff {ak}; ll:= SetToSequence({1..index} diff {ak}) cat [ak] cat [(index+1)..n] ; if NormalForm((SP[index])^(sn! ll) ,SP) eq 0 then if NormalForm((S[index])^(sn! ll) ,S) eq 0 then sigma:= Id(sn); Find_One_Permutation (index-1,G,[ak] cat [(index+1)..n],~sigma ,~S,~SP,~n,~sn); if not (sigma eq Id(sn)) then G:= PermutationGroup<n |GeneratorsSequence(G) cat [sn ! sigma]>; orbites:=NouvellesOrbites(orbites,sigma); elt:=elt meet {Max(o): o in orbites}; end if; end if; end if; end while; end procedure;


2.3   function Setwise_Stabiliser


This function computes a strong generating set of the Setwise Stabiliser of the ideal I=<S> where S is a triangular Groebner basis as defined in the introduction.


function Setwise_Stabiliser(S); n:=Rank(Parent (S[1])); sn:=Sym(n); G:=PermutationGroup<n|1>; orbites := {{i}: i in {1..n}} ; // A prime p for a modular ideal membership pretest is search. p:=2; rep:=false; while rep eq false do polmod:=PolynomialRing(FiniteField(p),n); k:=1; rep:=true; while (rep eq true) and (k le n) do rep:=IsCoercible(polmod,S[k]); k:=k+1; end while; if rep eq false then p:=NextPrime(p); end if; end while; polmod:=PolynomialRing(FiniteField(p),n); SP := [(polmod ! S[i]) : i in [1..n]]; // Construction of the decomposittion group for k:=2 to n do Next_Setwise_Stabiliser(k,~G,~S,~SP,~n,~sn,~orbites); end for; return G; end function ;


3   Example of application : computation of the Galois group from a relations ideal


The ideal I of Q[x1,…,xn] generated by the triangular Groebner basis (for the lexicographical order induced by x8<…<x1)

S = { x1x4x6x87 + x4x6x83,
x2 + x4x6x87x4x6x83,
x3 + x4,
x42x6x85 + x6x8,
x5 + x6,
x62 + x82,
x7 + x8,
x88x84 − 1}
is an relations ideal of f(x) = x88x84 − 1 ∈ Q[x] .

The symetric representation of the Galois group of f corresponding to this relations ideal is the Setwise Stabiliser of I. The Magma function Setwise_Stabiliser return the this symetric representation :

> PR8<x1,x2,x3,x4,x5,x6,x7,x8>:= PolynomialRing(RationalField(), 8);
>
> S:=[
> x1 + x2 + x3 + x4,
> x2 + x4*x6*x8^7 - x4*x6*x8^3,
> x3 + x4,
> x4^2 - x6*x8^5 + x6*x8,
> x5 + x6,
> x6^2 + x8^2,
> x7 + x8,
> x8^8 - x8^4 - 1
> ];
>
> Setwise_Stabiliser(I);
Permutation group G acting on a set of cardinality 8
Id(G)
(1, 2)(3, 4)
(1, 3)(2, 4)(5, 6)
(1, 3)(2, 4)(7, 8)
(1, 2)(5, 7)(6, 8)
(1, 8, 4, 6, 2, 7, 3, 5)


This document was translated from a Documented Magma Code to LATEX by DMC2TEX beta0.1 version.


This document was translated from LATEX by HEVEA.