• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GAP 使いの方、交換子群例の確認計算をお願いしま)

GAP使いの方、交換子群例の確認計算をお願いします

このQ&Aのポイント
  • GAP 使いの方、交換子群例の確認計算をお願いします。
  • PythonSfという数学ソフトで交換子群も実装できますが、CGTのアルゴリズムはありません。しかし、インスタンス生成時には実用的です。
  • 96の位数を持つ群の例を示すURLには、GAPで求めたとする交換子の集合が群になっていないことが示されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • muturajcp
  • ベストアンサー率78% (508/650)
回答No.1

b=(1,17)(2,18)… c=(1,9)(2,10)… d=(1,5,2,6)… e=(1,3,2,4)… のPythonSf入力が誤りです b=(1,17,7,23)… c=(1,9,5,13)… d=(1,5)(2,6)… e=(1,3)(2,4)… に訂正してPythonSfで確認願います。 a=(3,8,6)(4,7,5)(9,27,17)(10,28,18)(11,30,22)(12,29,21)(13,26,23)(14,25,24)(15,31,20)(16,32,19) B=(1,17,7,23)(2,18,8,24)(3,19,5,21)(4,20,6,22)(9,26,15,32)(10,25,16,31)(11,28,13,30)(12,27,14,29) C=(1,9,5,13)(2,10,6,14)(3,11,7,15)(4,12,8,16)(17,25,21,29)(18,26,22,30)(19,27,23,31)(20,28,24,32) D=(1,5)(2,6)(3,7)(4,8)(9,13)(10,14)(11,15)(12,16)(17,21)(18,22)(19,23)(20,24)(25,29)(26,30)(27,31)(28,32) E=(1,3)(2,4)(5,7)(6,8)(9,11)(10,12)(13,15)(14,16)(17,19)(18,20)(21,23)(22,24)(25,27)(26,28)(29,31)(30,32) f=(1,2)(3,4)(5,6)(7,8)(9,10)(11,12)(13,14)(15,16)(17,18)(19,20)(21,22)(23,24)(25,26)(27,28)(29,30)(31,32) , A=(3,7,5)(4,8,6)(9,25,17)(10,26,18)(11,31,21)(12,32,22)(13,27,23)(14,28,24)(15,29,19)(16,30,20) b=(1,17)(2,18)(3,19)(4,20)(5,21)(6,22)(7,23)(8,24)(9,25)(10,26)(11,27)(12,28)(13,29)(14,30)(15,31)(16,32) c=(1,9)(2,10)(3,11)(4,12)(5,13)(6,14)(7,15)(8,16)(17,25)(18,26)(19,27)(20,28)(21,29)(22,30)(23,31)(24,32) d=(1,5,2,6)(3,8,4,7)(9,13,10,14)(11,16,12,15)(17,21,18,22)(19,24,20,23)(25,29,26,30)(27,32,28,31) e=(1,3,2,4)(5,7,6,8) (9,11,10,12)(13,15,14,16)(17,19,18,20)(21,23,22,24)(25,27,26,28)(29,31,30,32) とすると GAPで求めた2つの例 (a,B,C,D,E,f)は位数96の群を生成します。 (A,b,c,d,e,f)は位数96の群を生成します。 PythonSfで確認とされる (a,b,c,d,e,f)が生成する群の位数は96よりもずっと大きくなるので、 (a,b,c,d,e,f)ではなく (a,B,C,D,E,f) または (A,b,c,d,e,f) のどちらか一方で確認願います。

loboskobay
質問者

お礼

muturajcp さん、誤りの指摘 ありがとうございました。また御礼が遅れて申し訳ありませんでした。 おかげで、a,b,c,d,e,f 置換が作る位数 96 の群の交換子の集合が群にならず、それを 群にすると d が新たに含まれることを確認できました。また a,b,c,d,e か形作る、こ の位数 96 の群の構造を調べることもできました。 そのための計算は、以下のワン・ライナーで行えました。ワン・ライナーは、その行だけ で完結しています。何時でも何処でも単独で再実行できるので便利に使えます。。ワ ン・ライナーだといっても GAP より可読性が勝っていると思います。素人実装の群計算 モジュールでも GAP を補完する 働きをさせられると言えそうです。 ● {a,b,c,d,e,f} より生成される群の交換子積の集合は群ではない。交換子積の集合か ら群を生成した段階で d が含まれる。 ○ S96, S96_cmmtr: a,b,c,d,e,f より生成され る位数96 の群、その交換子積の集合を   ファイル変数 S96 と S96_cmmtr にします =:a,b,c,d,e,f;S96:=group([a,b,c,d,e,f]); S96_cmmtr:=kfs(x y x^-1 y^-1 for x,y in mitr(S96,S96)) ○ a, d が S96_cmmtr に属しません =:a,b,c,d,e,f,S96,S96_cmmtr; {a,d}.issubset(S96_cmmtr) =============================== False =:a,b,c,d,e,f,S96,S96_cmmtr; {b,c,e,f}.issubset(S96_cmmtr) =============================== True ○ d が S96_cmmtr 交換子積の集合にに属しません =:a,b,c,d,e,f,S96,S96_cmmtr; d in (S96_cmmtr) =============================== False ○ d が S96_cmmtr から生成される群に属します =:a,b,c,d,e,f,S96,S96_cmmtr; d in group(S96_cmmtr) =============================== True ○ S96 の位数は 96 == 2^5 * 3^1 == 32*3 =:a,b,c,d,e,f,S96,S96_cmmtr; ts(); ts.factorint(len(S96)) =============================== {2: 5, 3: 1} ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 何が交換子積の集合が群にならない性質をもたらすのか知りたくて、a,b,c,d,e,f 置換 から生成される群の構造について調べてみました。 ● a,b,c,d,e,f の位数は 3,4,4,2,2,2 であり、S96 は下の様に分解されることが分かりました。            group(S96_cmmtr) ≡ {f^0,f} X| {b,c,e} 商群             || S96==group([a,c]) |> group(S96_cmmtr) == group([b,c])    || S96==group([a,c]) ≡ {a^0,a^1,a^3} X| group(S96_cmmtr) これ位の構造を入れ込んでやらないと「交換子積の集合が群にならないという隙間が得 られない」ということのようです。その隙間を作るためには、最低でも位数 96 が必要な のも納得できる気がします。それだけ群構造では、要素が互いに強固に関連しあってい るのだと思います。 この構造を自由群の関係子で表現できれば良いと思うのですが、私の能力ではできません。 ○ a,b,c,d,e,f の位数は 3,4,4,2,2,2 であることの証明 =:a,b,c,d,e,f; [len(kfs([x^0,x^1,x^2,x^3,x^4])) for x in (a,b,c,d,e,f)] =============================== [3, 4, 4, 2, 2, 2] ○ S96 == group([a,c]) の証明 =:a,b,c,d,e,f,S96,S96_cmmtr; S96 == group([a,c]) =============================== True ○ group(S96_cmmtr) == group([b,c]) の証明 =:a,b,c,d,e,f,S96,S96_cmmtr; group(S96_cmmtr) == group([b,c]) =============================== True ○ group(S96_cmmtr) ≡ {f^0,f} X| {b,c,e} 商群の実験的検証 # group(S96_cmmtr) の交換子積 == {f^0,f} =:a,b,c,d,e,f,S96,S96_cmmtr; S=group(S96_cmmtr); kfs([x y x^-1 y^-1 for x,y in mitr(S,S)]) == {f^0,f} =============================== True # {b,c,e} ⊂ group(S96_cmmtr)/{f^0,f} の証明 =:a,b,c,d,e,f,S96,S96_cmmtr; S=group(S96_cmmtr); {b,c,e}.issubset(S/{f^0,f}) =============================== True # {b,c} だけでは商群を作れないが {b,c,e} で商群の generator になる。 gp(); =:a,b,c,d,e,f,S96,S96_cmmtr; S=group(S96_cmmtr); SN=kfs([f^0,f]);Sd=S/SN; ls=[b,c ]; len(kfs([product(v,Sb(0)) SN for v in mitr(*[ls]*6)])) =============================== 4 gp(); =:a,b,c,d,e,f,S96,S96_cmmtr; S=group(S96_cmmtr); SN=kfs([f^0,f]);Sd=S/SN; ls=[b,c ]; len(kfs([product(v,Sb(0)) SN for v in mitr(*[ls]*7)])) =============================== 4 gp(); =:a,b,c,d,e,f,S96,S96_cmmtr; S=group(S96_cmmtr); SN=kfs([f^0,f]);Sd=S/SN; ls=[b,c,e ]; len(kfs([product(v,Sb(0)) SN for v in mitr(*[ls]*5)])) =============================== 15 gp(); =:a,b,c,d,e,f,S96,S96_cmmtr; S=group(S96_cmmtr); SN=kfs([f^0,f]);Sd=S/SN; ls=[b,c,e ]; len(kfs([product(v,Sb(0)) SN for v in mitr(*[ls]*6)])) =============================== 16 gp(); =:a,b,c,d,e,f,S96,S96_cmmtr; S=group(S96_cmmtr); SN=kfs([f^0,f]);Sd=S/SN; ls=[b,c,e ]; len(kfs([product(v,Sb(0)) SN for v in mitr(*[ls]*7)])) =============================== 16

関連するQ&A