zton2021の曖昧日記

日々思うことを書きます。数学は学習メモとして、勉強したこと、思うことを一生懸命書いていますが間違い勘違いも含むかもしれません。間違いに気がついた時点で、加筆修正するつもりです。(注)数式はMathMLで表記し、Safariで表示を確認しています。Safari以外のブラウザでは表示がおかしいことがあるようです。

ガロア理論曖昧メモ15(ガロア群を求める3)

SageMathのプログラムを作り、[補題3][補題4]をそのまま実行させようとした。

3次多項式の場合は、それなりにうまく動き、ガロア群も計算できているようであるが、4次多項式の場合は計算が終了しない。

例えば、f(X)= X^4 - 8*X + 12  のとき、

(1)f(X)の微分f'(X)=   4*X^3 - 8   とf(X)について最大公約数が1であるので、f(X)は重解を持たない(全ての根は異なる)

(2)f(X)の根を a1,a2,a3,a4とする。実際には解いていないので不定元を宣言するだけである。

  f(X)の係数から根の基本対称式の値は、s1=0  ,s2=0 ,s3=8,s4=12

 

(3)[補題3]に対応した処理;

 Q(a1,a2,a3,a4)=Q(b1) となるb1を決める。

 まず、Q∋k1,k2,k3,k4 (全て異なる定数)の初期値を1,2,3,4と定めて、b1=1*a1+2*a2+3*a3+4*a4とおく。

  a1,a2,a3,a4の全ての置換T1,T2,...,T24(ここで24=4!, T1は恒等置換)について

 bi=1*Ti(a1)+2*Ti(a2)+3*Ti(a3)+4*Ti(a4)に対してb1,b2,...,b24が全て異なるかどうかチェックする;

    (3-1) g(X)=(X-b1)*(X-b2)*...*(X-b24) を展開しXの多項式として整理する。

                <==各bkはa1,a2,a3,a4の一次結合であり、g(X)を展開して整理するだけであるが、実行すると単項式の数は20475 個 もあり、

      g(X)=X^24 - 60*X^23*a0 - 60*X^23*a1 - 60*X^23*a2 - 60*X^23*a3 +...

                となる(らしい)。Xの次数24はあっているみたいだけど、、、

    (3-2)g(X)のX^kの係数はa1,a2,a3,a4の対称式である。各係数を根の基本対称式の値

    s1=0  ,s2=0 ,s3=8,s4=12を用いて定数化すると、

               g(X)=X^24 - 960*X^20 + 21760*X^18 + 1082880*X^16 + ....

                  もはや、X^24の係数が1であっていること以外、なんだかよくわからない。

 (3-3)g(X)の重根を持つか否か(b1,b2,...,b24が全て異なるかどうか)を判定、

                <===g(x)の微分 

        g'(X)=24*X^23 - 19200*X^19 + 391680*X^17 + 17326080*X^15 + ...

        とg(X)は互いに素であることが、最大公約数が1であることからわかり、g(X)は重根を持たないことがわかる。

        したがって、仮に決めたb1,b2,....,b24は全て異なっている(らしい)。

 

(4)[補題4]に対応した処理;

 (4-1) (4)のg(X)を因数分解すると、(SageMathが因数分解してくれて)

   (X^12 - 480*X^8 - 23680*X^6 + ...)  * (X^12 - 480*X^8 + 45440*X^6 +...)

   その一つの既約因子をh(X)=X^12 - 480*X^8 - 23680*X^6 +...とする。

   その次数は12である。

 (4-2) 必要で有れば、番号を付け替えて、h(X)=(X-b1)*(X-b2)*...*(X-b12)となるようにする。

   h(X)がb1の最小多項式である。

   <===どうせ、a1,a2,a3,a4は不定元なので、必要があればa1,a2,a3,a4の名前の方を付け替えてやれば良いので、

     b1,b2,...の名前は付け替える必要はない。(もっとも、どうやって付け替えて良いのかわからない)

 (4-3)ラグランジュの補間式を立てるため、まずは

   G(X)=(X-b2)*(X-b3)*...(X-b24)/(b1-b2)*(b1-b3)*...*(b1-b24)

           を求めようとするが、、、

    <==プログラムが悪いのか、メモリが足りないのか、計算量が多すぎるのか、処理がいつまで経っても終了しない。    

      (Macで実行)

したがって、これ以降の処理はできない。部分的にa1,a2,a3,a4の対称式を切り出して、基本対称式の値s1=0  ,s2=0 ,s3=8,s4=12を使い、定数化することにより、計算量を減らせないか、と考えたが良い方法が思い浮かばない。

各a1,a2,...をQ(a1,a2,...)=Q(b1)なるb1で実際に表現することは、ラグランジュの補間式を使う以外の方法で行うべきなのか、、、?

避けていた(理解できないでいた)[補題3:ガロア拡大が単純拡大である]の別証明で、現実的な計算量となるプログラム化が可能なものを探す方向で検討する。

 

ガロア理論曖昧メモ16(ガロア群を求める2:対称式を基本対称式で表す)

何かひとつでも、有理数根を持たない整数係数5次多項式ガロア群を求めて見たい。

Python とSageMathの力を借りて、力づくで、、、、ただし、具体的に求まったとしても、あっているか否かは判断できそうもないが、、、そもそも、途中で挫折するかもしれない。

まずは、PythonとSageMathについての参考文献を頼りに、見よう見真似でプログラムを試作してみることにする。

まずは、3次多項式について、根の対称式を基本対称式の式で表すプログラムを試作した。(注)

Python、SageMathプログラムの作法や、数式処理プログラムにも不慣れで、とりあえず動くものを作るのにも、とても時間がかかった。

プログラムの中で、変換後、逆変換で元に戻ることのチェックを行っているので大丈夫とは思うが、、、、

 

入力:a1,a2,a3の式

出力:入力を変換したS1,S2,S3の式

ここで、S1,S2,S3はa1,a2,a3の基本対称式(a1+a2+a3,a1*a2+a2*a3+a3*a1,a1*a2*a3)を表す式である。

 

(1) 作成したプログラムに以下のように多項式f0を入力する。

f0=(a1+a2)^2+(a2+a3)^2+a3^2+2*a3*a1+a1^2+10  #<------ここに基本対称式の式に表したい式を設定

P = SymmetricPoly3(f0)                        # クラスのインスタンスを生成

print("elementary symmetric poly(S1,S2,S3) :\n",P.getElementarySymPoly())                                              

print("Input--\n Original :",P.getOriginalPoly(),"\n 1st poly :",P.getPoly(),"\n 1st normpoly:",P.getNormPoly())

 

==出力(1)====

elementary symmetric poly(S1,S2,S3) :
(a1 + a2 + a3, a1*a2 + a1*a3 + a2*a3, a1*a2*a3)
Input--
Original : 2*a1^2 + 2*a1*a2 + 2*a1*a3 + 2*a2^2 + 2*a2*a3 + 2*a3^2 + 10
1st poly : 2*a1^2 + 2*a1*a2 + 2*a1*a3 + 2*a2^2 + 2*a2*a3 + 2*a3^2 + 10
1st normpoly: 0

 

(2)次にf0が対称式か否かを調べ、対称式であれば、それを基本対称式の式で表す処理を実行


P.normalize()                                   # f0を基本対称式の式で表す 

print("Output--\n Original :",P.getOriginalPoly(),"\n last poly:",P.getPoly(),"\n Last normpoly:",P.getNormPoly())

==出力(2)====

normalized successfully
Output--
Original : 2*a1^2 + 2*a1*a2 + 2*a1*a3 + 2*a2^2 + 2*a2*a3 + 2*a3^2 + 10
last poly: 0
Last normpoly: 2*S1^2 - 2*S2 + 10

 

つまり、f0=(a1+a2)^2+(a2+a3)^2+a3^2+2*a3*a1+a1^2+10 を基本対称式S1、S2、S3の式で表すと、

 2*S1^2 - 2*S2 + 10 になるというのである。

一応動いているみたいなので、

(3)最後に、S1、S2、S3に具体的な値を代入

u1=1

u2=2

u3=3

f2=P.setValueToNormpolyAndGet(u1,u2,u3)        #基本対称式 S1,S2,S3に定数u1,u2,u3を設定した時の値

print("case S1=",u1,"S2=",u2,"S3=",u3,"\n","value of normpoly = ",f2)

==出力(3)=====

case S1= 1 S2= 2 S3= 3
value of normpoly = 8

これは2*S1^2 - 2*S2 + 10に S1=1,S2=2,S3=3を代入したら8になった、と言っているだけですが。

今度は、

(4)(1)で対称式になりそうもない

 f0=(a1+a2)^2+(a2+a3)^2+a3+10

を設定してみると

===出力(2)====

unnormalized(it's maybe unsymmetric polynomial.)
Output--
Original : a1^2 + 2*a1*a2 + 2*a2^2 + 2*a2*a3 + a3^2 + a3 + 10
last poly: 0
Last normpoly: Err

 

これも一応動いている様子。

出力を見てみると、入力した多項式は自動的に展開して整理されている様子。

多分バグも多く含むかも知れないが、とりあえずこれをアップデートして、5次多項式ガロア群を求めてみるつもりである。

 

 

(注ーー試作ソースコード例ーーー)

#有理数体上の不定元の宣言

#X 多項式の元

#a1,a2,a3 は入力3次多項式の根に対応する不定元(最後まで不定元のまま)

#S1,S2,S3はa1,a2,a3の基本対称式に対応する不定元(場合により多項式の係数を代入)

#Errエラー処理用

#次数辞書順序(deglex)を指定する。全ての不定元は同一多項式環上に定義しておく。      

R.<X,a1,a2,a3,S1,S2,S3,Err> = PolynomialRing(QQ, 8, order='deglex')

 

class SymmetricPoly3:

 

   def __init__(self,OriginalPoly):                  # コンストラク

       self.OriginalPoly=OriginalPoly   #入力多項式(a1,a2,a3の式)

       self.poly = OriginalPoly         #Work多項式(a1,a2,a3の式)

       self.normpoly=0                  #Work多項式(S1,S2,S3の式)

       self.Esp1=a1+a2+a3               #基本対称式

       self.Esp2=a1*a2+a2*a3+a3*a1      #基本対称式

       self.Esp3=a1*a2*a3               #基本対称式

 


   def getElementarySymPoly(self):           #使用する基本対称式のget

       return self.Esp1,self.Esp2,self.Esp3

   def getOriginalPoly(self):           #入力多項式のget

       return self.OriginalPoly

   def getPoly(self):                   #(呼び出し時点での)Work多項式のget

       return self.poly

   def getNormPoly(self):               #(呼び出し時点での)Work基本対称式の式のget

       return self.normpoly

 


   def setPoly(self, poly,normpoly):    #入力多項式、出力多項式の設定

       self.poly = poly                 #展開(expand)と単純化(simplify)は自動でしてくれる様子(?)

       self.normpoly = normpoly

 


   def setValueToNormpolyAndGet(self, V1,V2,V3):   #S1,S2,S3への具体的な値V1,V2,V3の設定し、結果を返す。

       NormF = self.getNormPoly()                       #V1,V2,V3は同一多項式環内の多項式 あるいは 定数でも良い

       #print(NormF)

       #print(' S1 = ' ,V1,' S2 = ' ,V2, ' S3 = ' ,V3)

       NormF1 = NormF.subs(S1=V1,S2=V2,S3=V3)

       #print(NormF1)

       return NormF1

 


   def normalize(self):                #a1,a2,a3の多項式中の単項式を順番にs1,s2,s3の単項式で置き換えていく

       F=self.getPoly()

       NormF = self.getNormPoly()

 


       if F in QQ:                             #定数

          self.setPoly(0,NormF+F)

        print ("nothing to do (it's constant)")

          return    

 


       n = F.total_degree()            #a1,a2,a3の多項式としての次元

       c=F.lc()                        #先頭単項式の係数

       F1=F.lm()                       #先頭単項式(係数1)

       #print(c,'---',F1)

       a1d=F1.degree(a1)

       a2d=F1.degree(a2)

       a3d=F1.degree(a3)

       #print(a1d,a2d,a3d)

       t3d=a3d

       t2d=max(a2d-t3d,0)

       t1d=max(a1d-t2d-t3d,0)

       #print(t1d,t2d,t3d)

       F=F-c*(self.Esp1^t1d)*(self.Esp2^t2d)*(self.Esp3^t3d)  

       NormF = NormF + c*(S1^t1d)*(S2^t2d)*(S3^t3d)

       n1 =F.total_degree()         #全次元

       #print("New F***",F)

       #print("New NormF***",NormF)

       #print("n1***",n1)

       if n1 > n:                   #a1,a2,a3の式として次元が増加するなら対称式でないと判断

           print ("unnormalized(it's maybe unsymmetric polynomial.)")

           F = 0

           NormF = Err

           self.setPoly(F,NormF)

       elif n1 > 0 :

           self.setPoly(F,NormF)

           #print("next****",self.getPoly(),"&&&",self.getNormPoly())

           self.normalize()

       elif  (n1 ==0) or (F in QQ):                 #Fは定数

           NormF = NormF + F

           F=0

           self.setPoly(F,NormF)

           f0=self.OriginalPoly

           f1=self.setValueToNormpolyAndGet(self.Esp1,self.Esp2,self.Esp3)

 


           if f0==f1:

               print("normalized successfully")

           else:

               print("unnormalized(it's maybe unsymmetric polynomial.)") 

       return

ガロア理論曖昧メモ15(ガロア群を求める1)

整数係数多項式f(X)が与えられた時、その有理数体Q上のガロア群を求めることを考える。

f(X)の形にもよるが、手計算ではとてもではないができそうもないので、数式処理ソフトSegaMathを使う。

iPad上でも動くようであるので、SageMathの使い方を勉強しながら使うことにする。

 

ガロア群を求める手順を確認することが目的であり、SegaMathはあくまで手計算の代わりに利用する。何もかも自動で処理するものを作ろうとは思っていない。まずはn=5次元の多項式について実装し、マイナーチェンジでn=6,7あたりにも対応できるようにしたい。

 

ガロア群を求める手順は[補題3][補題4]を実装するものであり、参考文献[5]に沿った方法を参考に使わせていただく。

それは、概ね以下の通りである。

なお、ソフトウエア処理を想定し、説明文でもギリシア文字や下付き数字は使わないことにする。また積は*、冪は^を使って表す。

 

(1)f(X)が処理対象かどうかチェックする。

 ・Qの中で解けないこと

 ・重根を持たないこと

(2)f(X)の根を a1,a2,...,anとする。実際に解くわけでなく、単に不定元として宣言するだけである。

  f(X)の係数から根の基本対称式 s1,s2,...,snの値(定数)をセットしておく。

(3)[補題3]に対応した処理;

 Q(a1,a2,...,an)=Q(b1) となるb1を以下のようにして決める。

 Q∋k1,k2,...,kn (全て異なる定数)の初期値を定めて、b1=k1*a1+k2*a2+...+kn*anとおく。

  a1,a2,...,anの全ての置換T1,T2,...,Tm (ここで、m=n!, T1は恒等置換)について

  bi=k1*Ti(a1)+k2*Ti(a2)+...+kn*Ti(an)に対してb1,b2,...,bmが全て異なるようにする。

 この処理は、以下の手順で行う。

    (3-1) g(X)=(X-b1)*(X-b2)*...*(X-bm) を展開しXのQ係数多項式として整理する。途中(2)の定数s1,s2,...,snを使う。

 (3-2)g(X)の重根を持つか否か(b1,b2,...,bmが全て異なるかどうか)を判定、

             重根を持つ場合はk1,k2,...,knを選び直し、重根を持たなくなるまで(3-1)(3-2)を繰り返す。

 

(4)[補題4]に対応した処理;

 (4-1) (3)のg(X)を因数分解し、その既約因子の一つをh(X)とおく。

 (4-2) 必要で有れば、番号を付け替えて、b1,b2,...bpがh(X)の全ての根となるようにする。(p≦m)

   h(X)がb1の最小多項式である。

 (4-3)番号を付け替えた後のb1,b2,...,bmに対し

   G(X)=(X-b2)*(X-b3)*...(X-bm) / (b1-b2)*(b1-b3)*...*(b1-bm)とおく。

   G(b1)=1,i ≠1のとき、G(bi)=0である。

  各aiに対して次のQ係数多項式gi(X)を求める。途中(2)の定数s1,s2,...,snを使う。

      gi(X)=ΣT(ai*G(X))   、和は a1,a2,...,anの置換T=T1,T2,...,Tm でとる。

           gi(b1)はaiをb1のQ係数多項式で表現したものである。すなわち、ai=gi(b1)  b1のQ係数多項式

    (4-4) g1(X), g2(X),...,gn(X) について、

   X=b1 の時(つまり、a1=g1(b1),a2=g2(b1),...,an=gn(b1))を基準として、X=b1,b2,b3,...,bpと変えた時どういう置換が発生するかを記録する。

  それが、f(X)のQ上のガロア群である。
  この置換を記録する際、特に注意することは、以下の2点

  (i)Xはb1,b2,b3,...,bp 以外のg(X)の根に対して行ってはならない。

  (ii)b1 を根とする最小多項式h(X)の根(つまりb1 の共役元)全てに対して行わねばならない。

  [補題4]の証明中、b1のh(X)の他の根への置換によって定まるQ(b1)のQ自己同型写像

  およびそれにより間接的に生じるa1,a2,...,anの置換が定めるQ(a1,...,an)=Q(b1)のQ自己同型写像がwell defined である

  これらの拠り所はh(X)の既約性であったことに注意すると、h(X)をきちんと定めることが大切である。

  g(X)の既約因子のどれをh(X)として選んでも得られるガロア群は等しいことも確認しておきたい。

 

 ある程度は汎用化しつつも、基本的には、一つ一つ地道にSageMathで実装し、計算していく予定であるが、 、、、

 いずれにしても、上記は、今までの学習メモの確認作業そのものである。

(続く)        

 

 

   

 

  

 

フリーモーション刺繍4

気分転換に時々ミシンを踏んで刺繍の練習をしているが、中々うまくいかない。

昨日、ぽきんと針が折れた。針が折れると心も折れる。折れた断片を繋げて、元の長さになることを確認してからテープで止めて廃棄用の入れ物に一次保管する。

折れた原因を考えていたが、ひょっとしたら、フリーモーション用の押さえの留めネジが緩んで押さえが動き、針に当たったのではないかと推測。

フリーモーション用の押さえは、針に連動して上下するところに、押さえに連結した棒をかけて、バネの力で押さえを上下させる仕組み。(言葉で説明するのは難しい)

針が降りた時は押さえが布を押さえ、針が上がった時には押さえも上がって、布を動かせるようになっている。

この仕組みが無いと、針が刺さった状態で布を動かしてしまうかも知れず怖いのである。

ただ、元々想定していないところに、後付けで追加した仕組みなので、ガタガタと押さえが振動し、留めネジが緩んでくるのであろう。

似たような仕組みで、直線縫ミシンに、針の動きに連動したギザギザの押さえで布を掴んでを布を左右に無理やり揺らしてジグザグ縫いやボタンホール縫い機能を追加するものもあり、面白いので私も購入して持っている。

今は昔。足踏みあるいは手回しミシンの時代に考案されたものである。その後、電動(つまりモーター付き)を経て、ミシンといえば、コンピュータミシンである。刺繍も専用のコンピュータ制御ミシンで家庭用のものもあるらしいが、値段は高く、また、普通の直線縫いには不向きらしい。

 

カタカタと足踏みしながら、ゆっくりと縫っていくのが怖くなくていい。時々押さえの緩みを確認しながら刺繍の練習をしようと思う。

いろいろ面倒であるが、足踏みミシンは面白い。

ガロア理論曖昧メモ14(不定元を係数とする多項式の根)

前回行ったことは以下のAである;

***A****

はじめに体KとK上代数的独立なn個の  α 1 , α 2 , , α n を考え、その基本対称式  s 1 , s 2 , , s n を作る。

次に、M=K( s 1 , s 2 , , s n )、L=M( α 1 , α 2 , , α n ) として s 1 , s 2 , , s n を係数に持ち、その根が α 1 , α 2 , , α n  であるn次多項式f(X)を作る。

  f(X)=   X n - s 1 X n - 1 + s 2 X n - 2 + + - 1 n s n

             = X - α 1 X - α 2 X - α n

(この時、LはMのガロア拡大体である。)

ガロア群Gal(L/M)=Gal(f)はn次対称群Snと同型であることを確認して

n≧5のときn次対称群Snは可解でないから、Gal(L/M)は可解でない、と結論付ける。

そして、ガロアの定理から、n≧5のとき、上記のM係数多項式f(X)は、係数体Mの元に対する冪根と四則演算からは根を構成できないということがわかる。(そのような例を構成できた)

*********

Aの議論の中で、
α 1 , α 2 , , α n がK上代数的独立であることから、f(X)の根  α 1 , α 2 , , α n の置換がLのM自己同型写像をwell definedに定めること

を確認した。

Aに関連して、

***B*****

s 1 , s 2 , , s n  はK上代数的独立になるのか否か

**********

について、少し考えてみたが、よくわからない。

さらに、

****C****

はじめに体KとK上代数的独立なn個の  c 1 , c 2 , , c n を考え、K( c 1 , c 2 , , c n )係数のn次多項式

   f(X)= X n + c 1 X n - 1 + c 2 X n - 2 + + c n

の最小分解体を考えるとき、f(X)の全ての根 が再び、K上代数的独立になるのか否か

*********

についても、よくわからない。(文献の説明を見ても私には理解できていない)

BあるいはCが肯定的であることがわかれば、Aより、一般にn≧5のとき、

 K上の不定元(代数的独立と同義とする)を係数とするn次多項式は、その係数体の元の冪根と四則演算から構成される根(公式)を持たない

ということがわかる(否定的な例をAにより作り出せる)のであるが、、、、

 

しかし、n≧5 のときの不定元を係数とするn次多項式の根の公式の存在については、次のように考えることができるのではないか。

 

****D****

もし、K上の不定元係数を持つn次多項式の根の公式が存在するのであれば、その公式をAのf(X)に適用でき、そのときは、Aの結論に矛盾する。

したがって、n≧5 のときの不定元を係数とするn次多項式の根の公式は存在しない、という結論を得られないか。

**********

 

本メモではB,C,Dついては、これ以上は追究しないことにする。

具体的に与えられた整数係数多項式ガロア群を求める方法について考察することに重きを置きたいからである。

 

 

 

 

ガロア理論曖昧メモ13(不定元とガロア群その2)

驚くことに、ガロアの理論では、n≧5 のとき、ガロア群が可解にならないn次多項式を具体的に構成して見せる。そして5次以上の高次方程式に解の公式があるのか無いのか、という問題を一気に否定的に解決する;

 

体K上のn変数有理関数体L=K( α 1 , α 2 , , α n )を考える。  α 1 , α 2 , , α n はK上代数的独立であるとする。

  α 1 , α 2 , , α n の基本対称式を考え、

s 1 = α 1 + α 2 + + α n s 2 = α 1 α 2 + α 1 α 3 + + α n - 1 α n , … , s n = α 1 α 2 α n   

とおく。

体Kに  s 1 , s 2 , , s n を追加した拡大体M=K( s 1 , s 2 , , s n )を考える。

L⊃Mであるから、改めてL=M( s 1 , s 2 , , s n )とおく。

M係数多項式 f(X)=  X n - s 1 X n - 1 + s X
n - 2
+ + - 1 n s n
について、

Lの中では、f(X)=    X - α 1 X - α 2 X - α n

因数分解できるから、 α 1 , α 2 , , α n はf(X)の相異なる根(注1)であり、LはM上のガロア拡大体となる。

この時、ガロア群Gal(L/M)はn次対称群 Snと同型となる。

[証明]

ΠをLのM自己同型写像とする。f(X)はM係数多項式だから、その根αについて f(α)=0より、Π(f(α))=f(Π(α))=0、

したがってΠ(α)もf(X)の根。Πは単射だから結局Πはf(X)の全ての根  α 1 , α 2 , , α n の置換πを自然に定める。

逆に α 1 , α 2 , , α n  の置換πはLのM自己同型写像Πを自然に定めることを示す。

L=M( α 1 , α 2 , , α n )の元zはMの元と  α 1 , α 2 , , α n の式で表現できる。

さらに、M=K( s 1 , s 2 , , s n )の元はKの元と s 1 , s 2 , , s n の式で表現され、 s 1 , s 2 , , s n  のそれぞれは α 1 , α 2 , , α n の基本対称式だから,

結局zはKの元と α 1 , α 2 , , α n の式として表現できる。

その一つの表現中の α 1 , α 2 , , α n をπで機械的に置換したものをΠ(z)と書くと、

Πはwell definedである。

その理由については参照した文献からはまだ読み取れていない。自明なことなのかどうかもよくわからない。

おそらくこうであろうと自分なりに推測する理由のメモを以下に示す。

 

*************

K係数多項式A( X 1 , X 2 , , X n ),B( X 1 , X 2 , , X n ),A'( X 1 , X 2 , , X n ),

B'( X 1 , X 2 , , X n )により

 

 z= B α 1 , α 2 , , α n A α 1 , α 2 , , α n     =  B ' α 1 , α 2 , , α n A ' α 1 , α 2 , . . . , α n

 

という異なる表現があったとする。

ただし、A( α 1 , α 2 , , α n )≠0、A'( α 1 , α 2 , , α n )≠0とする。〜(1)

 φ( X 1 , X 2 , , X n ) = A( X 1 , X 2 , , X n )B'( X 1 , X 2 , , X n )

                                                  ー A'( X 1 , X 2 , , X n )B( X 1 , X 2 , , X n )  〜(2)

とおくと、φ( α 1 , α 2 , , α n )=0  〜(3)である。

(2)の左辺を分配法則、結合法則などの基本法則を使って(注2)

 φ( X 1 , X 2 , , X n ) =  µ k µ X µ

と、変形する。〜(4)

ただし、μはn個の0以上の整数の組 µ 1 , µ 2 , µ n であり、 k µ はKの元、  X µ は全ての  X i µ i の積である。

α 1 , α 2 , , α n はK上代数的独立であるから、(3)より全ての係数  k µ は0である。

πによる α 1 , α 2 , , α n の置換の結果 π α 1 , π α 2 , , π α n は、 α 1 , α 2 , , α n の添字の番号を付け替えたものであり、

それに対応して  X 1 , X 2 , , X n の添字を付け替えたものを  π X 1 , π X 2 , , π X n とかくとき、

  ϕ π X 1 , π X 2 , , π X n  

        = A( π X 1 , π X 2 , , π X n )B'( π X 1 , π X 2 , , π X n )

                ーA'( π X 1 , π X 2 , , π X n )B( π X 1 , π X 2 , , π X n ) 〜(5)

この右辺の式に対し、変数の名称が変わっただけと考えて、(4)と全く同一の式変形を行なうと、最終的に得られる式の係数の集合は{ k µ }と同一である。

したがって、全ての k µ  は0であったから、(5)は恒等的に0である。

したがって、 ϕ π α 1 , π α 2 , , π α n  =0

全く同様の議論により、 α 1 , α 2 , , α n  がK上代数的独立であるということと π α 1 , π α 2 , , π α n  がK上代数的独立であるということは同義であることに注意すると、(1)より、

  A π α 1 , π α 2 , . . , π α n 0 、  A ' π α 1 , π α 2 , . . , π α n 0

であることがわかる。(0になるとすると、(1)に矛盾する)

したがって、

            B π α 1 , π α 2 , , π α n A π α 1 , π α 2 , . . , π α n B ' π α 1 , π α 2 , , π α n A ' π α 1 , π α 2 , . . , π α n

    したがって、Πはwell defined である、、、。

**************

Πはその作り方から、LのK同型写像であり、また、 α 1 , α 2 , , α n の基本対称式である  s 1 , s 2 , , s n  のそれぞれは  α 1 , α 2 , , α n の置換で不変であるから、結局ΠはLのM自己同型写像となる。

したがて、このf(X)に対してGal(L/M)とn次対称群Snは同型となる。

[証明終]

いくつか文献を見ると、LをM上のベクトル空間と見た時の次元(基底の個数)とGal(L/M)とSnの要素の個数について評価し、Gal(L/M)とSnの要素の個数が等しいことを確認することにより、これらが群として同型になることを示しているようである。

私が行なった上のような証明では気づかない間違いや考え漏れがあるのかどうかは、よくわからない。

 

何はともあれ、以上のように構成したM上のガロア拡大体LとM係数多項式f(X)について、 ガロア群Gal(L/M)はn次対称群Snと同型であり、n≧5のときSnは可解でないことが分かっているので、n≧5のときGal(L/M)は可解ではない。したがって、その根がMの元の冪根と四則演算の組み合わせで表現できないM係数多項式f(X)を具体的に構成したということになる。

 

続く。

 

(注1)

もし、i≠j で α i = α j とすると、 ψ X 1 , X 2 , , X n = X i - X j  に対して、 ψ α 1 , α 2 , , α n = 0 となり、

α 1 , α 2 , , α n が代数的従属になってしまうからである。

 

(注2)

  K α 1 , α 2 , α n の中では、各 α i  がf(X)の根であること、つまり f α i = 0 であることを使った式変形も有り得るが、 K X 1 , X 2 , , X n  の中ではそのようなものはなく、展開して、同類項で整理するというだけの基本的変形のみが行える。そしてそのような基本的な変形の過程は可逆である。