巡回群が生成できるようになった

巡回群の生成に移ることにしよう.巡回置換の元は(a1, a2, …, am)の形の置換であると考えられる.従って,元の個数はmで置換リストの長さと同じはずだ.事例を見てみよう.⇒上記の定義で問題ないと思う.⇒実装した.一応動いているが,群の検査の表示が少しおかしい.すべて合成群になっている.また,C4は巡回群ではないとされる.群の属性ではデフォルトが合成群になっているので,合成群と出てくるのはとりあえず,やむを得ないかもしれない.巡回群であっても必ずしも素群であるとは限らないはずだ.

C4の群属性がおかしい.非巡回群となっている.⇒ecountがインクリメントされていない!⇒修正した.

巡回群の生成はおおむねうまくいったようだ.少なくとも位数が素数であれば,すべて巡回群であり,かつ素群であるとしてよいのではないか?⇒これで,少なくともC2, C3, C5に関しては「素群」表示が出せるようになった.今のところ,部分群分解をしないと素群であるか否かの判定はできないようになっているが,非自明な部分群を持たないことが判明した時点で属性を「素群」とすべきだろう.ないし,極小部分群検定でそれをやってもよい.

Q8<i>が素群になっているが,分解できる.これはまずい.⇒現行では極小部分群で抽出された部分群はすべて素群であると推量しているが,どうも間違っているようだ.Q8<i>はQ8の部分群ではあるが,極小ではない.これはかなり困ったことだ.追加登録の論理を見直さなくてはならない.⇒いや,論理を見直すのではなく,用語の定義を見直すことにする.素群というのは部分群に対する定義ではなく,群に対する定義であると考える.つまり,分解できない群が素群である.

極小な部分群というのはある群の部分群についての定義であり,「極小な部分群とはあるノードを含みそれ以上ノードを減らすと部分群でなくなるような部分群」とする.同様に,極大な部分群は「あるノードを含まない部分群でそれ以上ノードを追加すると部分群でなくなるような部分群」であるとする.つまり,正規部分群などと同様「部分群としての属性」である.これなら現行論理のままで行ける.ただし,極小と極大という属性を追加しなくてはならない.

正規部分群は共役変換検定というテストで判別できるが,極小・極大はおそらく極小/極大部分群の抽出によってしか検出できないのではないかと思う.これは仕方ないだろう.素群の反対は合成群だが,極小ないし極大と素群は並立するだろうか?素群で極小でないということはあり得ないが,極小で素群でないということはある.また素群で極大ということもあるのではないか?⇒極大部分群検定は極大部分群の抽出に改めた.大分正確になったのではないかと思う.

いよいよ,極大部分群検定だ.

これまで素群と表示していたところを極小部分群に改める必要がある.⇒素群数を極小部分群数に一括変換した.素群数が必要な場合は別途集計する必要がある.

既存の極大部分群検定はリネームして別途立て直す必要がある.多分,極小部分群の抽出の逆操作になると思われる.⇒追加登録は引数で群Gを渡している.登録解除はGの上で操作している.これはまずい.追加登録と登録解除が双対になるように作り変えるべきだ.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA