(57)【要約】【課題】十分に複雑なカノニカルな生成元からなるブレード群の部分集合を生成すること。【解決手段】平面上にＮ＋１個のパスを生成し、Ｎ個のカノニカルな生成元から重複を許して１個のカノニカルな生成元σｉ±をランダムに選択し、上記パスに対して上記生成元σｉ±を作用させる。その結果得られたパスより冗長性を除去し、表示装置の画面上に線図として表示し、生成元が複雑か又は単純かを判定する。生成元が複雑と判定されるまで、上記の処理を繰返す。【選択図】　図１
2004109437.tif 000002
【特許請求の範囲】
【請求項１】
平面上にＮ＋１個のパスを生成するためのパス生成工程と、Ｎ個のカノニカルな生成元から重複を許して１個のカノニカルな生成元σｉとその符号±をランダムに選択するための選択工程と、
上記選択工程にて選択された上記生成元を順次蓄積してカノニカルな生成元の集合を生成するための集合生成工程と、
上記パスに対して上記生成元σｉ±を作用させるための作用工程と、
上記作用工程にて得られたパスより冗長性を除去するための除去工程と、
上記除去工程にて得られたパスを表示装置の画面上に線図として表示するための表示工程と、
上記表示工程にて表示された線図に基づいて上記カノニカルな生成元の集合が複雑か又は単純かを判定するための判定工程と、
上記判定工程において上記カノニカルな生成元の集合が単純であると判定した場合には上記選択工程に戻ることと、
上記判定工程において上記カノニカルな生成元の集合が複雑であると判定した場合には処理を終了し、上記集合生成工程にて生成されたカノニカルな生成元の集合を取り出すことと、
を含むカノニカルな生成元から生成されたブレード群の元の生成方法。
【請求項２】
上記パス生成工程は、上記パスを、上記パスが通る近傍の点Ｘｉと上記パスが該点Ｘｉの上側を通るか又は下側を通るかを示す符号からなる要素のリストとして表現することと、
上記作用工程は、上記パスに対して上記生成元σｉ±を作用させた結果として得られるパスを上記要素のリストとして表現することを含むことを特徴とする請求項１記載のブレード群の元の生成方法。
【請求項３】
請求項１又は２記載のブレード群の元の生成方法をコンピュータによって実行するためのコンピュータによって読み取り可能なプログラム。
【請求項４】
平面上にＮ＋１個のパスを生成するためのパス生成部と、
Ｎ個のカノニカルな生成元から重複を許して１個のカノニカルな生成元σｉとその符号±をランダムに選択するための選択部と、
上記選択工程にて選択された順番に上記生成元を蓄積してカノニカルな生成元の集合を生成するための集合生成部と、
上記パスに対して上記生成元σｉ±を作用させるための作用部と、
上記作用工程にて得られたパスより冗長性を除去するための除去部と、
上記除去工程にて得られたパスを表示装置の画面上に線図として表示するための表示部と、
上記表示工程にて表示された線図に基づいて上記カノニカルな生成元の集合が複雑か又は単純かを判定するための判定部と、
を有し、上記判定部において上記カノニカルな生成元の集合が単純であると判定した場合には上記選択部の処理を繰返し、
上記判定部において上記カノニカルな生成元の集合が複雑であると判定した場合には上記集合生成部にて生成されたカノニカルな生成元の集合を取り出すように構成されていることを特徴とするカノニカルな生成元から生成されたブレード群の元の生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、共通キー方式において固有キーを生成するための技術に関し、特に、ブレード群においてカノニカルな生成元から生成されたブレード群の元を生成するための方法及び装置に関する。
【０００２】
【従来の技術】
近年、共通キー方式の暗号方法において、ブレード（Ｂｒａｉｄ）群の共役元の計算が困難であることに基づく方式が提唱されている。この方式は、予備通信を行うことなく共通キーを生成する方式において、センタを必要とすることなく、共通キーを生成することができる。
【０００３】
より具体的には、共通キーの生成装置は、それぞれのエンティティが群Ｇを保存するための群Ｇ保存装置と上記群Ｇの自分用の部分集合ＸＡを保存するための部分集合ＸＡ保存装置と上記群Ｇの通信相手用の部分集合ＸＢを保存するための部分集合ＸＢ保存装置と固有キーａを保存するための固有キーａ保存装置とを有している。エンティティは、上記部分集合ＸＡから固有キーａを生成し、演算結果ａ＊ＸＢ＊ａ−１を生成し、それを通信相手のエンティティに送信する。通信相手のエンティティは、同様にして、演算結果ｂ＊ＸＡ＊ｂ−１を生成し、それを元にして、共通キー（ｂ＊ａ＊ｂ−１）＊ａ−１を生成する。通信相手のエンティティは、送信された演算結果ａ＊ＸＢ＊ａ−１を使用して共通キーｂ＊（ａ＊ｂ＊ａ−１）−１を生成するように構成されている。
【０００４】
ここで、上記方式は、ＸＡ及びＸＢ及びａ＊ＸＢ＊ａ−１が知られても、ａを計算することが困難なことに基づいている。この方法において、有限生成であるにもかかわらず、群の大きさは無限なブレード群を上記群Ｇとして使用することが注目されている。
【０００５】
ここでブレード群について説明する。ブレード群は有限個のカノニカルな生成元によって生成される。即ち、ブレード群を生成する標準的な元はカノニカルな生成元である。カノニカルな元とは、Ｎ個の元σ１、σ２、…σＮで次の式の関係を満たすものをいう。
【０００６】
【数１】
σｉ＊σｉ＋１＊σｉ＝σｉ＋１＊σｉ＊σｉ＋１
但し、１≦ｉ≦Ｎ−１である。添え字をｉ、ｉ＋１とする。
σｉ＊σｊ＝σｊ＊σｉ
但し、１≦ｉ≦Ｎ−２、３≦ｊ≦Ｎ、｜ｉ−ｊ｜＞１である。添え字をｉ、ｊとする。
【０００７】
数１の第２の式の関係は、添え字の差が２以上である場合に成立する。従って、２個の元σ１、σ２の場合には、数１の第２の式の関係を表現することができない。
２個の元σ１、σ２の場合には、次の関係式となる。
【０００８】
【数２】
σ１＊σ２＊σ１＝σ２＊σ１＊σ２
【０００９】
一般に群の生成元とは、群の部分集合であって、重複を許してランダムに選択した元から群演算によって生成する群の部分集合が群の全体となるものをいう。単に元というと、群を構成する１つの元を意味する。
【００１０】
【発明が解決しようとする課題】
上述の群による共通キー生成系では、共通キーの「強度」は、エンティティの固有情報、即ち、固有キーの「強度」に依存する。固有キーは、上述のように、群の部分集合より生成される。固有キーの「強度」は、群の部分集合の「複雑さ」に依存する。複雑であれば固有キーの「強度」は大きく、単純であれば「強度」は小さくなる。
【００１１】
従って、固有キーを生成する元の集合である群の部分集合を生成したとき、それが単純でないことを確かめる必要がある。ここで、「単純」とは、群の部分集合の元そのものが単純であるか、又は、群の部分集合が小さいことを言う。
【００１２】
上述のように、特に群がブレード群の場合は、ブレード群の部分集合は、カノニカルな生成元をランダムに組み合わせた集合から、群の操作をすることにより生成される。しかしながら、カノニカルな生成元は数１の式の条件によって関係付けられるため、ブレード群の部分集合は、その元を生成したブレード群の部分集合の見掛けは複雑であっても実際には単純である可能性がある。
特に、ブレード群の元の集合が複雑であるか又は単純であるかを検証するためには、数１の式に示されるカノニカルな生成元の関係に基づいた計算が必要である。
【００１３】
しかしながら、ブレード群の元は無限個存在し、異なる方法により生成した元でも、実際には群の元として同一の元が無限個存在する。従って、ブレード群の元が「単純」であるか「複雑」であるかを計算によって検証することは極めて困難である。
【００１４】
本発明は、ブレード群による共通キー方式におけるエンティティの固有情報（固有キー）の生成過程において、ブレード群より部分集合を生成するとき、簡単な方法により、部分集合の各元が複雑であることを確認する技術を提供することを目的とする。
【００１５】
本発明は、群による共通キー方式におけるエンティティの固有情報（固有キー）の生成過程において、ブレード群より部分集合を生成するとき、カノニカルな生成元の複雑な計算を行うことなく、部分集合の元が複雑であることを確認する技術を提供することを目的とする。
【００１６】
【課題を解決するための手段】
本発明によると、カノニカルな生成元から生成されたブレード群の元の生成方法は、
平面上にＮ＋１個のパスを生成するためのパス生成工程と、
Ｎ個のカノニカルな生成元から重複を許して１個のカノニカルな生成元σｉとその符号±をランダムに選択するための選択工程と、
上記選択工程にて選択された上記生成元を順次蓄積してカノニカルな生成元の集合を生成するための集合生成工程と、
上記パスに対して上記生成元σｉ±を作用させるための作用工程と、
上記作用工程にて得られたパスより冗長性を除去するための除去工程と、
上記除去工程にて得られたパスを表示装置の画面上に線図として表示するための表示工程と、
上記表示工程にて表示された線図に基づいて上記カノニカルな生成元の集合が複雑か又は単純かを判定するための判定工程と、
上記判定工程において上記カノニカルな生成元の集合が単純であると判定した場合には上記選択工程に戻ることと、
上記判定工程において上記カノニカルな生成元の集合が複雑であると判定した場合には処理を終了し、上記集合生成工程にて生成されたカノニカルな生成元の集合を取り出すことと、を含む。
【００１７】
更に、上記パス生成工程は、上記パスを、上記パスが通る近傍の点Ｘｉと上記パスが該点Ｘｉの上側を通るか又は下側を通るかを示す符号からなる要素のリストとして表現することと、
上記作用工程は、上記パスに対して上記生成元σｉ±を作用させた結果として得られるパスを上記要素のリストとして表現することを含む。
【００１８】
更に、本発明は、上記カノニカルな生成元から生成されたブレード群の元の生成方法をコンピュータによって実行するためのコンピュータによって読み取り可能なプログラムである。
【００１９】
本発明によると、カノニカルな生成元から生成されたブレード群の元の生成装置は、
平面上にＮ＋１個のパスを生成するためのパス生成部と、
Ｎ個のカノニカルな生成元から重複を許して１個のカノニカルな生成元σｉとその符号±をランダムに選択するための選択部と、
上記選択工程にて選択された順番に上記生成元を蓄積してカノニカルな生成元の集合を生成するための集合生成部と、
上記パスに対して上記生成元σｉ±を作用させるための作用部と、
上記作用工程にて得られたパスより冗長性を除去するための除去部と、
上記除去工程にて得られたパスを表示装置の画面上に線図として表示するための表示部と、
上記表示工程にて表示された線図に基づいて上記カノニカルな生成元の集合が複雑か又は単純かを判定するための判定部と、
を有し、上記判定部において上記カノニカルな生成元の集合が単純であると判定した場合には上記選択部の処理を繰返し、
上記判定部において上記カノニカルな生成元の集合が複雑であると判定した場合には上記集合生成部にて生成されたカノニカルな生成元の集合を取り出すように構成されている。
【００２０】
従って、本発明によると、ブレード群の、カノニカルな生成元からなる集合が十分に複雑であるか否かを、複雑な計算を行うことなく、視覚的に且つ直感的に判定することができる。
【００２１】
【発明の実施の形態】
図１を参照して本発明によるブレード群の、カノニカルな生成元からなる集合の生成装置の例を説明する。本例の装置１は、カノニカルな生成元の生成装置１０とカノニカルな生成元の集合の複雑さを画像によって表示するための表示装置２０と続行ボタン２２とＯＫボタン２４とを有する。本例の装置は、コンピュータ装置であってよい。続行ボタン２２及びＯＫボタン２４はキーボードのキーであってよい。
【００２２】
生成装置１０は、カノニカルな生成元をランダムに選択するため選択部１０１と選択部１０１にて選択されたカノニカルな生成元の集合Σを生成するための集合生成部１０２とカノニカルな生成元をパスに作用させるための作用部１０３とカノニカルな生成元より冗長性を除去するための冗長性除去部１０４とカノニカルな生成元の複雑さをグラフ表示するためのグラフ表示部１０５とを有する。
【００２３】
選択部１０１は、与えられたＮ個のカノニカルな生成元よりランダムに且つ重複を許して生成元σｉを１個ずつ選択する。集合生成部１０２は、選択部１０１にて選択されたカノニカルな生成元を順次蓄積し、カノニカルな生成元の集合を生成する。作用部１０３は、平面上のＮ＋１個のパスに対して、選択部１０１にて選択されたカノニカルな生成元を作用させる。冗長性除去部１０４は、作用部１０３によって得られたパスを使用して、カノニカルな生成元より冗長性を除去する。グラフ表示部１０５は、冗長性除去部１０４によって得られたパスを表示装置２０の画面に画像表示する。
【００２４】
本例によると、ブレード群のカノニカルな元の集合が表示装置２０にて線図として表示されるから、ユーザは、ブレード群のカノニカルな元の集合の「複雑さ」を視覚的に確認することができる。勿論、適当な画像処理方法によって、ブレード群のカノニカルな元の集合を表す線図の複雑さを判定しても良い。ユーザは、ブレード群のカノニカルな元の集合の「複雑さ」が不十分であると判断した場合には、続行ボタン２２を押すことによって、選択部１０１、集合生成部１０２、作用部１０３及び冗長性除去部１０４の動作を続行し、カノニカルな生成元からなる集合Σの生成を続行する。ユーザは、ブレード群のカノニカルな元の集合の「複雑さ」が十分であると判断した場合には、ＯＫボタン２４を押すことによって処理が終了する。集合生成部１０２にて生成された、カノニカルな生成元からなる集合Σを出力する。
【００２５】
本例の方法によれば、ユーザは、カノニカルな生成元の集合の複雑さを画像にて視覚的に判定することができるから、カノニカルな生成元の集合の複雑さを、計算を行うことなく直感的に判断することができる。
【００２６】
図２及び図３を参照して、先ず、パス（曲線又は折線）の記法を説明する。平面上に、始点Ｘ０と、その上側に略水平に並んでいるＮ＋１個の点Ｘ１，…，ＸＮ＋１を取る。このような点の取り方は、以下に説明する記法を単純化するためであり、本質的ではない。始点Ｘ０を出発し、点Ｘ１，…．ＸＮ＋１を終端とするＮ＋１個のパスｐ１，…，ｐＮ＋１を作る。各パスｐｉは、自身及び他の点Ｘｊ（ｊ≠ｉ）と交わらないものとする。パスは直線、折線又は曲線であってよく、図面では便宜上、折線にて表現されている。
【００２７】
すると、自然にＮ個のカノ二カルな生成元が与えられる。次に、パスに対するカノニカルな生成元σｉの作用を説明する。カノニカルな生成元σｉの作用は、平面上の２点Ｘｉ，　Ｘｉ＋１の近辺に限られる。２点の近辺では、パスの反時計周りの回転と２点の入れ替えが起きる。
【００２８】
図２に示す例では、第１のパスｐ１にカノニカルな生成元σ１を作用させると、２点Ｘ１、Ｘ２の近辺にて、第１のパスｐ１の回転と２点Ｘ１、Ｘ２の入れ替えが起きる。同様に、第２のパスｐ２にカノニカルな生成元σ２を作用させると、２点Ｘ２、Ｘ３の近辺にて、回転と入れ替えが起きる。第３のパスｐ３にカノニカルな生成元σ３を作用させると、２点Ｘ３、Ｘ４の近辺にて、回転と入れ替えが起きる。
結局、Ｎ＋１個のパスｐ１，…，ｐＮ＋１に対して、順次、カノニカルな生成元σｉを作用させると、Ｎ組の隣接する２点の近辺にて回転と入れ替えが起きる。
【００２９】
図２は、３個のカノニカルな生成元σ１、σ２、σ３が与えられた例を示す。平面上に４個の点Ｘ１、Ｘ２、Ｘ３、Ｘ４をとり、４個のパスｐ１、ｐ２、ｐ３、ｐ４を生成する。パスｐ２に、カノニカルな生成元σｉを作用させると、パスの回転と隣接した２点の入れ替えが起きる。これを繰返すと、図３に示すように、複雑なパスｐ２が生成される。このような、カノニカルな生成元σｉの作用の詳細は後に説明する。
【００３０】
次にパスの記法を説明する。始点Ｘ０を出発し、ｉ番目の点Ｘｉ（１≦ｉ≦Ｎ＋１）を終点とするパスｐｉを考える。このパスｐｉは、次のようなリストＬによって完全に記述することができる。
【００３１】
【数３】
（Ｘ０，０）（Ｘｊ１，＋）（Ｘｊ２，　±）…，…（Ｘｊｎ，　±）…（Ｘｉ，０）
【００３２】
リストＬは要素からなり、各要素は、（Ｘｊ，ｓｉｇｎ）の形式となっている。ここで、Ｘｊを点、ｓｉｇｎを符号と呼ぶ。点Ｘｊは、パスｐｉが点Ｘｊの近辺を通過することを意味する。符号は、点Ｘｊに対するパスｐｉの位置を示す。符号＋である場合には、パスｐｉは、点Ｘｊの上側を通り、符号が−である場合には、パスｐｉは、点Ｘｊの下側を通ることを意味する。符号が０である場合には、パスｐｉは、点Ｘｊを始端又は終端とすることを意味する。
【００３３】
従って、最初の要素（Ｘ０，０）はパスｐｉの始点を表し、最後の要素（Ｘｉ，０）はパスｐｉの終点を表す。要素（Ｘｊ，　＋）は、パスｐｉが点Ｘｊの上側を通過し、要素（Ｘｊ，　−）は、パスｐｉが点Ｘｊの下側を通過することを意味している。
図３のパスｐ２は、上述の記法によると次のリストによって表される。
【００３４】
【数４】
（Ｘ０，０）（Ｘ２，＋）（Ｘ３，　−）（Ｘ４，＋）（Ｘ４，−）（Ｘ３，　−）（Ｘ２，　０）
【００３５】
ここで、記法の冗長性を避ける手法が使用されている。それによると、始点Ｘ０を出発したパスｐ２が、始点の次の点Ｘ１の下側を通る場合には、要素（Ｘ１，　−）の記載を省略する。従って、始点の次の要素（Ｘ２，＋）はパスｐ２が最初に上側を通る点を表す。
次に、図４〜図１４を参照して、パスに対するカノニカルな生成元σｉの作用を詳細に説明する。パス（線図）の態様は以下のようなケース（１）〜（１１）に分類される。
【００３６】
図４を参照してケース（１）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図４Ａに示すように、ケース（１）のパスは、左から来て点Ｘｉで終わる。ケース（１）のパスを２点Ｘｉ　、Ｘｉ＋１の周辺だけ記述すると、…Ｙ　（Ｘｉ，０）となる。ここで、Ｙは、（Ｘｉ−１，　±）又は（Ｘ０，　０）である。
図４Ｂは、ケース（１）のパスに、カノニカルな生成元σｉを作用させた結果を示す。結果のパスは、後に図６を参照して説明するケース（３）のパスとなる。結果のパスは、…Ｙ　（Ｘｉ，−）　（Ｘｉ＋１，０）と表される。
【００３７】
図５を参照してケース（２）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図５Ａに示すように、ケース（２）のパスは、左から来て点Ｘｉの上を通過し点Ｘｉ＋１で終わる。ケース（２）のパスを２点Ｘｉ、Ｘｉ＋１の周辺だけ記述すると　…（Ｘｉ，＋）　（Ｘｉ＋１，０）となる。
図５Ｂは、ケース（２）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスはケース（１）のパスになる。結果のパスは、…　（Ｘｉ，０）と表される。
【００３８】
図６を参照してケース（３）のパスとそれ対するカノニカルな生成元σｉの作用を説明する。図６Ａに示すように、ケース（３）のパスは、左から来て点Ｘｉの下を通過し点Ｘｉ＋１で終わる。ケース（３）のパスを２点Ｘｉ、Ｘｉ＋１の周辺だけ記述すると、…（Ｘｉ，−）　（Ｘｉ＋１，０）となる。
図６Ｂはケース（３）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは、後に説明するケース（７）のパスとケース（５）のパスを組み合わせたものとなる。結果のパスは、…（Ｘｉ，−）　（Ｘｉ＋１，−）　（Ｘｉ＋１，＋）　（Ｘｉ，０）と表される。
【００３９】
図７を参照してケース（４）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図７Ａに示すように、ケース（４）のパスは、右から来て点Ｘｉ＋１で終わる。ケース（４）のパスを２点Ｘｉ　、Ｘｉ＋１の周辺だけ記述すると、…Ｙ　（Ｘｉ＋１，０）となる。Ｙは、（Ｘｉ＋２，　±）又は（Ｘ０，　０）である。
図７Ｂはケース（４）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは、ケース（５）のパスになる。結果のパスは、…Ｙ　（Ｘｉ＋１，＋）　（Ｘｉ，０）と表される。
【００４０】
図８を参照してケース（５）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図８Ａに示すように、ケース（５）のパスは、右から来て点Ｘｉ＋１の上を通過し点Ｘｉで終わる。ケース（５）のパスを２点Ｘｉ、Ｘｉ＋１の周辺だけ記述すると、…　（Ｘｉ＋１，＋）　（Ｘｉ，０）となる。
図８Ｂは、ケース（５）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは、ケース（７）のパスとケース（３）のパスを組み合わせたものになる。結果のパスは、…　（Ｘｉ＋１，＋）　（Ｘｉ，＋）　（Ｘｉ，−）　（Ｘｉ＋１，０）と表される。
【００４１】
図９を参照してケース（６）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図９Ａに示すように、ケース（６）のパスは、右から来て点Ｘｉ＋１の下を通過し点Ｘｉで終わる。ケース（６）のパスを２点Ｘｉ、Ｘｉ＋１の周辺だけ記述すると、…　（Ｘｉ＋１，−）　（Ｘｉ，０）となる。
図９Ｂは、ケース（６）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは、ケース（４）のパスになる。結果のパスは、…　（Ｘｉ＋１，０）と表される。
【００４２】
図１０を参照して、ケース（７）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図１０Ａに示すように、ケース（７）のパスは、左から右に（又は右から左に）２点Ｘｉ、Ｘｉ＋１の下を通過して抜ける。ケース（７）のパスを２点Ｘｉ　、Ｘｉ＋１の周辺だけ記述すると、…（Ｘｉ，−）　（Ｘｉ＋１，−）　…、又は、…（Ｘｉ＋１，−）　（Ｘｉ，−）…となる。
図１０Ｂはケース（７）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは元のケース（７）のパスとなる。即ち、ケース（７）のパスにカノニカルな生成元σｉを作用させてもパスは変化しない。
【００４３】
ケース（７）のパスは、左から右に（又は右から左に）２点Ｘｉ、Ｘｉ＋１の上を通過して抜ける場合も含む。この場合、ケース（７）のパスを２点Ｘｉ　、Ｘｉ＋１の周辺だけ記述すると、…（Ｘｉ，＋）　（Ｘｉ＋１，＋）…、又は、…（Ｘｉ＋１，＋）　（Ｘｉ，＋）…となる。この場合も、ケース（７）のパスにカノニカルな生成元σｉを作用させてもパスは変化しない。
【００４４】
図１１を参照してケース（８）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図１１Ａに示すように、ケース（８）のパスは、左から右に（又は右から左に）、点Ｘｉの上と点Ｘｉ＋１の下を通過して抜ける。ケース（８）のパスを２点Ｘｉ、Ｘｉ＋１の周辺だけ記述すると、…（Ｘｉ，＋）　（Ｘｉ＋１，−）　…，又は、…（Ｘｉ＋１，−）　（Ｘｉ，＋）　…となる。
図１１Ｂは、ケース（８）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは、後に説明するケース（９）のパスになる。結果のパスは、…（Ｘｉ，−）　（Ｘｉ＋１，＋）　…、又は、…（Ｘｉ＋１，＋）　（Ｘｉ，−）　…と表される。
【００４５】
図１２を参照してケース（９）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図１２Ａに示すように、ケース（９）のパスは、左から右に（又は右から左に）、点Ｘｉ＋１の上と点Ｘｉの下を通過して抜ける。ケース（９）のパスを２点Ｘｉ、Ｘｉ＋１の周辺だけ記述すると、…（Ｘｉ，−）　（Ｘｉ＋１，＋）…、又は、…（Ｘｉ＋１，＋）　（Ｘｉ，−）…となる。
図１２Ｂは、ケース（９）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは、ケース（７）のパス、ケース（９）のパス及びケース（７）のパスを組み合わせたものになる。結果のパスは、…（Ｘｉ，−）　（Ｘｉ＋１，−）　（Ｘｉ＋１，＋）　（Ｘｉ，−）　（Ｘｉ，＋）　（Ｘｉ＋１，＋）…、又は、…（Ｘｉ＋１，＋）　（Ｘｉ，＋）　（Ｘｉ，−）　（Ｘｉ＋１，＋）　（Ｘｉ＋１，−）（Ｘｉ，−）…と表される。
【００４６】
図１３を参照してケース（１０）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図１３Ａに示すように、ケース（１０）のパスは、左から点Ｘｉの回りを時計回り（又は反時計周り）に回って左に抜ける。ケース（１０）のパスを２点Ｘｉ、Ｘｉ＋１の周辺だけ記述すると、…（Ｘｉ，＋）　（Ｘｉ，−）…、又は…（Ｘｉ，−）　（Ｘｉ，＋）…となる。
図１３Ｂは、ケース（１０）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは、ケース（７）のパスとケース（９）のパスを組み合わせたものになる。結果のパスは、…（Ｘｉ，−）　（Ｘｉ＋１，＋）　（Ｘｉ＋１，−）　（Ｘｉ，−）…、又は、…（Ｘｉ，−）　（Ｘｉ＋１，−）　（Ｘｉ＋１，＋）　（Ｘｉ，−）…と表される。
【００４７】
図１４を参照して、ケース（１１）のパスとそれに対するカノニカルな生成元σｉの作用を説明する。図１４Ａに示すように、ケース（１１）のパスは、右から点Ｘｉ＋１の回りを時計回り（又は反時計周り）に回って右に抜ける。ケース（１１）のパスを２点Ｘｉ　、Ｘｉ＋１の周辺だけ記述すると、…（Ｘｉ＋１，＋）　（Ｘｉ＋１，−）…、又は、…（Ｘｉ＋１，−）　（Ｘｉ＋１，＋）…となる。
図１４Ｂは、ケース（１１）のパスにカノニカルな生成元σｉを作用させた結果を示す。結果のパスは、ケース（９）のパスとケース（７）のパスを組み合わせたものになる。結果のパスは、…（Ｘｉ＋１，＋）　（Ｘｉ，＋）　（Ｘｉ，−）　（Ｘｉ＋１，＋）…、又は、…（Ｘｉ＋１，＋）　（Ｘｉ，−）　（Ｘｉ，＋）　（Ｘｉ＋１，＋）…と表される。
カノニカルな生成元σｉの作用を考察したが、その逆元（σｉ）−１の作用も同様である。
【００４８】
図１５を参照して、カノニカルな生成元の生成装置１０の選択部１０１、集合生成部１０２及び作用部１０３の動作を説明する。尚、随時、図２及び図３を参照する。上述のように、Ｎ個のカノニカルな生成元が与えられているものとし、図２に示すように、平面上に、始点Ｘ０を出発し、点Ｘ１，…．ＸＮ＋１を終端とするＮ＋１個のパスｐ１，…，ｐＮ＋１を作る。これらのパスｐ１、…ｐｎ全体をパスの集合Ｐとする。
【００４９】
ステップ７０１にて、本例の処理によって最終的に生成するカノ二カルな生成元の集合Σを初期化する。ステップ７０２にて、パスの集合Ｐを初期化する。即ち、Ｎ＋１個のパスｐ１，…，ｐＮ＋１を、図３で表されるような最も簡単な直線状のパスとする。上述に記法によると初期化したパスは（Ｘ０，０）（Ｘｊ，０）となる。尚、図３のパスの集合Ｐを具体的に表現すると、（Ｘ０，０）（Ｘ１，０）、（Ｘ０，０）（Ｘ２，０）、（Ｘ０，０）（Ｘ３，０）、（Ｘ０，０）（Ｘ４，０）となる。
【００５０】
次に、ステップ７０３にて、与えられたＮ個のカノニカルな生成元より、１個のカノ二カルな生成元σｊとその符号±をランダムに選ぶ。これをここでは（σｊ，±）と表現する。（σｊ，±）は、（σｊ，＋）又は（σｊ，−）の意味である。
【００５１】
ステップ７０４にて、ステップ７０１にて初期化した集合Σに、ステップ７０３にて選択されたカノ二カルな生成元（σｊ，±）を蓄積する。
ステップ７０５にて、平面上のＮ＋１個のパスｐ１，…，ｐＮ＋１に対して、順次、カノ二カルな生成元（σｊ，±）を作用させる。各パスｐｉにカノ二カルな生成元（σｊ，±）を作用させる方法は、以下に、図１６を参照して詳細に説明する。こうして、作用の結果としてＮ＋１個のパスｐ１，…，ｐＮ＋１が得られる。このＮ＋１個のパスｐ１，…，ｐＮ＋１は、数６の式のようなリストとして得られる。
【００５２】
ステップ７０６にて、ステップ７０５で得られたＮ＋１個のパスｐ１，…，ｐＮ＋１より、順次、冗長性を除去する。各パスｐｉより冗長性を除去する方法は、図１９参照して詳細に説明する。ステップ７０６では、冗長性が除去されたＮ＋１個のパスｐ１，…，ｐＮ＋１のリストが得られる。
【００５３】
ステップ７０７にて、冗長性が除去された全てのパスｐ１，…，ｐＮ＋１の線図（折線又は曲線）を画面上に順次表示する。
ステップ７０８にて、画面上に表示された全てのパスｐ１，…，ｐＮ＋１の線図に基づいて、カノ二カルな生成元σｊの集合Σが十分複雑であるか否かを判定する。この判定は、ユーザが視覚的に実行してよく、又は、コンピュータが適当な画像処理によって実行してよい。
【００５４】
全てのパスｐ１，…，ｐＮ＋１が十分に複雑であると判定されない場合には、ステップ７０３に戻る。ステップ７０３にて、与えられたＮ個のカノニカルな生成元より重複を許して再度、１個のカノ二カルな生成元σｊとその符号±をランダムに選ぶ。ステップ７０４にて、カノ二カルな生成元の集合Σに、ステップ７０３にて選択されたカノ二カルな生成元（σｊ，±）を追加する。カノ二カルな生成元の集合Σには、前回のステップ７０４にて格納されたカノ二カルな生成元（σｊ，±）が既に蓄積されている。従って、今回のステップ７０４では、カノ二カルな生成元の集合Σには、前回選択されたカノ二カルな生成元と今回選択されたカノ二カルな生成元が蓄積される。
【００５５】
こうして、本例では、ステップ７０８にて、十分複雑なパスが得られるまで、ステップ７０３からステップ７０８が繰返され、それによって、集合Σには、重複を許してランダムに選択されたカノ二カルな生成元σｊが蓄積される。
【００５６】
ステップ７０８にて、全てのパスｐ１，…，ｐＮ＋１が十分に複雑であると判定された場合には、本例の処理を終了する。このとき、集合Σに蓄積されたカノ二カルな生成元σｉ全体が、十分複雑なブレード群の、カノニカルな生成元からなる集合となる。
【００５７】
図１６〜図２２を参照して図１５の流れ図の処理を詳細に説明する。先ず、図１６の流れ図を参照して説明する。始点Ｘ０から始まるパスｐｉが要素からなるリストＬｉとして与えられているものとする。このパスｐｉに対してカノニカルな生成元σｉを作用させたとき結果リストＬを得るための処理を説明する。パスｐｉを表すリストＬｉの各要素は、上述のように、（Ｘｊ，ｓｉｇｎ）と表され、Ｘｊを点、ｓｉｇｎを符号と呼ぶことにする。
【００５８】
まずステップ１０１にて、パスｐｉに対してカノニカルな生成元σｊを作用させた結果を格納するための結果リストＬを初期化する。即ち、結果リストＬの最初の要素として、始点Ｘ０を表す要素（Ｘ０，０）を入れる。ここで、パスｐｉを表すリストＬｉにおける処理中の要素の位置を表すインデックスＩを０番目から数えることとする。ステップ１０２では、リストＬｉにおける処理中の要素の位置を表すインデックスＩを初期化する。即ち、インデックスＩを０から１にする。
【００５９】
ステップ１０３にて、リストＬｉにおけるＩ番目の要素を取り出し、それをＣｕｒｒｅｎｔとする。ステップ１０４にて、Ｃｕｒｒｅｎｔの点がＸｊであるか否かを判定する。Ｃｕｒｒｅｎｔの点がＸｉであれば、ステップ１０５に進む。ステップ１０５の処理の詳細は後に図１７を参照して説明する。Ｃｕｒｒｅｎｔの点がＸｊでなければ、ステップ１０６に進む。ステップ１０６にて、Ｃｕｒｒｅｎｔの点がＸｊ＋１であるか否かを判定する。Ｃｕｒｒｅｎｔの点がＸｊ＋１であればステップ１０７に進む。ステップ１０７の処理は、ステップ１０５の処理と同様である。ステップ１０６にて、Ｃｕｒｒｅｎｔの点がＸｊ＋１でなければ、ステップ１０８に進み、インデックスＩを１インクメントし、リストＬｉにおける次の要素に進む。ステップ１０９にて、結果リストＬの最後に、Ｃｕｒｒｅｎｔを追加する。
【００６０】
ステップ１０５、１０７、１０９の実行後は、ステップ１１０にて、リストＬｉの全ての要素について、処理が完了したか否かを判定する。即ち、処理中の要素の位置を示すインデックスＩが、リストＬｉの全要素数より真に大であるか否かを判定する。ステップ１１０にて、処理が完了していないと判定された場合には、ステップ１０３に戻り、処理が完了していると判定された場合には、本例のフローを終了する。
【００６１】
図１７及び図１８を参照して図１６のステップ１０５を詳細に説明する。まず、ステップ２００１にて、Ｃｕｒｒｅｎｔが終点を表しているか否かを判定する。即ち、Ｃｕｒｒｅｎｔの符号が０であるか否かを判定する。Ｃｕｒｒｅｎｔが終点を表しているならば、ステップ２００２にて、結果リストＬに２つの要素（Ｘｊ，−）　（Ｘｊ＋１，０）を追加して、終了ステップ２００７に飛ぶ。Ｃｕｒｒｅｎｔが終点を表していない場合には、ステップ２００３にて、Ｃｕｒｒｅｎｔの次の要素を取り出し、それをＮｅｘｔとする。
【００６２】
ステップ２００４は、Ｎｅｘｔの点がＸｊであるか否かを判定する。Ｎｅｘｔの点がＸｊである場合には、上述のケース（１０）のパスに相当する。従って、ステップ２００５にて、パスｐｉが時計周りか反時計周りかを判定する。ステップ２００４にて、Ｎｅｘｔの点がＸｉでない場合、即ち、Ｘｊ＋１の場合には、ステップ２００８（図１８）に進む。
【００６３】
ステップ２００５にて、Ｃｕｒｒｅｎｔの符号が正であるか否かを判定する。Ｃｕｒｒｅｎｔの符号が正であるならば、パスｐｉが時計周りであることを意味し、ステップ２００６に進む。Ｃｕｒｒｅｎｔの符号が負ならば、パスｐｉが反時計周りであることを意味し、ステップ２００７に進む。
【００６４】
ステップ２００６は、パスｐｉが時計周りである場合の処理で、結果リストＬに（Ｘｊ，−）　（Ｘｊ＋１，＋）　（Ｘｊ＋１，−）　（Ｘｊ，−）を追加して終了ステップ２０１７に飛ぶ。
ステップ２００７は、パスｐｉが反時計周りである場合の処理で、結果リストＬに（Ｘｊ，−）　（Ｘｊ＋１，−）　（Ｘｊ＋１，＋）　（Ｘｊ，−）を追加して終了ステップ２０１７に飛ぶ。終了ステップ２０１７は、インデックスＩを２インクリメントする。
【００６５】
図１８を参照する。ステップ２００８にて、Ｎｅｘｔが終点であるか否かを判定する。尚、ステップ２００８にて、Ｎｅｘｔの点はＸｊ＋１である。Ｎｅｘｔが終点であるか否かは、符号が０であるか否かを判定すればよい。Ｎｅｘｔが終点である場合には、ステップ２００９に進み、パスｐｉが、点Ｘｊ＋１に到達する途中に、点Ｘｊの上側を通ったか否か判定する。Ｃｕｒｒｅｎｔの符号が正の場合には、パスｐｉが、上側を通ったことになり、ステップ２０１０にて、結果リストＬに（Ｘｊ，０）を追加して、終了ステップ２０１７に飛ぶ。
【００６６】
パスｐｉが、点Ｘｊ＋１に到達する途中に、点Ｘｊの下側を通った場合には、ステップ２０１１に進む。ステップ２０１１にて、結果リストＬに（Ｘｊ，−）（Ｘｊ＋１，−）（Ｘｊ＋１，＋）（Ｘｊ，０）を追加して終了ステップ２０１７に飛ぶ。
【００６７】
ステップ２００８にて、Ｎｅｘｔが終点でない場合、即ち、ＣｕｒｒｅｎｔとＮｅｘｔが共に終点でない場合には、ステップ２０１２に進む。ステップ２０１２にて、ＣｕｒｒｅｎｔとＮｅｘｔの符号が等しいか否か判定する。両者の符号が等しい場合には、ステップ２０１３に進み、結果リストＬにＣｕｒｒｅｎｔとＮｅｘｔを追加する。これは、パスｐｉのこの部分については、なんら変更を加えないことを意味する。
【００６８】
ステップ２０１２にて、ＣｕｒｒｅｎｔとＮｅｘｔの符号が等しくない場合には、ステップ２０１４に進み、Ｎｅｘｔの符号が正であるか否かを判定する。即ち、パスｐｉが右上がりか否かを判定する。ステップ２０１４にて、Ｎｅｘｔの符号が正である場合には、パスｐｉが右上がりであるから、ステップ２０１５に進み、結果リストＬに（Ｘｊ，−）（Ｘｊ＋１，−）（Ｘｊ＋１，−）（Ｘｊ＋１，＋）（Ｘｊ，−）（Ｘｊ，＋）（Ｘｊ＋１，＋）を追加して、終了ステップ２０１７に飛ぶ。
【００６９】
ステップ２０１４にて、Ｎｅｘｔの符号が負の場合には、パスｐｉが左上がりであるから、ステップ２０１６に進み、結果リストＬに（Ｘｊ＋１，−）（Ｘｊ＋１，＋）を追加して、終了ステップ２０１７に飛ぶ。
【００７０】
以上、ステップ１０５の処理、即ち、Ｃｕｒｒｅｎｔの点がＸｊの場合の処理を詳細に説明したが、ステップ１０７の処理、即ち、Ｃｕｒｒｅｎｔの点がＸｊ＋１の場合の処理も同様であり、その説明は省略する。
【００７１】
こうして、パスｐｉに対して、カノ二カルな生成元σｉを順次に作用させると、最終的には、作用させた結果パスに対応する結果リストＬが生成される。しかしながら、こうして生成された結果リストＬは冗長性を含む可能性がある。
【００７２】
図１９を参照してカノニカルな生成元の生成装置１０の冗長性除去部１０４の動作を説明する。まず、ステップ３０１にて、第１のケース（ａ）を処理する。第１のケース（ａ）は、結果リストＬに全く同一の２つの連続した要素が存在する場合である。同一の要素とは、点と符号が等しい場合である。この場合には、これらの連続した２つの要素を結果リストＬより除去する。
【００７３】
次にステップ３０２にて、第２のケース（ｂ）を処理する。第２のケース（ｂ）は、結果リストＬの終点と直前の要素が同一の点を共有する。この場合には、この直前の要素を結果リストＬより除去する。
【００７４】
最後にステップ３０３では、第３のケース（ｃ）を処理する。第３のケース（ｃ）は、結果リストＬの始点と初めて符号が負以外になる点の間に、要素が存在する。これは、リストの記法から冗長である。この場合には、これら冗長な要素を結果リストＬから除去する。
【００７５】
リストの冗長性は、以上の３つのケースのいずれかである。したがって、これらの冗長性を順次除去することにより、ブレード群の、カノニカルな生成元からなる集合の複雑さが確保される。
【００７６】
図２０を参照して、図１９のステップ３０１、即ち、第１のケース（ａ）の処理を説明する。先ず、ステップ４０１にて、パスｐｉに対してカノニカルな生成元を作用させた結果を格納するための結果リストＬを初期化する。即ち、結果リストＬの最初の要素として、始点を表す要素（Ｘ０，０）を入れる。次にステップ４０２にて、パスｐｉを表すリストＬｉにおける処理中の要素の位置を表すインデックスＩを初期化する、即ち、インデックスＩを１とする。ステップ４０３にて、リストＬｉにおける処理済みの最後の要素、即ちＩ番目の要素Ｃｕｒｒｅｎｔとし、ステップ４０４にて、リストＬｉにおける次の処理対象の要素、即ちＩ＋１番目の要素をＮｅｘｔとする。
【００７７】
ステップ４０５にて、ＣｕｒｒｅｎｔとＮｅｘｔが第１のケース（ａ）に該当するか否かを判定する。Ｃｕｒｒｅｎｔ＝Ｎｅｘｔの場合には、第１のケース（ａ）に該当する。従って、この場合には、Ｃｕｒｒｅｎｔ及びＮｅｘｔはブレード群の、カノニカルな生成元からなる集合の生成に寄与しない。即ち、結果を格納する結果リストＬに、Ｃｕｒｒｅｎｔ及びＮｅｘｔを追加しない。ステップ４０６にて、リストＬｉおける次の要素を指示するために、インデックスＩを２インクリメントする。ステップ４０７にて、リストＬｉにおける処理済みの最後の要素であるＣｕｒｒｅｎｔを削除し、ステップ４１０に進む。
【００７８】
ステップ４０５にて、Ｃｕｒｒｅｎｔ≠Ｎｅｘｔならば、第１のケース（ａ）に該当しないから、通常の処理を行う。ステップ４０８にて、結果リストＬにＮｅｘｔを追加し、ステップ４０９にてインデックスＩを１インクリメントし、ステップ４１０に進む。
【００７９】
ステップ４１０にて、リストＬｉの全ての要素に対して上記の処理が完了したか否かを判定する。即ち、インデックスＩがリストＬｉの全要素数より真に大であるか否かを判定する。全ての要素に対して上記の処理が完了した場合には、図１９のステップ３０１、即ち、第１のケース（ａ）の処理を終了する。全ての要素に対して上記の処理が完了していない場合、即ち、インデックスＩがリストＬｉの要素数に等しいか又は小さい場合には、ステップ４０３に戻る。
【００８０】
図２１を参照して、図１９のステップ３０２、即ち、第２のケース（ｂ）の処理を説明する。先ず、ステップ５０１にて、パスｐｉを表すリストＬｉにおける要素の位置を示すインデックスＩを初期化する。即ち、インデックスＩを１とする。ステップ５０２にて、リストＬｉにおける最後の要素（終点）をＥｎｄとする。ステップ５０３にて、リストＬｉにおける最後の要素の直前の要素を取り出し、それをＮｅｘｔとする。
【００８１】
ステップ５０４にて、Ｎｅｘｔの点とＥｎｄの点が同一であるか否かを判定する。両者が同一なら、第２のケース（ｂ）に該当し、ステップ５０５に進み、インデックスＩを１インクリメントし、ステップ５０３に戻る。
ステップ５０４にて、Ｎｅｘｔの点とＥｎｄの点が同一でないときは、リストＬｉにおいて、他の要素が、第２のケース（ｂ）に該当することはない。従って、ステップ５０６に進み、リストＬｉにおける最初の要素から現在処理中の第２のケース（ｂ）に該当しない要素までをコピーする。ステップ５０７にて、結果リストＬにＥｎｄを追加する。
【００８２】
図２２を参照して、図１９のステップ３０４、即ち、第３のケース（ｃ）の処理を説明する。先ず、ステップ６０１にて、パスｐｉを表すリストＬｉにおける要素の位置を示すインデックスＩを初期化する。即ち、インデックスＩを１とする。ステップ６０２にて、パスｐｉに対してカノニカルな生成元σｉを作用させた結果を格納するための結果リストＬを初期化する。即ち、結果リストＬに、最初の要素として、始点を表す要素（Ｘ０，０）を入れる。ステップ６０３にて、リストＬｉにおけるＩ番目の要素をＮｅｘｔとする。ステップ６０４にて、Ｎｅｘｔの符号が負「−」であるか否かを判定する。Ｎｅｘｔの符号が負「−」である場合には、第３のケース（ｃ）に該当する。従って、結果リストＬにＮｅｘｔを追加することなく、ステップ６０５に進む。ステップ６０５にて、インデックスＩを１インクリメントして、ステップ６０３に戻る。
【００８３】
ステップ６０４にて、Ｎｅｘｔの符号が負「−」でない場合には、リストＬｉにおいて、これより先の要素が第３のケース（ｃ）に該当することはない。従って、ステップ６０５に進み、リストＬｉにおける残りの要素をコピーし、それを結果リストＬに追加する。
こうして本例によると、結果リストより冗長性が除去されるから、十分複雑なブレード群の、カノニカルな生成元からなる集合が得られる。
【００８４】
【発明の効果】
本発明によると、ブレード群の、カノニカルな生成元からなる集合が複雑か単純かを視覚的に観察することができる利点がある。
本発明によると、十分に複雑なブレード群の、カノニカルな生成元からなる集合を容易に生成することができる利点がある。
【図面の簡単な説明】
【図１】本発明による十分に複雑なブレード群の、カノニカルな生成元からなる集合を生成するための生成装置の例を示す図である。
【図２】本発明の方法による、カノニカルな生成元（Ｎ＝３）を作用させる前のパスを示す図である。
【図３】本発明の方法による、カノニカルな生成元（Ｎ＝３）を作用させた後のパスを示す図である。
【図４】ケース１のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図５】ケース２のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図６】ケース３のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図７】ケース４のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図８】ケース５のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図９】ケース６のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図１０】ケース７のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図１１】ケース８のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図１２】ケース９のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図１３】ケース１０のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図１４】ケース１１のパスとそれに対してカノ二カルな元σｉを作用させた結果を示す図である。
【図１５】本発明による十分に複雑なブレード群の、カノニカルな生成元からなる集合を生成するための生成方法の例を示す図である。
【図１６】パスに対して、カノニカルな生成元σｉを作用させるための処理を説明するための流れ図である。
【図１７】点Ｘｊにて始まるパスのセグメントに対してカノニカルな生成元σｉを作用させるための処理を説明するための流れ図である。
【図１８】点Ｘｊにて始まるパスのセグメントに対してカノニカルな生成元σｉを作用させるための処理を説明するための流れ図である。
【図１９】カノニカルな生成元σｉを作用させた結果より冗長性を取り除く処理を説明するための流れ図である。
【図２０】第１のケース（ａ）の冗長性を取り除くための処理を説明するための流れ図である。
【図２１】第２のケース（ｂ）の冗長性を取り除くための処理を説明するための流れ図である。
【図２２】第３のケース（ｃ）の冗長性を取り除くための処理を説明するための流れ図である。
【符号の説明】
１…ブレード群の、カノニカルな生成元からなる集合の生成装置、　１０…カノニカルな生成元の生成装置、　２０…表示装置、　２２…続行ボタン、　２４…ＯＫボタン、　１０１…選択部、　１０２…集合生成部、　１０３…作用部、　１０４…冗長性除去部、　１０５…グラフ表示部、
【図１】
2004109437.tif 000003
【図２】
2004109437.tif 000004
【図３】
2004109437.tif 000005
【図４】
2004109437.tif 000006
【図５】
2004109437.tif 000007
【図６】
2004109437.tif 000008
【図７】
2004109437.tif 000009
【図８】
2004109437.tif 000010
【図９】
2004109437.tif 000011
【図１０】
2004109437.tif 000012
【図１１】
2004109437.tif 000013
【図１２】
2004109437.tif 000014
【図１３】
2004109437.tif 000015
【図１４】
2004109437.tif 000016
【図１５】
2004109437.tif 000017
【図１６】
2004109437.tif 000018
【図１７】
2004109437.tif 000019
【図１８】
2004109437.tif 000020
【図１９】
2004109437.tif 000021
【図２０】
2004109437.tif 000022
【図２１】
2004109437.tif 000023
【図２２】
2004109437.tif 000024