(57)【要約】【課題】Ｃａｂ曲線のヤコビ群における加算を高速に計算することができ、Ｃａｂ曲線の実用性を向上させることができるヤコビ群要素加算装置を得る。【解決手段】代数曲線パラメータファイルＡ１０と、このファイルＡで指定された代数曲線の座標環のイデアルのグレブナ基底Ｉ１およびＩ２とをイデアル合成部１１へ入力し、イデアル積のグレブナ基底Ｊを演算する。第一のイデアル縮約部１２で、ファイルＡで指定された代数曲線の座標環におけるＪが生成するイデアルの逆イデアルと同値のイデアルのうち、ファイルＡで指定された単項式順序において最小のイデアルのグレブナ基底Ｊ＊を演算する。第二のイデアル縮約部１３で、このＪ＊が生成するイデアルの逆イデアルと同値のイデアルのうち、ファイルＡで指定された単項式順序において最小のイデアルのグレブナ基底Ｊ＊＊を演算して出力する。【選択図】　　　図１
2004077948.tif 000002
【特許請求の範囲】
【請求項１】
有限体上定義された、
Ｙ３　＋　α０Ｘ４　＋　α１ＸＹ２　＋　α２Ｘ２Ｙ　＋　α３Ｘ３　＋　α４Ｙ２　＋　α５ＸＹ　＋　α６Ｘ２　＋　α７Ｙ　＋　α８Ｘ　＋　α９
もしくは、
Ｙ２　＋　α０　Ｘ５　＋α１　Ｘ２　Ｙ　＋α２　Ｘ４　＋α３　Ｘ　Ｙ　＋α４　Ｘ３　＋α５　Ｙ　＋α６　Ｘ２　＋α７　Ｘ　＋α８
もしくは、
Ｙ２　＋α０　Ｘ７　＋α１　Ｘ３　Ｙ　＋α２　Ｘ６　＋α３　Ｘ２　Ｙ　＋α４　Ｘ５　＋α５　Ｘ　Ｙ　＋α６　Ｘ４　＋α７　Ｙ　＋α８　Ｘ３　＋α９　Ｘ２　＋α１０　Ｘ　＋α１１
なる多項式で定義された代数曲線のヤコビ群における加算を実行する演算装置であって、
前記代数曲線を表すパラメータとして定義体位数、単項式順序、係数リストを記述した代数曲線パラメータファイルを入力する手段と、
前記ヤコビ群の要素を表す、前記代数曲線パラメータファイルで指定された代数曲線の座標環のイデアルのグレブナ基底Ｉ１およびＩ２を入力する手段と、
前記代数曲線パラメータファイルで指定された代数曲線の座標環における、グレブナ基底Ｉ１が生成するイデアルとグレブナ基底Ｉ２の生成するイデアルとのイデアル積のグレブナ基底Ｊを演算するイデアル合成手段と、
前記代数曲線パラメータファイルで指定された代数曲線の座標環における、グレブナ基底Ｊが生成するイデアルの逆イデアルと同値なイデアルのうち前記代数曲線パラメータファイルで指定された単項式順序において最小のイデアルのグレブナ基底Ｊ＊を演算する第一のイデアル縮約手段と、
前記代数曲線パラメータファイルで指定された代数曲線の座標環における、グレブナ基底Ｊ＊が生成するイデアルの逆イデアルと同値なイデアルのうち前記代数曲線パラメータファイルで指定された単項式順序において最小のイデアルのグレブナ基底Ｊ＊＊を演算して出力する第二のイデアル縮約手段と、
を備えたことを特徴とするヤコビ群要素加算装置。
【請求項２】
前記イデアル合成手段は、
入力された複数のベクトルｖ１，ｖ２，．．．，ｖｎに対して、掃き出し法を用いて、その全ての１次独立な線形従属関係　Σｉ　ｍｊ，ｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．）を表す複数のベクトル｛ｍ１＝（ｍ１，１，ｍ１，２，．．．，ｍ１，ｎ），ｍ２＝（ｍ２，１，ｍ２，２，．．．，ｍ２，ｎ），．．．｝を出力する線形関係導出手段と、
レコード番号フィールド、イデアル型番号フィールド、位数フィールドおよびイデアル型フィールドからなるイデアル型テーブルと、
レコード番号フィールド、位数フィールドおよび単項式リストフィールドからなる単項式リストテーブルと、
レコード番号フィールド、位数フィールド、成分番号リストフィールド、第一ベクトル型フィールド、第二ベクトル型フィールドおよび第三ベクトル型フィールドからなるグレブナ基底構成用テーブルと、
前記代数曲線パラメータファイルを取得し、入力されたグレブナ基底Ｉ１およびＩ２それぞれに対して、前記イデアル型テーブルを参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＩｉ（ｉ＝１，２）の型と一致するレコードを検索し、検索されたレコードのイデアル型番号フィールドの値Ｎｉおよび位数フィールドの値ｄｉを取得するイデアル型分類手段と、
前記位数フィールドの値ｄ１およびｄ２の和ｄ３＝ｄ１＋ｄ２を計算し、単項式リストテーブルを参照し前記ｄ３を位数フィールドの値に持つレコードＲを検索し、前記レコードＲの単項式リストフィールドに記述されている単項式のリストＭ１，Ｍ２，．．．を取得し、Ｉ１とＩ２が異なるときには、前記各単項式ＭｉをＩ１で割った剰余式ｒｉを計算し、前記代数曲線パラメータファイルに記述された単項式順序に従って剰余式ｒｉの係数からなるベクトルｗ（ｉ）１を生成し、さらに、ＭｉをＩ２で割った剰余式ｓｉを計算し、代数曲線パラメータファイルＡに記述された単項式順序に従って剰余式ｓｉの係数からなるベクトルｗ（ｉ）２を生成し、上記２つのベクトルｗ（ｉ）１とｗ（ｉ）２を連結してベクトルｖｉを生成し、また、Ｉ１とＩ２が等しいときには、前記各単項式ＭｉをＩ１で割った剰余式ｒｉを計算し、前記代数曲線パラメータファイルに記述された単項式順序に従って剰余式ｒｉの係数からなるベクトルｗ（ｉ）１を生成し、さらに、前記代数曲線パラメータファイルに記述された係数リストおよび単項式順序を用いて定義多項式Ｆを構成し、多項式Ｍに対してそのＸによる微分をＤＸ（Ｍ）、Ｙによる微分をＤＹ（Ｍ）と書くとき、多項式ＤＸ（Ｍｉ）　ＤＹ（Ｆ）　−　ＤＹ（Ｍｉ）ＤＸ（Ｆ）をＩ１で割った剰余式ｓｉを計算し、前記代数曲線パラメータファイルに記述された単項式順序に従って剰余式ｓｉの係数から成るベクトルｗ（ｉ）２を生成し、上記２つのベクトルｗ（ｉ）１とｗ（ｉ）２を連結してベクトルｖｉを生成する単項式ベクトル生成手段と、
前記複数のベクトルｖ１，ｖ２，．．．を前記線形関係導出装置に入力し、出力として複数のベクトルｍ１，ｍ２，．．．を得て、前記グレブナ基底構成用テーブルを参照し前記値ｄ３を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１，ｍ２，．．．中に存在しないレコードＲ２を検索し、前記複数のベクトルｍ１，ｍ２，．．中から、前記レコードＲ２の第一ベクトル型に一致するベクトルｍを選択し、前記代数曲線パラメータファイルに記述された単項式順序に従ってベクトルｍの成分の値を係数とする多項式ｆ１を生成し、以下、同様にして、第二べクトル型に一致するベクトルを用いて多項式ｆ２を、また第三ベクトル型に一致するベクトルを用いて多項式ｆ３を生成し、多項式の集合Ｊ＝｛ｆ１，ｆ２，ｆ３｝を得て、前記グレブナ基底Ｊとして出力する基底構成手段とを有することを特徴とする請求項１記載のヤコビ群要素加算装置。
【請求項３】
前記第一および第二のイデアル縮約手段の各々は、
入力された複数のベクトルｖ１，ｖ２，．．．，ｖｎに対して、掃き出し法を用いて、その全ての１次独立な線形従属関係Σｉ　ｍｊ，ｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．）を表す複数のベクトル｛ｍ１＝（ｍ１，１，ｍ１，２，．．．，ｍ１，ｎ），ｍ２＝（ｍ２，１，ｍ２，２，．．．，ｍ２，ｎ），．．．｝を出力する線形関係導出手段と、
レコード番号フィールド、イデアル型番号フィールド、縮約位数フィールド、およびイデアル型フィールドからなるイデアル型テーブルと、
レコード番号フィールド、位数フィールドおよび単項式リストフィールドからなる単項式リストテーブルと、
レコード番号フィールド、位数フィールド、成分番号リストフィールド、第一ベクトル型フィールド、第二ベクトル型フィールドおよび第三ベクトル型フィールドからなるグレブナ基底構成用テーブルと、
前記代数曲線パラメータファイルを取得し、前記イデアル型テーブルを参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＪの型と一致するレコードを検索し、検索されたレコードのイデアル型番号フィールドの値Ｎおよび縮約位数フィールドの値ｄを取得するイデアル型分類手段と、
前記ｄが０であるときには、入力イデアルＪを前記グレブナ基底Ｊ＊として出力し、前記ｄが０でないときには、前記単項式リストテーブルを参照し前記ｄを位数フィールドの値に持つレコードＲを検索し、前記レコードＲの単項式リストフィールドに記述されている単項式のリストＭ１，Ｍ２，．．．を取得し、前記代数曲線パラメータファイルに記述された係数リストおよび単項式順序を用いて定義多項式Ｆを構成し、入力イデアルＪの第一番目の多項式ｆ、第二番目の多項式ｇおよび第三番目の多項式ｈを取得し、前記各単項式Ｍｉと多項式ｇの積Ｍｉ　ｇの、多項式ｆおよびＦによる剰余式ｒｉを計算し、前記代数曲線パラメータファイルに記述された単項式順序に従って剰余式ｒｉの係数からなるベクトルｗ（ｉ）１を生成し、さらに、前記各単項式Ｍｉと多項式ｈの積Ｍｉ　ｈの、多項式ｆおよびＦによる剰余式ｓｉを計算し、前記代数曲線パラメータファイルに記述された単項式順序に従って剰余式ｓｉの係数からなるベクトルｗ（ｉ）２を生成し、上記２つのベクトルｗ（ｉ）１とｗ（ｉ）２を連結してベクトルｖｉを生成する多項式ベクトル生成手段と、
前記複数のベクトルｖ１，ｖ２，．．．を前記線形関係導出手段に入力し、出力として複数のベクトルｍ１，ｍ２，．．．を得て、前記グレブナ基底構成用テーブルを参照して前記値ｄを位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１，ｍ２，．．．中に存在しないレコードＲ２を検索し、前記複数のベクトルｍ１，ｍ２，．．中から、前記レコードＲ２の第一ベクトル型に一致するベクトルｍを選択し、ベクトルｍの成分の値を係数とする多項式ｆ１を前記代数曲線パラメータファイルに記述された単項式順序に従って生成し、以下、同様にして、第二べクトル型に一致するベクトルを用いて多項式ｆ２を生成し、また第三ベクトル型に一致するベクトルを用いて多項式ｆ３を生成し、多項式の集合｛ｆ１，ｆ２，ｆ３｝を得て、前記グレブナ基底Ｊ＊もしくはＪ＊＊として出力する基底構成手段とを有することを特徴とする請求項１または２記載のヤコビ群要素加算装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はヤコビ群要素加算装置に関し、特に情報セキュリティ技術としての暗号技術である離散対数型暗号の一種である代数曲線のヤコビ群を用いた離散対数型暗号（以下、代数曲線暗号と呼ぶ）技術に関するものである。
【０００２】
【従来の技術】
代数曲線暗号の中で、最も実用化が進んでいるのは、楕円曲線暗号である。しかし、楕円曲線暗号で用いられる楕円曲線は一般の代数曲線に比べて非常に特殊な曲線である。その特殊性を用いた攻撃法が将来発見される危惧がある。そのため、より安全性を確保するためには、より特殊性の低い、一般的な代数曲線を用いることが望ましい。そのような、より一般的な代数曲線を用いることができる代数曲線暗号としてＣａｂ曲線暗号が知られている。
【０００３】
しかしながら、楕円曲線暗号にくらべＣａｂ曲線暗号は産業界で用いられていない。その大きな理由は、有田　正剛著，　Ｃａｂ　曲線のヤコビアン群加算アルゴリズムとその離散対数型暗号への応用、電子情報通信学会和文論文誌、Ｊ８２−Ａ巻，　８号，　１２９１−−１２９９，　１９９９に示されている、従来のＣａｂ曲線のヤコビ群における加算アルゴリズムが楕円曲線のヤコビ群における加算アルゴリズムに比べ、数十倍程度遅いため、Ｃａｂ曲線暗号では、楕円曲線暗号にくらべ、暗号化復号化の処理効率が著しく悪いためである。
【０００４】
また、原澤　隆一、鈴木　譲著、ア・ファースト・ヤコビアン・グループ・アリスメティック・スキーム・フォー・アルジェブレイク・カーブ・クリプトグラフィ、Ｅ８４−Ａ巻、１号、ｐｐ．１３０−１３９，　２００１　（Ｒｙｕｉｃｈｉ　ＨＡＲＡＳＡＷＡ，　Ｊｏｅ　ＳＵＺＵＫＩ，　Ａ　Ｆａｓｔ　Ｊａｃｏｂｉａｎ　Ｇｒｏｕｐ　Ａｒｉｔｈｍｅｔｉｃ　Ｓｃｈｅｍｅ　ｆｏｒ　Ａｌｇｅｂｒａｉｃ　Ｃｕｒｖｅ　Ｃｒｙｐｔｏｇｒａｐｈｙ，Ｖｏｌ．Ｅ８４−Ａ　Ｎｏ．１，　ｐｐ．１３０−１３９，　２００１）においても、Ｃａｂ曲線のヤコビ群における加算アルゴリズムが提案されているが、アルゴリズムの漸近的な計算量は与えられているものの、実装実験における実行速度データは示されておらず、また他者による実装実験の報告もなく、現実的にどの程度の実行速度が得られるか不明である。
【０００５】
【発明が解決しようとする課題】
上に見たように、Ｃａｂ曲線のヤコビ群における加算アルゴリズムの非効率さが当該曲線の暗号の実用化を阻んでおり、よってＣａｂ曲線のヤコビ群における加算アルゴリズムを高速化することが要求されている。
本発明はかかる要求に鑑みてなされたものであつて、その目的とするところは、Ｃａｂ曲線のヤコビ群における加算アルゴリズムを高速化することが可能なヤコビ群要素加算装置を提供することにある。
【０００６】
【課題を解決するための手段】
本発明によるヤコビ群要素加算装置は、有限体上定義された、
Ｙ３　＋　α０Ｘ４　＋　α１ＸＹ２　＋　α２Ｘ２Ｙ　＋　α３Ｘ３　＋　α４Ｙ２　＋　α５ＸＹ　＋　α６Ｘ２　＋　α７Ｙ　＋　α８Ｘ　＋　α９
もしくは、
Ｙ２　＋　α０　Ｘ５　＋α１　Ｘ２　Ｙ　＋α２　Ｘ４　＋α３　Ｘ　Ｙ　＋α４　Ｘ３　＋α５　Ｙ　＋α６　Ｘ２　＋α７　Ｘ　＋α８
もしくは、
Ｙ２　＋α０　Ｘ７　＋α１　Ｘ３　Ｙ　＋α２　Ｘ６　＋α３　Ｘ２　Ｙ　＋α４　Ｘ５　＋α５　Ｘ　Ｙ　＋α６　Ｘ４　＋α７　Ｙ　＋α８　Ｘ３　＋α９　Ｘ２　＋α１０　Ｘ　＋α１１
なる多項式で定義された代数曲線のヤコビ群における加算を実行する演算装置であって、
前記代数曲線を表すパラメータとして定義体位数、単項式順序、係数リストを記述した代数曲線パラメータファイルを入力する手段と、
前記ヤコビ群の要素を表す、前記代数曲線パラメータファイルで指定された代数曲線の座標環のイデアルのグレブナ基底Ｉ１およびＩ２を入力する手段と、
前記代数曲線パラメータファイルで指定された代数曲線の座標環における、グレブナ基底Ｉ１が生成するイデアルとグレブナ基底Ｉ２の生成するイデアルとのイデアル積のグレブナ基底Ｊを演算するイデアル合成手段と、
前記代数曲線パラメータファイルで指定された代数曲線の座標環における、グレブナ基底Ｊが生成するイデアルの逆イデアルと同値なイデアルのうち前記代数曲線パラメータファイルで指定された単項式順序において最小のイデアルのグレブナ基底Ｊ＊を演算する第一のイデアル縮約手段と、
前記代数曲線パラメータファイルで指定された代数曲線の座標環における、グレブナ基底Ｊ＊が生成するイデアルの逆イデアルと同値なイデアルのうち前記代数曲線パラメータファイルで指定された単項式順序において最小のイデアルのグレブナ基底Ｊ＊＊を演算して出力する第二のイデアル縮約手段と、
を備えたことを特徴とする。
【０００７】
【作用と原理】
［Ｃａｂ曲線とそのヤコビ群］
本発明で扱う、Ｃａｂ曲線Ｃは、互いに素な２つの自然数ａとｂに対して、以下の形の多項式Ｆ（Ｘ，Ｙ）によって定義される非特異な平面曲線である。
Ｆ（Ｘ，Ｙ）　＝　Ｙａ　＋　ｃ０　Ｘｂ　＋　Σｃｉ，ｊ　Ｘｉ　Ｙｊ．
ただし、上式で添数ｉ，ｊは０以上の自然数で　ａ　ｉ　＋　ｂ　ｊ　＜　ａｂ　の範囲を動く。また、ｃ０，ｃｉ，ｊは定義体ｋの元で、ｃ０は０ではないとする。Ｃａｂ曲線Ｃは唯一の無限遠点Ｐ∞をもち、多項式ＹとＸはそれぞれＰ∞でｂ位とａ位の唯一の極をもつ。　Ｃａｂ曲線Ｃ上の次数０の因子のなす群をＤＣ０（ｋ）とおき、主因子のなす群をＰＣ（ｋ）とおく。
【０００８】
本発明でその加算アルゴリズムを求めたいヤコビ群ＪＣ（ｋ）は、
ＪＣ（ｋ）　＝　ＤＣ０（ｋ）　／　ＰＣ（ｋ）
と定義される。一方、Ｒ＝ｋ［Ｘ，Ｙ］／ＦをＣａｂ曲線Ｃの座標環とすると、定義よりＣａｂ曲線Ｃは非特異なので、環Ｒは整閉整域となり、Ｄｅｄｅｋｉｎｄ　ｄｏｍａｉｎである。よって、環Ｒの０でない分数イデアル全体は群ＩＲ（ｋ）をなす。環Ｒの主イデアルのなす群をＰＲ（ｋ）とおくと、環Ｒのイデアル類群ＨＲ（ｋ）が、
ＨＲ（ｋ）　＝　ＩＲ（ｋ）　／　ＰＲ（ｋ）
と定義される。
【０００９】
一般に、非特異な代数曲線に対して、曲線上の因子と座標環のイデアルとは同一視することができ、そのヤコビ群とイデアル類群は自然に同型であることが知られている。特に、Ｃａｂ曲線Ｃのヤコビ群ＪＣ（ｋ）は座標環Ｒのイデアル類群ＨＲ（ｋ）と自然に同型である。アルゴリズムの実装には因子よりもイデアルが便利なので、以下Ｃａｂ曲線Ｃのヤコビ群ＪＣ（ｋ）は座標環Ｒのイデアル類群ＨＲ（ｋ）として扱う。
【００１０】
［グレブナ基底に関する準備］
イデアル類群ＨＲ（ｋ）を対象とした計算ではイデアルのグレブナ基底を用いるので、本節ではそれに関する準備を行う。一般に、多項式環Ｓ＝ｋ［Ｘ１，．．．，Ｘｎ］に対して、その単項式の間の順序’＜’であって、積とコンパチブル、すなわちＭ１　＜　Ｍ２ならば、常にＭ１　Ｍ３　＜　Ｍ２　Ｍ３となる整列順序’＜’を単項式順序と呼ぶ。本節では以降、多項式環Ｓに対し、任意の単項式順序’＜’が与えられているとする。
Ｓの多項式ｆに対して、ｆに現れる、単項式順序’＜’に関する最大の単項式をｆのｌｅａｄｉｎｇ　ｍｏｎｏｍｉａｌと呼び、ＬＭ（ｆ）とかく。また、イデアルＩに対して、Ｉに属する多項式のｌｅａｄｉｎｇ　ｍｏｎｏｍｉａｌ全体が生成するイデアルをＬＭ（Ｉ）と書く。
【００１１】
多項式ｆ１，．．．，ｆｓで生成される、ＳのイデアルＩ＝（ｆ１，．．．，ｆｓ）に対して、｛ｆ１，．．．，ｆｓ｝が
ＬＭ（Ｉ）　＝　（ＬＭ（ｆ１），　．．．　，ＬＭ（ｆｓ））を満たすとき、｛ｆ１，．．．，ｆｓ｝はイデアルＩのグレブナ基底と呼ばれる。多項式環ＳのイデアルＩに対し、ＬＭ（Ｉ）に属さない単項式（あるいはそのｍｕｌｔｉ　ｄｅｇｒｅｅ）全体Δ（Ｉ）はＩのデルタ集合と呼ばれる。Δ（Ｉ）に含まれる各単項式（のｍｕｌｔｉ−ｄｅｇｒｅｅ）をプロットすると、凸集合が現れ、その凸集合を囲む格子点がＩのグレブナ基底の要素のｌｅａｄｉｎｇ　ｍｏｎｏｍｉａｌと対応する。また、Δ（Ｉ）はｋ上のベクトル空間Ｓ／Ｉの基底をなす。
【００１２】
非特異アフィン代数曲線Ｃの座標環Ｒ＝Ｓ／ＦのイデアルＩは、多項式環Ｓのイデアルで、曲線Ｃの定義イデアルＦを含むものと同一視できる。よって、座標環Ｒのイデアルに対しても、上のようにグレブナ基底を考えることができる。座標環Ｒ＝Ｓ／Ｆの０次元イデアルＩ（すなわち、Ｉの解集合が有限集合）に対して、ｋ上のベクトル空間Ｓ／Ｉの次元をイデアルＩの位数と呼び、δ（Ｉ）と書く。定義より直ちに、δ（Ｉ）は集合Δ（Ｉ）の位数に等しい。また、非特異性の仮定より、δ（ＩＪ）＝δ（Ｉ）δ（Ｊ）となる。　Ｉ＝（ｆ）がＲの主イデアルのときは、δ（Ｉ）　＝　−ｖＰ∞（ｆ）である。ここで、ｖＰ∞（ｆ）は多項式ｆのＰ∞での付値を表す。
【００１３】
［Ｃａｂ曲線のヤコビ群加算アルゴリズム　その１］
多項式Ｆ（Ｘ，Ｙ）で定義されたＣａｂ曲線Ｃの座標環Ｒ＝ｋ［Ｘ，Ｙ］／Ｆを考える。２変数単項式Ｘｍ　Ｙｎを曲線Ｃ上の関数と見なし、Ｐ∞における極位数−ｖ　Ｐ∞（Ｘｍ　Ｙｎ）の大小によって単項式を順序づけた単項式順序をＣａｂ順序と呼ぶ。ただし、Ｐ∞における極位数が等しいときは、Ｙの次数が大きい方を大とする。以下、Ｃａｂ曲線Ｃの座標環Ｒの単項式順序としてＣａｂ順序を用いる。座標環ＲのイデアルＩに対し、Ｉに含まれる０でない多項式でそのｌｅａｄｉｎｇ　ｍｏｎｏｍｉａｌがＣａｂ順序で最小である多項式をｆＩとかく。さらに、Ｉ＊　＝　（ｆＩ）　：　Ｉ　（　＝　｛　ｇ　∈　Ｒ　｜　ｇ・Ｉ　⊆　（ｆＩ）　｝　）
とおく。
【００１４】
このとき、Ｉ，Ｊを座標環Ｒの任意の（整）イデアルとすると、（１）　ＩとＩ＊＊は同値であり、（２）　Ｉ＊＊はＩと同値な（整）イデアルでその位数が最小のものであり、（３）　ＩとＪが同値ならばＩ＊＝Ｊ＊であり、とくに、Ｉ＊＊＝（Ｉ＊＊）＊＊である、ことが容易にわかる。座標環ＲのイデアルＩに対して、Ｉ＊＊＝Ｉであるとき、Ｉをｒｅｄｕｃｅｄ　ｉｄｅａｌと呼ぶ。上記（１），（３）より、任意のイデアルは唯一のｒｅｄｕｃｅｄ　ｉｄｅａｌに同値である。すなわち、ｒｅｄｕｃｅｄ　ｉｄｅａｌ　はイデアル類の代表系をなしている。この性質はＣａｂ順序に限らず、任意の単項式順序を用いた場合にも成立するが、Ｃａｂ順序を用いた場合は、上記（２）より、ｒｅｄｕｃｅｄ　ｉｄｅａｌ　はそれと同値なイデアルのうち、位数が最小のものとなるという特質を持つ。これは、アルゴリズムの実装に際して利点となる。ｒｅｄｕｃｅ　ｉｄｅａｌ　をイデアル類の代表系として用いて、以下のイデアル類群乗算＝ヤコビ群加算アルゴリズムを得る。
【００１５】
［ヤコビ群加算アルゴリズム１］
入力：座標環Ｒのｒｅｄｕｃｅｄ　ｉｄｅａｌｓ　Ｉ１，　Ｉ２
出力：イデアル積Ｉ１・Ｉ２に同値な　ｒｅｄｕｃｅｄ　ｉｄｅａｌ　Ｉ３
１．　Ｊ　←　Ｉ１・Ｉ２
２．　Ｊ＊　←　（ｆＪ）　：　Ｊ
３．　Ｉ３　←　（ｆＪ＊）　：　Ｊ＊
【００１６】
［イデアルの分類］
上記ヤコビ群加算アルゴリズム１を効率的でかつ実装しやすいプログラムとして実現するために、ヤコビ群加算アルゴリズム１の実行中に現れるイデアルを分類する。以下、簡単のため、Ｃ３４曲線（すなわち、ａ＝３，ｂ＝４としたＣａｂ曲線）を対象として説明するが、一般のＣａｂ曲線に対しても同様である。Ｃ３４曲線の種数は３なので、ヤコビ群加算アルゴリズム１の実行中に現れるイデアルの位数は６以下である。それらのＣ３４順序におけるグレブナ基底は位数ごとに以下のように分類される。ただし、以降、イデアルのグレブナ基底にＣ３４曲線Ｃの定義式Ｆが現れても、Ｆは省略して書かない。また、グレブナ基底を構成する各多項式の係数ａｉ，ｂｊ，ｃｋは全てｋの元である。
【００１７】
（位数６のイデアル）
Ｉを座標環Ｒの位数６のイデアルとする。位数の定義より、Ｖ＝Ｒ／Ｉは定義体ｋ上の６次元ベクトル空間である。イデアルＩが表す６点が「一般的な」位置にあるとき、Ｃ３４順序で最初から６つの単項式１，Ｘ，Ｙ，Ｘ２，Ｘ　Ｙ，Ｙ２はそれら６点上で１次独立である。すなわち、単項式１，Ｘ，Ｙ，Ｘ２，Ｘ　Ｙ，Ｙ２はベクトル空間Ｖの基底をなす。このとき、イデアルＩをタイプ６１のイデアルと呼ぶ。
【００１８】
一般に、イデアルＩのデルタ集合Δ（Ｉ）はベクトル空間Ｖの基底と同一視できるので、タイプ６１のイデアルＩのデルタ集合は
Δ（Ｉ）　＝　｛（０，０），（１，０），（０，１），（２，０），（１，１），（０，２）｝
となる。それらを囲む格子点集合は｛（０，３），（１，２），（２，１），（３，０）｝である。よって、タイプ６１のイデアルＩのグレブナ基底は以下の形をもつ。
タイプ６１のイデアルのグレブナ基底　＝　｛　Ｘ３　＋　ａ６　Ｙ２　＋　ａ５　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ２　Ｙ　＋　ｂ６　Ｙ２　＋　ｂ５　Ｘ　Ｙ　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１，
Ｘ　Ｙ２　＋　ｃ６　Ｙ２　＋　ｃ５　Ｘ　Ｙ　＋　ｃ４　Ｘ２　＋　ｃ３　Ｙ　＋　ｃ２　Ｘ　＋　ｃ１　｝
これら３式はそれぞれ格子点（３，０），（２，１），（１，２）に対応する（格子点（０，３）は定義式Ｆに対応）。一般には、６つの単項式１，Ｘ，Ｙ，Ｘ２，Ｘ　Ｙ，Ｙ２は、イデアルＩが表す６点上で、すなわちベクトル空間Ｖにおいて一次独立とは限らない。
【００１９】
まず、Ｖにおいて、Ｃ３４順序で最初から５つの単項式１，Ｘ，Ｙ，Ｘ２，Ｘ　Ｙが一次独立であり、６番目の単項式Ｙ２がそれらの線形結合で表される場合を考察する。仮定より、Δ（Ｉ）は｛（０，０），（１，０），（０，１），（２，０），（１，１）｝を含み、（２，０）を含まない位数６の凸集合である。よって、Δ（Ｉ）　＝　｛（０，０），（１，０），（０，１），（２，０），（１，１），（２，１）｝　であるか　Δ（Ｉ）　＝　｛（０，０），（１，０），（０，１），（２，０），（１，１），（３，０）｝であるかのいずれとなる。Δ（Ｉ）が前者のとき、Ｉをタイプ６２のイデアルと呼び、後者の場合、Ｉをタイプ６３のイデアルと呼ぶ。
Δ（Ｉ）を囲む格子点集合は、タイプ６２のとき｛（０，２），（３，０）｝であり、タイプ６３のとき｛（０，２），（２，１），（４，０）｝である。よって、グレブナ基底は以下のようになる。
タイプ６２のイデアルのグレブナ基底　＝　｛Ｙ２　＋　ａ５　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ３　＋　ｂ５　Ｘ　Ｙ　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１　｝
これら２式はそれぞれ格子点（０，２），（３，０）に対応する。
【００２０】
タイプ６３のイデアルのグレブナ基底　＝　｛Ｙ２　＋　ａ５　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ２　Ｙ　＋　ｂ６　Ｘ３　＋　ｂ５　Ｘ　Ｙ　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１　｝
これら２式はそれぞれ格子点（０，２），（２，１）に対応する。
ただし、タイプ６３のイデアルのグレブナ基底には本来、格子点（４，０）に対応する多項式が存在するが、定義式Ｆと格子点（０，２）に対応する式ｆ＝Ｙ２　＋　ａ５　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１から、Ｆ−　Ｙ　ｆと、ただちに計算できるので、省略している。
【００２１】
次に、Ｖにおいて、最初から４つの単項式１，Ｘ，Ｙ，Ｘ２が一次独立であり、５番目の単項式Ｘ　Ｙ　がそれらの線形結合で表されるとする。すなわち、Δ（Ｉ）は｛（０，０），（１，０），（０，１），（２，０）｝を含み、（１，１）を含まない。このとき、Δ（Ｉ）が（０，２）を含まないと仮定すると、Δ（Ｉ）が位数６をもつには、
Δ（Ｉ）＝｛（０，０），（１，０），（０，１），（２，０），（３，０），（４，０）｝
となるしかない。ところが、仮定より、Ｉはｌｅａｄｉｎｇ　ｔｅｒｍがＹ２である多項式ｆ＝Ｙ２＋・・・　を含む。するとＹ　ｆ−　Ｆ　＝　Ｘ４　＋　・・・　がＩに属するので、（４，０）はΔ（Ｉ）には属さない。これは矛盾である。以上より、Δ（Ｉ）は必ず（０，２）を含むことがわかり、Δ（Ｉ）＝｛（０，０），（１，０），（０，１），（２，０），（０，２），（３，０）｝となる。このときＩをタイプ６４のイデアルとよぶ。
【００２２】
タイプ６４のイデアルＩのデルタ集合Δ（Ｉ）を囲む格子点集合は｛（０，３），（１，１），（４，０）｝である。よって、タイプ６４のイデアルＩのグレブナ基底は以下のようになる。
タイプ６４のイデアルのグレブナ基底　＝　｛　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ４　＋　ｂ６　Ｘ３　＋　ｂ５　Ｙ２　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１　｝
これら２式はそれぞれ格子点（１，１），（４，０）に対応する（格子点（０，３）は定義式Ｆに対応）。
【００２３】
次に、Ｖ＝Ｒ／Ｉにおいて、Ｃ３４順序で最初から３つの単項式１，Ｘ，Ｙが一次独立であり、４番目の単項式Ｘ２がそれらの線形結合で表されるとする。このとき、イデアルＩにはＸ２をｌｅａｄｉｎｇ　ｔｅｒｍとする多項式ｆが含まれ、デルタ集合は、
Δ（Ｉ）＝｛（０，０），（１，０），（０，１），（１，１），（０，２），（１，２）｝
となり、それらを囲む格子点集合は｛（０，３），（２，０）｝となるので、Ｉはｆで生成される単項イデアルとなる。このとき、Ｉをタイプ６５のイデアルと呼ぶ。
タイプ６５のイデアルのグレブナ基底　＝　｛Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１　｝
上式は格子点（２，０）に対応する（格子点（０，３）は定義式Ｆに対応）。
【００２４】
Ｙ（以下の項）をｌｅａｄｉｎｇ　ｔｅｒｍとする多項式ｆはｄｅｇ（（ｆ）０）　＝　−ｖＰ∞（ｆ）＝４　＜　６より、位数６のイデアルＩに対応する６点で同時に消えることはない。よって、Ｖ＝Ｒ／Ｉにおいて最初から３つの単項式１，Ｘ，Ｙは必ず一次独立であり、以上で位数６のイデアルの分類は完了した。
【００２５】
（位数５のイデアル）
Ｉを座標環Ｒの位数５のイデアルとする。位数５のイデアルも位数６のイデアルと同様にして、以下のようにタイプ５１からタイプ５４に分類される。
タイプ５１のイデアルのグレブナ基底　＝　｛　Ｙ２　＋　ａ５　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋ａ１，
Ｘ３　＋　ｂ５　Ｘ　Ｙ　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１，
Ｘ２　Ｙ　＋　ｃ５　Ｘ　Ｙ　＋　ｃ４　Ｘ２　＋　ｃ３　Ｙ　＋　ｃ２　Ｘ　＋　ｃ１　｝
タイプ５２のイデアルのグレブナ基底　＝　｛　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｙ２　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１　｝
タイプ５３のイデアルのグレブナ基底　＝　｛　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ３　＋　ｂ５　Ｙ２　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１　｝
タイプ５４のイデアルのグレブナ基底　＝　｛Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ　Ｙ２　＋　ｂ５　Ｙ２　＋　ｂ４　Ｘ　Ｙ　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１　｝
【００２６】
（位数４のイデアル）
位数４のイデアルＩも同様にして、以下のようにタイプ４１からタイプ４４に分類される。
タイプ４１のイデアルのグレブナ基底　＝　｛　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｙ２　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１，
Ｘ３　＋　ｃ４　Ｘ２　＋　ｃ３　Ｙ　＋　ｃ２　Ｘ　＋　ｃ１　｝
タイプ４２のイデアルのグレブナ基底　＝　｛　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ　Ｙ　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１　｝
タイプ４３のイデアルのグレブナ基底　＝　｛　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｙ２　＋　ｂ４　Ｘ　Ｙ　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１　｝
タイプ４４のイデアルのグレブナ基底　＝　｛Ｙ　＋　ａ２　Ｘ　＋　ａ１　｝
【００２７】
（位数３のイデアル）
位数３のイデアルＩも同様にして、以下のようにタイプ３１からタイプ３３に分類される。
タイプ３１のイデアルのグレブナ基底　＝　｛Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ　Ｙ　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１，
Ｙ２　＋　ｃ３　Ｙ　＋　ｃ２　Ｘ　＋　ｃ１　｝
タイプ３２のイデアルのグレブナ基底　＝　｛Ｙ　＋　ａ２　Ｘ　＋　ａ１，　Ｘ３　＋　ｂ３　Ｘ２　＋　ｂ２　Ｘ　＋　ｂ１　｝
タイプ３３のイデアルのグレブナ基底　＝　｛Ｘ　＋　ａ１｝
【００２８】
（位数２のイデアル）
位数２のイデアルＩも同様にして、以下のようにタイプ２１とタイプ２２に分類される。
タイプ２１のイデアルのグレブナ基底　＝　｛Ｙ　＋　ａ２　Ｘ　＋　ａ１，　Ｘ２　＋　ｂ２　Ｘ　＋　ｂ１　｝
タイプ２２のイデアルのグレブナ基底　＝　｛Ｘ　＋　ａ１，　Ｙ２　＋　ｂ２　Ｙ　＋　ｂ１　｝
【００２９】
（位数１のイデアル）
位数１のイデアルはもちろん以下のタイプ１１のみである。
タイプ１１のイデアルのグレブナ基底　＝　｛Ｘ　＋　ａ１，Ｙ　＋　ｂ１　｝
【００３０】
［注意］
以上のイデアルタイプのうち、タイプ６５，４４，３３は主イデアルであり、ヤコビ群要素として単位元を表す。また、以上のイデアルタイプのうち、ｒｅｄｕｃｅｄ　なイデアルタイプは３１，２１，２２，１１のみである。例えば、タイプ３２のイデアルがｒｅｄｕｃｅｄでないのは以下のようにしてわかる。
【００３１】
Ｉをタイプ３２のイデアルとすると、ｆＩ　＝　Ｙ　＋　ａ２　Ｘ　＋　ａ１
．　よって、臀ｏｃｈ（Ｉ＊）　＝　−ｖ∞（ｆＩ）　−δ（Ｉ）　＝　４　−　３　＝　１．
よって、Ｉ＊　はタイプ１１なので、ｆＩ＊　＝　Ｘ　＋　ａ’であり、
臀ｏｃｈ（Ｉ＊＊）　＝　−ｖ∞（ｆＩ＊）　−δ（Ｉ＊）　＝　３　−　１　＝　２．
位数が異なることから、Ｉ　≠　Ｉ＊＊．
【００３２】
［Ｃ３４曲線のヤコビ群加算アルゴリズム　その２］
定義式Ｆをもつ体ｋ上定義されたＣ３４曲線Ｃの座標環をＲ＝ｋ［Ｘ，Ｙ］／Ｆとおく。ヤコビ群加算アルゴリズム１をより具体化し、その実行速度を見積もる。ただし、以下では、離散対数型暗号への応用を念頭にして、体ｋの位数は十分に大きいとする。
【００３３】
（合成操作１）
まず、異なるイデアルＩ１，Ｉ２に対して、ヤコビ群加算アルゴリズム１の第１ステップ、以下合成操作１と呼ぶ、を考察する。すなわち、イデアル積Ｊ＝Ｉ１・Ｉ２に対してｆＪを求める。そのためには、イデアル積Ｊのグレブナ基底を求めればよい（ｆＪはその第一要素）。Ｃ３４曲線の種数は３なので、加算対象となるイデアルの位数は３以下である。よって、そのタイプは１１，２１，２２，３１，３２のいずれかである。ここでは、イデアルＩ１，Ｉ２がともにタイプ３１の場合を述べるが、他の場合も同様である。
【００３４】
Ｉ１，Ｉ２を共にタイプ３１の異なるイデアルとする。Ｉ１，Ｉ２がヤコビ群からランダムに選ばれたとすると、体ｋの位数は十分に大きいとしているので、イデアルＩに対してその解集合をＶ（Ｉ）とかくとき、ほとんどの場合、
Ｖ（Ｉ１）　∩　Ｖ（Ｉ２）　＝　φ　　　　　　　　　　　　　　　　　　　　　（１）
である（φは空集合を表す）。条件（１）を満たさない場合も、Ｒ１　＋　Ｒ２　＝　０となる要素Ｒｉを生成し、Ｉ１　＋　Ｉ２の代わりに（Ｉ１＋Ｒ１）＋（Ｉ２＋Ｒ２）を計算すれば、条件（１）が成り立つ場合に帰着する。また、条件（１）を満たさない場合は、非常に稀である（定義体ｋのサイズをｑとするとき１／ｑ程度）ので、アルゴリズムの効率を評価する際には、条件（１）を満たしている場合のみ考察すればよい。そこで、以下ではＩ１，Ｉ２に対して条件（１）を仮定する。
【００３５】
Ｊ＝Ｉ１　Ｉ２をＩ１とＩ２のＲにおけるイデアル積とする。　Ｉ１，Ｉ２は共に位数３なのでＪの位数は６となる。よって、Ｊのタイプは６１，６２，６３，６４もしくは６５である。Ｊのタイプがそのいずれであるかを決めるには、１０個の単項式
１，Ｘ，Ｙ，Ｘ２，ＸＹ，Ｙ２，Ｘ３，Ｘ２Ｙ，ＸＹ２，Ｘ４　（２）
の間の剰余環Ｒ／Ｊにおける線形関係を求めればよい。
【００３６】
イデアルＩｉ　（ｉ＝１，２）はタイプ３１なので、
【数１】
2004077948.tif 000003
である。条件（１）より、
【数２】
2004077948.tif 000004
となる。
【００３７】
ここで、ｖ（１）ｍ：ｖ（２）ｍは２つのベクトルｖ（ｉ）ｍ　（ｉ＝１，２）を連結して得られるｋ上の６次元ベクトルである。よって、式（２）中の１０個の単項式ｍｉ間のＲ／Ｊでの線形関係を求めるためには、ベクトルｖ（１）ｍｉ：ｖ（２）ｍｉ　（ｉ＝１，２，・・・，１０）を行とする、以下の１０　ｘ　６行列ＭＣの行間の線形関係を求めればよい。
【数３】
2004077948.tif 000005
行列ＭＣの行間の線形関係は、よく知られているように、行縮約変換によって行列ＭＣを三角化することにより得られ、これよりイデアルＪのタイプとそのグレブナ基底を得る。詳細は実施例で述べる。
【００３８】
（注意）
イデアルＩ１，Ｉ２に対し、条件（１）が成立しない場合は、行列ＭＣのランクが５以下となる。Ｉ１，Ｉ２のイデアル積を計算する際、最初はこれらに対して条件（１）を仮定して計算し、行縮約変換の結果、行列ＭＣのランクが５以下であることが判明すれば、Ｒ１　＋　Ｒ２　＝　０となる要素Ｒｉを生成し、Ｉ１　＋　Ｉ２の代わりに（Ｉ１＋Ｒ１）＋（Ｉ２＋Ｒ２）を計算すればよい。
【００３９】
（合成操作２）
座標環Ｒ＝ｋ［Ｘ，Ｙ］／Ｆの同じイデアルＩ１＝Ｉ，Ｉ２＝Ｉに対する、ヤコビ群加算アルゴリズム１の第一ステップ、以下合成操作２と呼ぶ、を考察する。すなわち、イデアル積Ｊ＝Ｉ２に対して、そのグレブナ基底を求め、ｆＪを計算する。イデアルＩがタイプ３１の場合を述べるが、他の場合も同様である。体ｋの位数は十分に大きいとしているので、ほとんどの場合、Ｖ（Ｉ）には多重点はない。　（３）
【００４０】
また、アルゴリズムの効率を評価する際には、条件（３）を満たしている場合のみ考察すればよい。以下ではＩに対して条件（３）を仮定する。Ｊ＝Ｉ２はやはり位数６なので、そのグレブナ基底を計算するには、式（１）の単項式間の剰余環Ｒ／Ｊにおける船型関係を求めればよい。イデアルＩはタイプ３１なので、
【数４】
2004077948.tif 000006
である。また、条件（３）より、多項式ｆ（∈　Ｒ）がＪ＝Ｉ２に属するための必要十分条件は、
ｆ　∈　Ｉ，　ｆＸ　ＦＹ　−　ｆＹ　ＦＸ　∈　Ｉ
である（ここで、多項式ｆに対してそのＸによる微分をｆＸと書く。ｆＹに関しても同様。）。よって、
【数５】
2004077948.tif 000007
である。ここで、ｖｍ　：　ｖ（ｍＸ　ＦＹ　−ｍＹ　ＦＸ）は２つのベクトルｖｍ，　ｖ（ｍＸ　ＦＹ　−ｍＹ　ＦＸ）を連結して得られるｋ上の６次元ベクトルである。
結局、上記線形関係を求めるためには、式（１）中の１０個の単項式ｍｉに対して、ｋ上の６次元ベクトルｖｍｉ：ｖ（ｍｉＸ　ＦＹ　−ｍｉＹ　ＦＸ）を行とする、以下の１０　ｘ　６行列ＭＤの行間の線形関係を求めればよい。
【００４１】
【数６】
2004077948.tif 000008
以降は、合成操作１と同様に、行縮約変換によって行列ＭＤを三角化すれば、イデアルＪのタイプとそのグレブナ基底が得られる。
【００４２】
（注意）
イデアルＩに対し、条件（３）が成立しない場合は、行列ＭＤのランクが５以下となる。Ｉ２のグレブナ基底を計算する際、最初は条件（３）を仮定して計算し、行縮約変換の結果、行列ＭＤのランクが５以下であることが判明すれば、Ｒ１　＋　Ｒ２　＝　０となる要素Ｒｉを生成し、Ｉ　＋　Ｉの代わりに（Ｉ＋Ｒ１）＋（Ｉ＋Ｒ２）を計算すればよい。
【００４３】
（還元操作）
ヤコビ群加算アルゴリズム１の第２ステップ（および第３ステップ）、以下還元操作と呼ぶ、を考察する。すなわち、位数６以下のイデアルＪに対して、Ｊ＊　＝　ｆＪ：Ｊのグレブナ基底を求める。以下、Ｊがタイプ６１の場合を述べるが、その他の場合も同様である。
【００４４】
Ｊはタイプ６１なのでそのグレブナ基底は、
｛ｆＪ　＝　Ｘ３　＋　ａ６　Ｙ２　＋　・・・，　ｇ　＝　Ｘ２　Ｙ　＋　ｂ６　Ｙ２　＋　・・・，　ｈ　＝　Ｘ　Ｙ２　＋　ｃ６　Ｙ２　＋・・・　｝
とかける。定義よりＪ＊　＝　ｆＪ　：　Ｊなので、δ（Ｊ＊）　＝　−ｖ∞（ｆＪ）　＿　δ（Ｊ）　＝　３　である。よって、Ｊ＊はｒｅｄｕｃｅｄなので、Ｊ＊はタイプ３１のイデアルとなることがわかる。よって、そのグレブナ基底を求めるには、
１，Ｘ，Ｙ，Ｘ２，ＸＹ，Ｙ２　（４）
中の単項式ｍｉに対して、Σｉ　ｄｉ　ｍｉ　ｇ　と　Σｉ　ｄｉ　ｍｉ　ｈ　がＲ／ｆＪで同時に０となる線形関係Σｉ　ｄｉ　ｍｉを求めればよい。
ＬＭ（Ｆ）＝Ｙ３，　ＬＭ（ｆＪ）　＝　Ｘ３より、
【数７】
2004077948.tif 000009
なので、上記線形関係を求めるためには、式（４）の６個の各単項式ｍｉに対して、２つのベクトルｗ（ｍｉ　ｇ），　ｗ（ｍｉ　ｈ）を連結して得られるｋ上の１８次元ベクトルｗ（ｍｉ　ｇ）：　ｗ（ｍｉ　ｈ）を行とする、以下の６　ｘ　１８行列ＭＲの行間の線形関係を求めればよい。
【００４５】
【数８】
2004077948.tif 000010
以降は、行縮約変換によって行列ＭＲを三角化すれば、イデアルＪ＊のグレブナ基底が得られる。ただし、実はほとんどの場合、行列ＭＲそのものではなく、その６　ｘ　３のある部分行列Ｍｒを三角化すれば十分である。これについての詳細は次節で述べる。
【００４６】
（アルゴリズムの演算量）
アルゴリズムの演算量を評価する。定義体の位数をｑとおくとき、ヤコビ群のランダムな要素は、確率１／ｑの例外を除いて、タイプ３１のイデアルで表される。また、タイプ３１のイデアルに対する合成操作１，２の結果は、確率１／ｑの例外を除いて、タイプ６１のイデアルとなる。よって、アルゴリズムの演算量を評価するには、タイプ３１のイデアルを入力したときの合成操作１，２の演算量とタイプ６１または３１のイデアルを入力したときの還元操作の演算量を評価すればよい。また、以下では、アルゴリズムの演算量は乗算と逆数演算の回数で表す。
まず、合成操作１の演算量をみる。Ｉ１，Ｉ２をタイプ３１のイデアルとする：
Ｉ１　＝　｛Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，　Ｘ　Ｙ　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１，　Ｙ２　＋　ｃ３　Ｙ　＋　ｃ２　Ｘ　＋　ｃ１　｝
Ｉ２　＝　｛Ｘ２　＋　ｓ３　Ｙ　＋　ｓ２　Ｘ　＋　ｓ１，　Ｘ　Ｙ　＋　ｔ３　Ｙ　＋　ｔ２　Ｘ　＋　ｔ１，　Ｙ２　＋　ｕ３　Ｙ　＋　ｕ２　Ｘ　＋　ｕ１　｝
イデアルＩ１，Ｉ２に対して、行列ＭＣは
【数９】
2004077948.tif 000011
と表示される。
【００４７】
ここで、
ｅ１０，１　＝　ａ１２　−　ａ１ａ２２　−　２ａ２ａ３ｂ１　−　ａ３２ｃ１
ｅ１０，２　＝　２ａ１ａ２　−　ａ２３　−　２ａ２ａ３ｂ２　−　ａ３２ｃ２
ｅ１０，３　＝　２ａ１ａ３　−　ａ２２ａ３　−　２ａ２ａ３ｂ３　−　ａ３２ｃ３
ｅ１０，４　＝　ｓ１２　−　ｓ１ｓ２２　−　２ｓ２ｓ３ｔ１　−　ｓ３２ｕ１
ｅ１０，５　＝　２ｓ１ｓ２　−　ｓ２３　−　２ｓ２ｓ３ｔ２　−　ｓ３２ｕ２
ｅ１０，６　＝　２ｓ１ｓ３　−　ｓ２２ｓ３　−　２ｓ２ｓ３ｔ３　−　ｓ３２ｕ３
これより、重複をうまく取り除けば、行列ＭＣは高々４４回の乗算で構成できることがわかる。
【００４８】
行列ＭＣ’に対する行縮約変換は、その１行目から３行目までがすでに行縮約された形であり、成分が０または１であることに注意すると、３回の割算と高々６　ｘ　６　＋　６ｘ　５　＋　６　ｘ　４　＝　９０回の乗算で実行できる。以上より、合成操作１の演算量は高々逆数演算３、乗算１３４である。同様にして、合成操作２の演算量は高々逆数演算３、乗算２１４であることがわかる。行列ＭＤが行列ＭＣより複雑な分、演算量が増えている。
【００４９】
次に、タイプ６１のイデアルを入力したときの縮約操作の演算量をみる。Ｊをタイプ６１のイデアルとする：
Ｊ　＝　｛　Ｘ３　＋　ａ６　Ｙ２　＋　ａ５　Ｘ　Ｙ　＋　ａ４　Ｘ２　＋　ａ３　Ｙ　＋　ａ２　Ｘ　＋　ａ１，
Ｘ２　Ｙ　＋　ｂ６　Ｙ２　＋　ｂ５　Ｘ　Ｙ　＋　ｂ４　Ｘ２　＋　ｂ３　Ｙ　＋　ｂ２　Ｘ　＋　ｂ１，
Ｘ　Ｙ２　＋　ｃ６　Ｙ２　＋　ｃ５　Ｘ　Ｙ　＋　ｃ４　Ｘ２　＋　ｃ３　Ｙ　＋　ｃ２　Ｘ　＋　ｃ１　｝
イデアルＪに対する行列ＭＲの第７列から第９列を取り出した６　ｘ　３の小行列Ｍｒは
【数１０】
2004077948.tif 000012
となる。
【００５０】
ここで、
ｅ４，１　＝　−ａ２　＋　ａ４２　−　ａ３　ａ６　＋　３　ａ４　ａ５　ａ６　＋　ａ５２　ａ６２　＋　ｂ３　−　ａ５　ｂ４　−　ａ４　ｂ５　−　ａ５　ａ６　ｂ５
ｅ４，２　＝　−ａ３　＋　ａ４　ａ５　＋　ａ５２　ａ６　＋　２　ａ４　ａ６２　＋　ａ５　ａ６３　−　ａ６　ｂ４　−　ａ５　ｂ５　−　ａ６２　ｂ５
ｅ５，１　＝　−２　ａ３　ａ５　＋　２　ａ４　ａ５２　−　ａ２　ａ６　＋　ａ４２　ａ６　＋　ａ５３　ａ６　−　ａ３　ａ６２　＋　３　ａ４　ａ５　ａ６２　＋　ａ５２　ａ６３　＋　ｂ２　−　ａ４　ｂ４　−　ａ５　ａ６　ｂ４　＋　ａ３　ｂ６　−　２　ａ４　ａ５　ｂ６　−　ａ５２　ａ６　ｂ６
ｅ５，２　＝　−ａ２　＋　ａ５３　−　２　ａ３　ａ６　＋　２　ａ４　ａ５　ａ６　＋　２　ａ５２　ａ６２　＋　２　ａ４　ａ６３　＋　ａ５　ａ６４　＋　ｂ３　−　ａ５　ｂ４　−　ａ６２　ｂ４　−　ａ５２　ｂ６　−　ａ４　ａ６　ｂ６　−　ａ５　ａ６２　ｂ６
ｅ６，１　＝　−２　ａ３　ａ４　−　２　ａ２　ａ５　＋　３　ａ４２　ａ５　−　４　ａ３　ａ５　ａ６　＋　６　ａ４　ａ５２　ａ６　−　ａ２　ａ６２＋　ａ４２　ａ６２　＋　２　ａ５３　ａ６２　−　ａ３　ａ６３　＋　３　ａ４　ａ５　ａ６３　＋　ａ５２　ａ６４　＋　ａ５　ｂ３　＋　ａ３　ｂ５　−　２　ａ４　ａ５　ｂ５　−　ａ５２　ａ６　ｂ５　＋　ａ２　ｂ６　−　ａ４２　ｂ６　＋　ａ３　ａ６　ｂ６　−　３　ａ４　ａ５　ａ６　ｂ６　−　ａ５２　ａ６２　ｂ６
ｅ６，２　＝　−２　ａ３　ａ５　＋　２　ａ４　ａ５２　−　２　ａ２　ａ６　＋　ａ４２　ａ６　＋　２　ａ５３　ａ６　−　３　ａ３　ａ６２　＋　５　ａ４　ａ５　ａ６２　＋　３　ａ５２　ａ６３　＋　２　ａ４　ａ６４　＋　ａ５　ａ６５　＋　ｂ２　＋　ａ６　ｂ３　−　ａ５２　ｂ５　−　ａ４　ａ６　ｂ５　−　ａ５　ａ６２　ｂ５　＋　ａ３　ｂ６　−　ａ４　ａ５　ｂ６　−　ａ５２　ａ６　ｂ６　−　２　ａ４　ａ６２　ｂ６　−　ａ５　ａ６３　ｂ６
ｅ６，３　＝　−ａ５２　−　２　ａ４　ａ６　−　３　ａ５　ａ６２　−　ａ６４　＋　ｂ４　＋　ａ６　ｂ５　＋　ａ５　ｂ６　＋　ａ６２　ｂ６である。
【００５１】
これより、行列Ｍｒの（２，２）成分ｄ＝−ａ５　−　ａ６２　＋　ｂ６が０でなければ、行列Ｍｒは階数３となる。よって、ｄ　≠　０のとき、６　ｘ　１８行列ＭＲの代わりに、その小行列である６　ｘ　３行列のＭｒを用いてよい。ｄ　＝　０となる確率は１／ｑ程度と考えられるので、アルゴリズムの効率を評価するさいにはｄ　≠　０としてよい。上式より、重複をうまく取り除けば、行列Ｍｒは高々４０回の乗算で構成できることがわかる。行列Ｍｒ’に対する行縮約変換は行列Ｍｒがすでに三角行列であり、その（１，１）および（３，３）成分が１であることに注意すると、高々１回の逆数演算と２　ｘ　４　＋　２　ｘ　３　＝　１４回の乗算で実行できることがわかる。以上より、タイプ６１のイデアルを入力としたとき、縮約操作の演算量は高々逆数演算１、乗算５４である。タイプ３１のイデアルを入力としたときも、同様な考察より、縮約操作は高々逆数演算１、乗算１６であることがわかる。
【００５２】
以上まとめると、本発明のヤコビ群加算アルゴリズムの演算量は図１６　のようになる。図１６中Ｉ，Ｍはそれぞれ逆数演算、乗算を表す。楕円曲線上では、（異なる要素の）加算は逆数演算１，乗算３で、２倍算は逆数演算１，乗算４で実行できる。ただし、同じビット長の群を得るには、有限体のビット長はＣ３４曲線の場合の３倍となる。逆数演算の演算量を乗算のそれの２０倍とし、逆数演算や乗算の演算量がビット長の２乗のオーダーであるとすると、Ｃ３４曲線上の加算は楕円曲線上のそれの３０４／（２３　ｘ　９）　≒　１．４７倍、２倍算は３８４／（２４　ｘ　９）　≒１．７８倍で実行できることがわかる。
【００５３】
【発明の実施の形態】
以下に、図面を用いて本発明の実施の形態につき詳細に説明する。図１は本発明の実施の形態の機能ブロック図であり、図２は図１のイデアル合成部の例を示すブロック図である。図３は図１の第一及び第二のイデアル縮約部の例を示すブロック図である。
【００５４】
まず、Ｃ３４曲線を用いた場合の実施例を示す。本実施例では、代数曲線パラメータファイルとして図４の代数曲線パラメータファイルを、イデアル型テーブルとして図５のイデアル型テーブルを、単項式リストテーブルとして図６の単項式リストテーブルを、グレブナ基底構成用テーブルとして図７のグレブナ基底構成用テーブルを用いる。
【００５５】
図１のヤコビ群要素加算装置において、図４の代数曲線パラメータファイルＡ１６および代数曲線パラメータファイルＡ　で指定されたＣ３４曲線のヤコビ群の要素を表す、代数曲線パラメータファイルＡで指定された代数曲線の座標環のイデアルのグレブナ基底
Ｉ１＝｛Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５，　Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７，　Ｙ２　＋　７４６　Ｙ　＋　４２５Ｘ　＋　８６５｝
および
Ｉ２＝｛Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７，　Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１，　Ｙ２　＋　５０６　Ｙ　＋　５２４Ｘ　＋　４９７｝
が入力されたとする。
【００５６】
まず、イデアル合成部１１が、図２に示す機能ブロックの処理の流れにしたがって、上記代数曲線パラメータファイルＡ、上記グレブナ基底Ｉ１およびＩ２を入力として以下のように動作する。まず、イデアル合成装置１１は、図２のイデアル型分類部２１において、図５のイデアル型テーブル２５を参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＩ１の型と一致するレコードを検索し第１４レコードを得て、第１４レコードのイデアル型番号フィールドの値Ｎ１＝３１および位数フィールドの値ｄ１＝３を取得する。
【００５７】
同様に、イデアル型が入力イデアルＩ２の型と一致するレコードを検索し第１４レコードを得て、第１４レコードのイデアル型番号フィールドの値Ｎ２＝３１および位数フィールドの値ｄ２＝３を取得する。
【００５８】
次に、イデアル合成部１１は、単項式ベクトル生成部２２において、前記位数フィールドの値ｄ１＝３およびｄ２＝３の和ｄ３＝ｄ１＋ｄ２＝６を計算し、単項式リストテーブル２６を参照し前記ｄ３＝６を位数フィールドの値に持つレコードを検索し第１レコードを得て、第１レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３，　Ｘ２　Ｙ，　Ｘ　Ｙ２，　Ｘ４を取得する。
【００５９】
Ｉ１とＩ２は異なっているので、前記単項式のリスト１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３，　Ｘ２Ｙ，　Ｘ　Ｙ２，Ｘ４中のそれぞれのＭｉ（１＜＝ｉ＜＝１０）に対して、ＭｉをＩ１で割った剰余を計算し、多項式ａ（ｉ）１　＋　ａ（ｉ）２　Ｘ　＋　ａ（ｉ）３　Ｙを得て、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，・・・の順にならべて、ベクトル（ａ（ｉ）１，ａ（ｉ）２，ａ（ｉ）３）を生成する。さらに、ＭｉをＩ２で割った剰余を計算し、多項式ｂ（ｉ）１　＋　ｂ（ｉ）２　Ｘ　＋　ｂ（ｉ）３　Ｙを得て、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，・・・の順にならべて、ベクトル（ｂ（ｉ）１，ｂ（ｉ）２，ｂ（ｉ）３）を生成し、上記２つのベクトルを連結してベクトルｖｉ＝（ａ（ｉ）１，ａ（ｉ）２，ａ（ｉ）３，ｂ（ｉ）１，ｂ（ｉ）２，ｂ（ｉ）３）を生成する。
【００６０】
すなわち、Ｍ１　＝　１　をＩ１でわると、
１　＝　０・　（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　０・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋０・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　１
となるので、剰余として　１　を得て、ベクトル（１，０，０）を生成する。Ｍ１　＝　１　をＩ２でわると、
１　＝　０・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　０・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　０・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　１
となるので、剰余として　１　を得て、ベクトル（１，０，０）を生成する。これら２つのベクトルを連結して、ベクトルｖ１＝（１，０，０，１，０，０）を生成する。
【００６１】
次に、Ｍ２　＝　ＸをＩ１でわると、
Ｘ　＝　０　・　（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　０・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋０・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　Ｘ
となるので、剰余として　Ｘ　を得て、ベクトル（０，１，０）を生成する。Ｍ２　＝　Ｘ　をＩ２でわると、
１　＝　０・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　０・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　０・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　Ｘ
となるので、剰余として　Ｘ　を得て、ベクトル（０，１，０）を生成する。これら２つのベクトルを連結して、ベクトルｖ２＝（０，１，０，０，１，０）を生成する。
【００６２】
次に、Ｍ３　＝　ＹをＩ１でわると、
Ｙ　＝　０　・　（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　０・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋０・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　Ｙ
となるので、剰余として　Ｙ　を得て、ベクトル（０，０，１）を生成する。Ｍ３　＝　Ｙ　をＩ２でわると、
Ｙ　＝　０・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　０・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　０・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　Ｙ
となるので、剰余として　Ｙ　を得て、ベクトル（０，０，１）を生成する。これら２つのベクトルを連結して、ベクトルｖ３＝（０，０，１，０，０，１）を生成する。
【００６３】
次に、Ｍ４　＝　Ｘ２をＩ１でわると、
Ｘ２　＝　１　・　（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　０・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋０・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　６５４　＋　１７３　Ｘ　＋　２８３　Ｙ
となるので、剰余として　６５４　＋　１７３　Ｘ　＋　２８３　Ｙ　を得て、ベクトル（６５４，　１７３，　２８３）を生成する。Ｍ４　＝　Ｘ２　をＩ２でわると、
Ｘ２　＝　１・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　０・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　０・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　９１２　＋　２２５　Ｘ　＋　１７１　Ｙ
となるので、剰余として　９１２　＋　２２５　Ｘ　＋　１７１　Ｙ　を得て、ベクトル（９１２，　２２５，　１７１）を生成する。これら２つのベクトルを連結して、ベクトルｖ４＝（６５４，　１７３，　２８３，　９１２，　２２５，　１７１）を生成する。
【００６４】
次に、Ｍ５　＝　Ｘ　ＹをＩ１でわると、
Ｘ　Ｙ　＝　０　・　（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　１・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋０・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　５３２　＋　５８１　Ｘ　＋　９７３　Ｙ
となるので、剰余として　５３２　＋　５８１　Ｘ　＋　９７３　Ｙ　を得て、ベクトル（５３２，　５８１，　９７３）を生成する。Ｍ５　＝　Ｘ　Ｙ　をＩ２でわると、
Ｘ　Ｙ　＝　０・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　１・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　０・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　７１８　＋　５５９　Ｘ　＋　４０７　Ｙ
となるので、剰余として　７１８　＋　５５９　Ｘ　＋　４０７　Ｙ　を得て、ベクトル（７１８，５５９，４０７）を生成する。これら２つのベクトルを連結して、ベクトルｖ５＝（５３２，　５８１，　９７３，７１８，５５９，４０７）を生成する。
【００６５】
次に、Ｍ６　＝　Ｙ２　をＩ１でわると、
Ｙ２　＝　０　・　（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　０・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋　１・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　１４４　＋　５８４　Ｘ　＋　２６３　Ｙ
となるので、剰余として　１４４　＋　５８４　Ｘ　＋　２６３　Ｙ　を得て、ベクトル（１４４，５８４，２６３）を生成する。Ｍ６　＝　Ｙ２　をＩ２でわると、
Ｙ２　＝　０・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　０・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　１・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　５１２　＋　４８５　Ｘ　＋　５０３　Ｙ
となるので、剰余として　５１２　＋　４８５　Ｘ　＋　５０３　Ｙ　を得て、ベクトル（５１２，４８５，５０３）を生成する。これら２つのベクトルを連結して、ベクトルｖ６＝（１４４，５８４，２６３，５１２，４８５，５０３）を生成する。
【００６６】
次に、Ｍ７　＝　Ｘ３　をＩ１でわると、
Ｘ３　＝　（１７３　＋　Ｘ）　・　（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　２８３・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋　０・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　３４９　＋　２６９　Ｘ　＋　４２９　Ｙ
となるので、剰余として　３４９　＋　２６９　Ｘ　＋　４２９　Ｙ　を得て、ベクトル（３４９，２６９，４２９）を生成する。Ｍ７　＝　Ｘ３　をＩ２でわると、
Ｘ３　＝　（２２５　＋　Ｘ）・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　１７１・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　０・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　５３　＋　８２１　Ｘ　＋　１０９　Ｙ
となるので、剰余として　５３　＋　８２１　Ｘ　＋　１０９　Ｙ　を得て、ベクトル（５３，８２１，１０９）を生成する。これら２つのベクトルを連結して、ベクトルｖ７＝（３４９，２６９，４２９，５３，８２１，１０９）を生成する。
【００６７】
次に、Ｍ８　＝　Ｘ２　Ｙ　をＩ１でわると、
Ｘ２　Ｙ　＝　Ｙ・（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　１７３・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋２８３・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　６０９　＋　４１８　Ｘ　＋　２４３　Ｙ
となるので、剰余として　６０９　＋　４１８　Ｘ　＋　２４３　Ｙ　を得て、ベクトル（６０９，４１８，２４３）を生成する。Ｍ８　＝　Ｘ２　Ｙ　をＩ２でわると、
Ｘ２　Ｙ　＝　Ｙ・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　２２５・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋１７１・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　８８８　＋　８５６　Ｘ　＋　９１６　Ｙ
となるので、剰余として　８８８　＋　８５６　Ｘ　＋　９１６　Ｙ　を得て、ベクトル（８８８，８５６，９１６）を生成する。これら２つのベクトルを連結して、ベクトルｖ８＝（６０９，４１８，２４３，８８８，８５６，９１６）を生成する。
【００６８】
次に、Ｍ９　＝　Ｘ　Ｙ２　をＩ１でわると、
Ｘ　Ｙ２　＝　０・（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　（５８１＋Ｙ）・（Ｘ　Ｙ　＋　３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋　９７３・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋　１９９　＋　７２０　Ｘ　＋　４１８　Ｙ
となるので、剰余として　１９９　＋　７２０　Ｘ　＋　４１８　Ｙ　を得て、ベクトル（１９９，７２０，４１８）を生成する。Ｍ９　＝　Ｘ　Ｙ２　をＩ２でわると、
Ｘ　Ｙ２　＝　０・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　（５５９＋Ｙ）・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　４０７・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋　３１０　＋　３３１　Ｘ　＋　９１　Ｙ
となるので、剰余として　３１０　＋　３３１　Ｘ　＋　９１　Ｙ　を得て、ベクトル（３１０，３３１，９１）を生成する。これら２つのベクトルを連結して、ベクトルｖ９＝（１９９，７２０，４１８，３１０，３３１，９１）を生成する。
【００６９】
次に、Ｍ１０　＝　Ｘ４　をＩ１でわると、
Ｘ４　＝　（３１３　＋　１７３　Ｘ　＋　Ｘ２　＋　２８３　Ｙ）・（Ｘ２　＋　７２６　Ｙ　＋　８３６　Ｘ　＋　３５５）　＋　４５・（Ｘ　Ｙ　＋３６　Ｙ　＋　４２８　Ｘ　＋　４７７）　＋　３７８・（Ｙ２　＋　７４６　Ｙ　＋　４２５　Ｘ　＋　８６５）　＋５５４　＋　４９８　Ｘ　＋　１４３　Ｙ
となるので、剰余として　５５４　＋　４９８　Ｘ　＋　１４３　Ｙ　を得て、ベクトル（５５４，４９８，１４３）を生成する。Ｍ１０　＝　Ｘ４　をＩ２でわると、
Ｘ４　＝　（７８　＋　２２５　Ｘ　＋　Ｘ２　＋　１７１　Ｙ）・（Ｘ２　＋　８３８　Ｙ　＋　７８４　Ｘ　＋　９７）　＋　２６６・（Ｘ　Ｙ　＋　６０２　Ｙ　＋　４５０　Ｘ　＋　２９１）　＋　９８９・（Ｙ２　＋　５０６　Ｙ　＋　５２４　Ｘ　＋　４９７）　＋６４３　＋　５２２　Ｘ　＋　１０７　Ｙ
となるので、剰余として　６４３　＋　５２２　Ｘ　＋　１０７　Ｙ　を得て、ベクトル（６４３，５２２，１０７）を生成する。これら２つのベクトルを連結して、ベクトルｖ１０＝（５５４，４９８，１４３，６４３，５２２，１０７）を生成する。以上で、イデアル合成部１１の、単項式ベクトル生成部２２における処理を終了する。
【００７０】
次に、イデアル合成部１１は、基底構成部２３において、単項式ベクトル生成部２２で生成した、１０個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８，ｖ９，ｖ１０を線形関係導出部２４に入力し、出力として複数の１０次元ベクトルｍ１，ｍ２，．．．を得る。線形関係導出部２４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術であるので、以下、線形関係導出部２４の動作はその概略のみ示す。
【００７１】
線形関係導出部２４は、まず、入力された１０個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８，ｖ９，ｖ１０を順に並べて１０ｘ６行列
【数１１】
2004077948.tif 000013
を構成する。
【００７２】
次に、線形関係導出部２４は、行列ＭＣに１０次元の単位行列を連結し、
【数１２】
2004077948.tif 000014
を得る。
【００７３】
次に、線形関係導出部２４は、ｉ行目の定数倍をｉ＋１行目から１０行目に加えることで（ｉ＝１，２，．．．，６）、行列Ｍ’Ｃを三角化し以下の行列ｍを得る。
【数１３】
2004077948.tif 000015
【００７４】
よく知られているように行列ｍの７から１０行目の第７成分以降よりなるベクトルは、入力された１０個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８，ｖ９，ｖ１０の全ての１次独立な線形従属関係Σｉ１０　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，ｎ），（ｍ２，１，ｍ２，２，．．．，ｍ２，ｎ），．．．｝である。線形関係導出部２４は、行列ｍの７行目の第７成分以降よりなるベクトルｍ１＝（２８，　１３２，　３１，　２７１，　４６９，　１６６，　１，　０，　０，　０）、行列ｍの８行目の第７成分以降よりなるベクトルｍ２＝（８５６，　６１８，　７４７，　９０９，　１３２，　６３６，　０，　１，　０，　０）、行列ｍの９行目の第７成分以降よりなるベクトルｍ３＝（６５２，　３２２，　２４０，　９７８，　８２６，　８４６，　０，　０，　１，　０）および行列ｍの１０行目の第７成分以降よりなるベクトルｍ４＝（３３３，　３４６，　９８０，　９３５，　８２４，　６１４，　０，　０，　０，　１）を出力する。
イデアル合成部１１の基底構成部２３における処理の説明に戻る。
【００７５】
次に、イデアル合成装置１１は、図７のグレブナ基底構成用テーブル２７を参照し前記値ｄ３＝６を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１＝（２８，　１３２，　３１，　２７１，　４６９，　１６６，　１，　０，　０，　０），　ｍ２＝（８５６，　６１８，　７４７，　９０９，　１３２，　６３６，　０，　１，　０，　０）、ｍ３＝（６５２，　３２２，　２４０，　９７８，　８２６，　８４６，　０，　０，　１，　０）およびｍ４＝（３３３，　３４６，　９８０，　９３５，　８２４，　６１４，　０，　０，　０，　１）　中に存在しないレコードを検索する。第１レコードの位数フィールドの値は６であり、第１レコードの成分番号リスト７，８，９，１０がすべて０であるベクトルはｍ１，ｍ２，ｍ３，ｍ４には存在していないので、検索結果として第１レコードが得られる。
【００７６】
さらに第１レコードの第一ベクトル型の値は（＊，＊，＊，＊，＊，＊，１，０，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（２８，　１３２，　３１，　２７１，　４６９，　１６６，　１，　０，　０，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３，　Ｘ２　Ｙ，　Ｘ　Ｙ２，　Ｘ４の各単項式の係数の列とみなし、多項式ｆ１＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３を生成する。
【００７７】
同様にして、第１レコードの第二ベクトル型の値は（＊，＊，＊，＊，＊，＊，０，１，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（８５６，　６１８，　７４７，　９０９，　１３２，　６３６，　０，　１，　０，　０）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３，　Ｘ２　Ｙ，　Ｘ　Ｙ２，　Ｘ４の各単項式の係数の列とみなし、
多項式ｆ２＝８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙ
を生成する。
【００７８】
同様にして、第１レコードの第三ベクトル型の値は（＊，＊，＊，＊，＊，＊，０，０，１，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ３＝（６５２，　３２２，　２４０，　９７８，　８２６，　８４６，　０，　０，　１，　０）と合致するので、ベクトルｍ３を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３，　Ｘ２　Ｙ，　Ｘ　Ｙ２，　Ｘ４の各単項式の係数の列とみなし、多項式ｆ３＝６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２を生成する。最後に、イデアル合成部１１は、多項式の集合Ｊ＝｛ｆ１，ｆ２，ｆ３｝を構成し、出力する。以上で、イデアル合成部１１の動作は終了する。
【００７９】
次に、第一のイデアル縮約部１２が、図３に示す機能ブロックの処理の流れにしたがって、図４の代数曲線パラメータファイルＡおよびイデアル合成部１１が出力したグレブナ基底
Ｊ＝｛２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３，
８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙ，
６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２｝
を入力として以下のように動作する。
【００８０】
まず、イデアル縮約部１２は、図３のイデアル型分類部３１において、図５のイデアル型テーブル３５を参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＪの型と一致するレコードを検索し第１レコードを得て、第１レコードのイデアル型番号フィールドの値Ｎ＝６１および縮約位数フィールドの値ｄ＝３を取得する。次に、イデアル縮約部１２は、前記ｄ＝３が０でないことを確認し、多項式ベクトル生成部３２において、単項式リストテーブル３６を参照し前記ｄ＝３を位数フィールドの値に持つレコードを検索し第４レコードを得て、第４レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３を取得する。
【００８１】
さらに、イデアル縮約部１２は、多項式ベクトル生成部３２において、
Ｊの第１要素ｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３、
第２要素ｇ＝８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙおよび
第３要素ｈ＝６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２を取得し、代数曲線パラメータファイルＡの係数リスト０，７，０，０，０，０，０，０，０，１，１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３，　Ｘ２　Ｙ，　Ｘ　Ｙ２，　Ｘ４，Ｙ３の各単項式の係数の列とみなして、定義多項式Ｆ＝Ｙ３＋Ｘ４＋７Ｘを生成する。
【００８２】
次に、イデアル縮約部１２は、多項式ベクトル生成部３２において、前記単項式のリスト１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３中のそれぞれのＭｉ（１＜＝ｉ＜＝７）に対して、Ｍｉと多項式ｇの積Ｍｉ・ｇの、多項式ｆおよびＦによる剰余式ｒｉを計算し、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，・・・の順にならべて、ベクトルｗ（ｉ）１を生成する。さらに、Ｍｉと多項式ｈの積Ｍｉ・ｈの、多項式ｆおよびＦによる剰余式ｓｉを計算し、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，・・・の順にならべて、ベクトルｗ（ｉ）２を生成し、上記２つのベクトルｗ（ｉ）１とｗ（ｉ）２を連結してベクトルｖｉを生成する。
【００８３】
すなわち、まず、第一番目の単項式Ｍ１＝１に対して、
１　・　ｇ　＝　８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙを
ｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、ｇ　＝　０　・　ｆ　＋　０・Ｆ　＋　８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙとなるので、剰余８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙを得て、ベクトルｗ（１）１＝（８５６，　６１８，　７４７，　９０９，　１３２，　６３６，　１，　０，　０）を生成する。
【００８４】
また、１・ｈ＝６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、ｈ　＝　０・ｆ　＋　０・Ｆ　＋　６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２となるので、剰余６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２を得て、ベクトルｗ（１）２＝（６５２，　３２２，　２４０，　９７８，　８２６，　８４６，　０，　１，　０）を生成する。そして、ベクトルｗ（１）１とｗ（１）２を連結して、ベクトルｖ１＝（８５６，　６１８，　７４７，　９０９，　１３２，　６３６，　１，　０，　０，　６５２，　３２２，　２４０，　９７８，　８２６，　８４６，　０，　１，　０）を得る。
【００８５】
次に、第二番目の単項式Ｍ２＝Ｘに対して、Ｘ　ｇ　＝　Ｘ　（８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙ）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ　ｇ　＝　（３１９　＋　１６６　Ｘ　＋　Ｙ）　ｆ　＋　８４３　Ｆ　＋　１４９　＋　６６７　Ｘ　＋　２２０　Ｘ２　＋　１７３　Ｙ　＋　２３５　Ｘ　Ｙ　＋　７０９　Ｘ２　Ｙ　＋　４９２　Ｙ２　＋　８６３　Ｘ　Ｙ２となるので、剰余１４９　＋　６６７　Ｘ　＋　２２０　Ｘ２　＋　１７３　Ｙ　＋　２３５　Ｘ　Ｙ　＋　７０９　Ｘ２　Ｙ　＋　４９２　Ｙ２＋　８６３　Ｘ　Ｙ２を得て、ベクトルｗ（２）１＝（１４９，　６６７，　１７３，２２０，　２３５，　４９２，　７０９，　８６３，０）を生成する。
【００８６】
また、Ｘ　ｈ＝Ｘ　（６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ　ｈ　＝　９７８　ｆ　＋　０・Ｆ　＋　８６８　＋　７０８　Ｘ　＋　６５１　Ｘ２　＋　９６１　Ｙ　＋　６５３　Ｘ　Ｙ　＋　８２６　Ｘ２Ｙ　＋　１０１　Ｙ２　＋　８４６　Ｘ　Ｙ２　＋　Ｘ２　Ｙ２となるので、剰余８６８　＋　７０８　Ｘ　＋　６５１　Ｘ２　＋　９６１Ｙ　＋　６５３　Ｘ　Ｙ　＋　８２６　Ｘ２　Ｙ　＋　１０１　Ｙ２　＋　８４６　Ｘ　Ｙ２　＋　Ｘ２　Ｙ２を得て、ベクトルｗ（２）２＝（８６８，７０８，９６１，６５１，６５３，１０１，８２６，８４６，１）を生成する。そして、ベクトルｗ（２）１とｗ（２）２を連結して、ベクトルｖ２＝（１４９，　６６７，　１７３，２２０，　２３５，　４９２，　７０９，　８６３，０，８６８，７０８，９６１，６５１，６５３，１０１，８２６，８４６，１）を得る。
【００８７】
次に、第三番目の単項式Ｍ３＝Ｙに対して、Ｙ　ｇ　＝　Ｙ　（８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙ）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｙ　ｇ　＝　（８２６　＋　３７３　Ｘ）　ｆ　＋　６３６　Ｆ　＋　７９　＋１７９　Ｘ　＋　３５７　Ｘ２　＋　４７５　Ｙ　＋　２１６　Ｘ　Ｙ　＋　５２９　Ｘ２　Ｙ　＋　８５５　Ｙ２　＋　７７２　Ｘ　Ｙ２　＋　Ｘ２　Ｙ２となるので、剰余７９　＋　１７９　Ｘ　＋　３５７　Ｘ２　＋　４７５　Ｙ　＋　２１６　Ｘ　Ｙ　＋　５２９　Ｘ２　Ｙ　＋　８５５　Ｙ２　＋　７７２　Ｘ　Ｙ２　＋　Ｘ２　Ｙ２を得て、ベクトルｗ（３）１＝（７９，１７９，４７５，３５７，２１６，８５５，５２９，７７２，１）を生成する。
【００８８】
また、Ｙ　ｈ　＝Ｙ　（６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｙ　ｈ　＝　（３２７　＋　５９５　Ｘ　＋　１００８　Ｘ２　＋　４６９　Ｙ）　ｆ　＋　（６８５　＋　Ｘ）　Ｆ　＋　９３４　＋　９６６　Ｘ　＋　３５８　Ｘ２　＋　５９０　Ｙ　＋　６９４　Ｘ　Ｙ　＋　４７３　Ｘ２　Ｙ　＋　３１　Ｙ２　＋　９３９　Ｘ　Ｙ２　＋　１６６　Ｘ２　Ｙ２となるので、剰余９３４　＋　９６６　Ｘ　＋　３５８　Ｘ２　＋　５９０　Ｙ　＋　６９４　Ｘ　Ｙ　＋　４７３　Ｘ２　Ｙ　＋　３１　Ｙ２　＋　９３９　Ｘ　Ｙ２　＋　１６６　Ｘ２　Ｙ２を得てベクトルｗ（３）２＝（９３４，９６６，５９０，３５８，６９４，３１，４７３，９３９，１６６）を生成するそして、ベクトルｗ（３）１とｗ（３）２を連結して、ベクトルｖ３＝（７９，１７９，４７５，３５７，２１６，８５５，５２９，７７２，１，９３４，９６６，５９０，３５８，６９４，３１，４７３，９３９，１６６）を得る。
【００８９】
次に、第四番目の単項式Ｍ４＝　Ｘ２に対して、Ｘ２　ｇ　＝　Ｘ２　（８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙ）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ２　ｇ　＝　（６４５　＋　９６９　Ｘ　＋　１６６　Ｘ２　＋　７０９　Ｙ　＋　Ｘ　Ｙ）　ｆ　＋　（３５９　＋　８４３　Ｘ）　Ｆ　＋１０２　＋　２４１　Ｘ　＋　３９４　Ｘ２　＋　５１３　Ｙ　＋　６４７　Ｘ　Ｙ　＋　６８３　Ｘ２　Ｙ　＋　１０３　Ｙ２　＋　１００４　Ｘ　Ｙ２　＋　８６３　Ｘ２　Ｙ２となるので、剰余１０２　＋　２４１　Ｘ　＋　３９４　Ｘ２　＋　５１３　Ｙ　＋　６４７　Ｘ　Ｙ　＋　６８３　Ｘ２　Ｙ　＋　１０３　Ｙ２　＋　１００４　Ｘ　Ｙ２　＋　８６３　Ｘ２　Ｙ２を得て、ベクトルｗ（４）１＝（１０２，２４１，５１３，３９４，６４７，１０３，６８３，１００４，８６３）を生成する。
【００９０】
また、Ｘ２　ｈ　＝　Ｘ２　（６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ２　ｈ　＝　（７２５　＋　１６　Ｘ　＋　７８２　Ｘ２　＋　７５４　Ｙ　＋　１６６　Ｘ　Ｙ　＋　Ｙ２）　ｆ　＋　（９３０　＋　２２７　Ｘ　＋　８４３　Ｙ）　Ｆ　＋８８９　＋　２６０　Ｘ　＋　５６０　Ｘ２　＋　８０９　Ｙ　＋　４２５　Ｘ　Ｙ　＋　５５２　Ｘ２　Ｙ　＋　５３５Ｙ２　＋　６７１　Ｘ　Ｙ２　＋　７６３　Ｘ２　Ｙ２となるので、剰余８８９　＋　２６０　Ｘ　＋　５６０　Ｘ２　＋　８０９　Ｙ　＋４２５　Ｘ　Ｙ　＋　５５２　Ｘ２　Ｙ　＋　５３５　Ｙ２　＋　６７１　Ｘ　Ｙ２　＋　７６３　Ｘ２　Ｙ２を得て、ベクトルｗ（４）２＝（８８９，　２６０，　８０９，　５６０，　４２５，　５３５，　５５２，　６７１，　７６３）を生成する。そして、ベクトルｗ（４）１とｗ（４）２を連結して、ベクトルｖ４＝（１０２，２４１，５１３，３９４，６４７，１０３，６８３，１００４，８６３，８８９，　２６０，　８０９，　５６０，　４２５，　５３５，　５５２，　６７１，　７６３）を得る。
【００９１】
次に、第五番目の単項式Ｍ５＝　Ｘ　Ｙに対して、Ｘ　Ｙ　ｇ　＝　Ｘ　Ｙ　（８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙ）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ　Ｙ　ｇ　＝　（９５　＋　３　Ｘ　＋　１４６　Ｘ２　＋　４５７　Ｙ　＋　１６６　Ｘ　Ｙ　＋　Ｙ２）　ｆ　＋　（７９１　＋　８６３　Ｘ　＋　８４３　Ｙ）　Ｆ　＋３６７　＋　Ｘ　＋　５４　Ｘ２　＋　４０３Ｙ　＋　３６１　Ｘ　Ｙ　＋　２７６　Ｘ２　Ｙ　＋　３０５　Ｙ２　＋　６００　Ｘ　Ｙ２　＋　６８９　Ｘ２　Ｙ２となるので、剰余３６７　＋　Ｘ　＋　５４　Ｘ２　＋　４０３　Ｙ　＋　３６１　Ｘ　Ｙ　＋　２７６　Ｘ２　Ｙ　＋　３０５　Ｙ２　＋　６００　Ｘ　Ｙ２　＋　６８９　Ｘ２Ｙ２を得て、ベクトルｗ（５）１＝（３６７，１，４０３，５４，３６１，３０５，２７６，６００，６８９）を生成する。
【００９２】
また、Ｘ　Ｙ　ｈ　＝　Ｘ　Ｙ　（６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ　Ｙ　ｈ　＝　（８０４　＋　６４８　Ｘ　＋　２４６　Ｘ２　＋　１００８　Ｘ３　＋　６２９　Ｙ　＋　７８２　Ｘ　Ｙ　＋　１６６　Ｙ２）　ｆ　＋　（４２１　＋　２５　Ｘ　＋　Ｘ２　＋　６９６　Ｙ）　Ｆ　＋６９５　＋　９２４　Ｘ　＋　２８９　Ｘ２　＋　８５１　Ｙ　＋　２１０　Ｘ　Ｙ　＋　３２１　Ｘ２　Ｙ　＋　８０２　Ｙ２　＋　５２２　Ｘ　Ｙ２　＋　２７８　Ｘ２　Ｙ２となるので、剰余６９５　＋　９２４　Ｘ　＋　２８９　Ｘ２　＋　８５１　Ｙ　＋　２１０　Ｘ　Ｙ　＋　３２１　Ｘ２　Ｙ　＋　８０２　Ｙ２　＋　５２２　Ｘ　Ｙ２　＋　２７８　Ｘ２　Ｙ２を得て、ベクトルｗ（５）２＝（６９５，９２４，８５１，２８９，２１０，８０２，３２１，５２２，２７８）を生成する。そして、ベクトルｗ（５）１とｗ（５）２を連結して、ベクトルｖ５＝（３６７，１，４０３，５４，３６１，３０５，２７６，６００，６８９，６９５，９２４，８５１，２８９，２１０，８０２，３２１，５２２，２７８）を得る。
【００９３】
次に、第六番目の単項式Ｍ６＝　Ｙ２に対して、Ｙ２　ｇ　＝　Ｙ２　（８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋　９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙ）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｙ２　ｇ　＝　（６８７　＋　２１４　Ｘ　＋　３２０　Ｘ２　＋　１００８　Ｘ３　＋　７７　Ｙ　＋　１４６　Ｘ　Ｙ　＋　１６６　Ｙ２）　ｆ　＋　（９８１　＋　９６０　Ｘ　＋　Ｘ２　＋　３２３　Ｙ）　Ｆ　＋９４４　＋　３８４　Ｘ　＋　９５６　Ｘ２　＋　７６３　Ｙ　＋　７３７　Ｘ　Ｙ　＋　９２５　Ｘ２　Ｙ　＋　８５９　Ｙ２　＋　４１６　Ｘ　Ｙ２　＋　８１４　Ｘ２　Ｙ２となるので、剰余９４４　＋　３８４　Ｘ　＋　９５６　Ｘ２　＋　７６３　Ｙ　＋　７３７　Ｘ　Ｙ　＋　９２５　Ｘ２　Ｙ　＋８５９　Ｙ２　＋　４１６　Ｘ　Ｙ２　＋　８１４　Ｘ２　Ｙ２を得て、ベクトルｗ（６）１＝（９４４，　３８４，　７６３，　９５６，７３７，　８５９，　９２５，　４１６，　８１４）を生成する。
【００９４】
また、Ｙ２　ｈ　＝　Ｙ２　（６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｙ２　ｈ　＝　（２６０　＋　１７　Ｘ　＋　７３１　Ｘ２　＋　８４３　Ｘ３　＋　３８２　Ｙ　＋　２４６　Ｘ　Ｙ　＋　１００８　Ｘ２Ｙ　＋　７８２　Ｙ２）　ｆ　（３６９　＋　８６８　Ｘ　＋　１６６　Ｘ２　＋　１８６　Ｙ　＋　Ｘ　Ｙ）　Ｆ　＋７９２　＋　９６３　Ｘ　＋　６４３Ｘ２　＋　４１５　Ｙ　＋　５３９　Ｘ　Ｙ　＋　８８７　Ｘ２　Ｙ　＋　４３８　Ｙ２　＋　１０２　Ｘ　Ｙ２　＋　３６３　Ｘ２　Ｙ２となるので、剰余７９２　＋　９６３　Ｘ　＋　６４３　Ｘ２　＋　４１５　Ｙ　＋　５３９　Ｘ　Ｙ　＋　８８７　Ｘ２　Ｙ　＋　４３８　Ｙ２　＋　１０２Ｘ　Ｙ２　＋　３６３　Ｘ２　Ｙ２を得て、ベクトルｗ（６）２＝（７９２，　９６３，　４１５，　６４３，　５３９，　４３８，　８８７，　１０２，　３６３）を生成する。そして、ベクトルｗ（６）１とｗ（６）２を連結して、ベクトルｖ６＝（９４４，　３８４，　７６３，　９５６，　７３７，　８５９，　９２５，　４１６，　８１４，７９２，　９６３，　４１５，　６４３，　５３９，４３８，　８８７，　１０２，　３６３）を得る。
【００９５】
最後に、第七番目の単項式Ｍ７＝　Ｘ３に対して、Ｘ３　ｇ　＝　Ｘ３　（８５６　＋　６１８　Ｘ　＋　７４７　Ｙ　＋９０９　Ｘ２　＋　１３２　Ｘ　Ｙ　＋　６３６　Ｙ２　＋　Ｘ２　Ｙ）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　ＸＹ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ３　ｇ　＝　（３２３　＋　５８３　Ｘ　＋　８１４　Ｘ２　＋１６６　Ｘ３　＋　９６　Ｙ　＋　６８９　Ｘ　Ｙ　＋　Ｘ２　Ｙ　＋　８６３　Ｙ２）　ｆ　＋　（６９８　＋　５１４　Ｘ　＋　８４３　Ｘ２　＋　２０Ｙ）　Ｆ　＋３７　＋　７３０　Ｘ　＋　８３１　Ｘ２　＋　４１６　Ｙ　＋　１３６　Ｘ　Ｙ　＋　５５　Ｘ２　Ｙ　＋　９７１　Ｙ２　＋　３９８　Ｘ　Ｙ２　＋　５　Ｘ２　Ｙ２となるので、剰余３７　＋　７３０　Ｘ　＋　８３１　Ｘ２　＋　４１６　Ｙ　＋　１３６　Ｘ　Ｙ　＋　５５　Ｘ２　Ｙ　＋　９７１　Ｙ２　＋　３９８　Ｘ　Ｙ２　＋　５　Ｘ２　Ｙ２を得て、ベクトルｗ（７）１＝（３７，７３０，４１６，８３１，１３６，９７１，５５，３９８，５）を生成する。
【００９６】
また、Ｘ３　ｈ　＝　Ｘ３　（６５２　＋　３２２　Ｘ　＋　２４０　Ｙ　＋　９７８　Ｘ２　＋　８２６　Ｘ　Ｙ　＋　８４６　Ｙ２　＋　Ｘ　Ｙ２）をｆ＝２８　＋　１３２　Ｘ　＋　３１　Ｙ　＋　２７１　Ｘ２　＋　４６９　Ｘ　Ｙ　＋　１６６　Ｙ２　＋　Ｘ３およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ３　ｈ　＝　（４４９　＋　７５０　Ｘ　＋　３６３　Ｘ２　＋　７８２　Ｘ３　＋　１０２　Ｙ　＋　２７８　Ｘ　Ｙ　＋　１６６　Ｘ２Ｙ　＋　７６３　Ｙ２　＋　Ｘ　Ｙ２）　ｆ　＋（７８４　＋　５８３　Ｘ　＋　２２７　Ｘ２　＋　４７６　Ｙ　＋　８４３　Ｘ　Ｙ）　Ｆ　＋５４５　＋９　Ｘ　＋　１７３　Ｘ２　＋　３７８　Ｙ　＋　９０２　Ｘ　Ｙ　＋　１６　Ｘ２　Ｙ　＋　８３１　Ｙ２　＋　８２０　Ｘ　Ｙ２　＋　９０９　Ｘ２　Ｙ２となるので、剰余５４５　＋　９　Ｘ　＋　１７３　Ｘ２　＋　３７８　Ｙ　＋　９０２　Ｘ　Ｙ　＋　１６　Ｘ２　Ｙ　＋　８３１　Ｙ２＋　８２０　Ｘ　Ｙ２　＋　９０９　Ｘ２　Ｙ２を得て、ベクトルｗ（７）２＝（５４５，９，３７８，１７３，９０２，８３１，１６，８２０，９０９）を生成する。そして、ベクトルｗ（７）１とｗ（７）２を連結して、ベクトルｖ７＝（３７，７３０，４１６，８３１，１３６，９７１，５５，３９８，５，　５４５，９，３７８，１７３，９０２，８３１，１６，８２０，９０９）を得る。以上で、第一のイデアル縮約部１２の、多項式ベクトル生成部３２における処理を終了する。
【００９７】
次に、第一のイデアル縮約部１２は、基底構成部３３において、多項式ベクトル生成部３２で生成した、７個の１８次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を線形関係導部３４に入力し、出力として複数の７次元ベクトルｍ１，ｍ２，．．．を得る。線形関係導出部３４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術に属するので、以下、線形関係導出装置３４の動作はその概略のみ示す。
【００９８】
線形関係導出部３４は、まず、入力された７個の１８次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を順に並べて７ｘ１８行列
【数１４】
2004077948.tif 000016
を構成する。
【００９９】
次に、線形関係導出装置３４は、行列ＭＲに７次元の単位行列を連結し、
【数１５】
2004077948.tif 000017
を構成する。
【０１００】
次に、線形関係導出装置３４は、ｉ行目の定数倍をｉ＋１行目から７行目に加えることで（ｉ＝１，２，３）、行列Ｍ’Ｒを三角化し以下の行列ｍを得る。
【０１０１】
【数１６】
2004077948.tif 000018
よく知られているように行列ｍの４から７行目の第１９成分以降よりなるベクトルは、入力された７個の１８次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７の全ての１次独立な線形従属関係Σｉ７　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，７），（ｍ２，１，ｍ２，２，．．．，ｍ２，７），．．．｝である。線形関係導出部３４は、行列ｍの４行目の第１９成分以降よりなるベクトルｍ１＝（９８２，　２２６，　１４６，　１，　０，　０，　０）、行列ｍの５行目の第１９成分以降よりなるベクトルｍ２＝（４４９，　７９，　３２０，　０，　１，　０，　０）、行列ｍの６行目の第１９成分以降よりなるベクトルｍ３＝（５４４，　５６４，　１９５，　０，　０，　１，　０）および行列ｍの７行目の第１９成分以降よりなるベクトルｍ４＝　（７９，　９３０，　１００４，　０，　０，　０，　１）を出力する。
【０１０２】
第一のイデアル縮約部１２の基底構成部３３における処理の説明に戻る。次に、このイデアル縮約部１２は、図７のグレブナ基底構成用テーブル３７を参照し前記値ｄ＝３を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１＝（９８２，　２２６，　１４６，　１，　０，　０，　０），　ｍ２＝（４４９，　７９，　３２０，　０，　１，　０，　０）、ｍ３＝（５４４，　５６４，　１９５，　０，　０，　１，　０）およびｍ４＝（７９，　９３０，　１００４，　０，　０，　０，　１）　中に存在しないレコードを検索する。第１４レコードの位数フィールドの値は３であり、第１４レコードの成分番号リスト４，５，６，７に対応する成分がすべて０であるベクトルはｍ１，ｍ２，ｍ３，ｍ４には存在していないので、検索結果として第１４レコードが得られる。
【０１０３】
さらに、第１４レコードの第一ベクトル型の値は（＊，＊，＊，１，０，０，０）　であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（９８２，　２２６，　１４６，　１，　０，　０，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３の各単項式の係数の列とみなし、多項式ｆ１＝９８２　＋　２２６　Ｘ
＋　１４６　Ｙ　＋　Ｘ２を生成する。
【０１０４】
同様にして、第１４レコードの第二ベクトル型の値は（＊，＊，＊，０，１，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（４４９，　７９，　３２０，　０，　１，　０，０）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３の各単項式の係数の列とみなし、多項式ｆ２＝４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙを生成する。
【０１０５】
同様にして、第１４レコードの第三ベクトル型の値は（＊，＊，＊，０，０，１，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ３＝（５４４，　５６４，　１９５，　０，　０，　１，　０）と合致するので、ベクトルｍ３を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３の各単項式の係数の列とみなし、多項式ｆ３＝５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２を生成する。
【０１０６】
最後に、イデアル縮約部１２は、多項式の集合
Ｊ＊＝｛ｆ１＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２，　ｆ２＝４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙ，　ｆ３＝５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２｝
を構成し、出力する。以上で、第一のイデアル縮約部１２の動作は終了する。
【０１０７】
次に、第二のイデアル縮約部１３が、図３に示す機能ブロック処理の流れに従って、図４の代数曲線パラメータファイルＡ３０および第一のイデアル縮約部１２が出力したグレブナ基底
Ｊ＊＝　｛９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２，　４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙ，　５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２｝
を入力として以下のように動作する。まず、第二のイデアル縮約部１３は、図３のイデアル型分類部３１において、図５のイデアル型テーブル３５を参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＪ＊の型と一致するレコードを検索し第１４レコードを得て、第１４レコードのイデアル型番号フィールドの値Ｎ＝３１および縮約位数フィールドの値ｄ＝３を取得する。
【０１０８】
次に、イデアル縮約部１３は、前記ｄ＝３が０でないことを確認し、多項式ベクトル生成部３２において、単項式リストテーブル３６を参照し前記ｄ＝３を位数フィールドの値に持つレコードを検索し第４レコードを得て、第４レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３を取得する。さらに、イデアル縮約部１３は、Ｊ＊の第１要素ｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２、第２要素ｇ＝４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙおよび第３要素ｈ＝５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２を取得し、代数曲線パラメータファイルＡの係数リスト０，７，０，０，０，０，０，０，０，１，１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３，　Ｘ２　Ｙ，　Ｘ　Ｙ２，　Ｘ４，Ｙ３の各単項式の係数の列とみなして、定義多項式Ｆ＝Ｙ３＋Ｘ４＋７Ｘを生成する。
【０１０９】
次に、イデアル縮約部１３は、前記単項式のリスト１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３中のそれぞれのＭｉ（１＜＝ｉ＜＝７）に対して、Ｍｉと多項式ｇの積Ｍｉ　ｇの、多項式ｆおよびＦによる剰余式ｒｉを計算し、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，・・・の順にならべて、ベクトルｗ（ｉ）１を生成する。さらに、Ｍｉと多項式ｈの積Ｍｉ　ｈの、多項式ｆおよびＦによる剰余式ｓｉを計算し、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，・・・の順にならべて、ベクトルｗ（ｉ）２を生成し、上記２つのベクトルｗ（ｉ）１とｗ（ｉ）２を連結してベクトルｖｉを生成する。
【０１１０】
すなわち、まず、第一番目の単項式Ｍ１＝１に対して、１・ｇ　＝　４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙをｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、ｇ　＝　０・ｆ　＋　０・Ｆ　＋　４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙとなるので、剰余４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙを得て、ベクトルｗ（１）１＝（４４９，　７９，　３２０，　１，０，０）を生成する。また、１・ｈ＝５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、ｈ　＝　０・ｆ　＋　０・Ｆ　＋　５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２
となるので、剰余５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２を得て、ベクトルｗ（１）２＝（５４４，　５６４，１９５，　０，１，０）を生成する。そして、ベクトルｗ（１）１とｗ（１）２を連結して、ベクトルｖ１＝（４４９，　７９，　３２０，　１，０，０，　５４４，　５６４，　１９５，　０，１，０）を得る。
【０１１１】
次に、第二番目の単項式Ｍ２＝Ｘに対して、Ｘ　ｇ　＝　Ｘ　（４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙ）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ　ｇ　＝　（７９　＋　Ｙ）　ｆ　＋　０・Ｆ　＋　１１５　＋　７５７　Ｘ　＋　６０１　Ｙ　＋　９４　Ｘ　Ｙ　＋　８６３　Ｙ２となるので、剰余１１５　＋　７５７　Ｘ　＋６０１　Ｙ　＋　９４　Ｘ　Ｙ　＋　８６３　Ｙ２を得て、ベクトルｗ（２）１＝（１１５，７５７，６０１，９４，８６３，０）を生成する。
【０１１２】
また、Ｘ　ｈ＝Ｘ　（５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ　ｈ　＝　５６４　ｆ　＋　０・Ｆ　＋　９３　＋　２１４　Ｘ　＋　３９４　Ｙ　＋　１９５　Ｘ　Ｙ　＋　Ｘ　Ｙ２となるので、剰余９３　＋　２１４　Ｘ　＋　３９４　Ｙ　＋　１９５　Ｘ　Ｙ　＋　Ｘ　Ｙ２を得て、ベクトルｗ（２）２＝（９３，　２１４，　３９４，　１９５，　０，　１）を生成する。そして、ベクトルｗ（２）１とｗ（２）２を連結して、ベクトルｖ２＝（１１５，７５７，６０１，９４，８６３，０，　９３，　２１４，　３９４，　１９５，　０，　１）を得る。
【０１１３】
次に、第三番目の単項式Ｍ３＝Ｙに対して、Ｙ　ｇ　＝　Ｙ　（４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙ）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｙ　ｇ　＝　０・ｆ　＋　０・Ｆ　＋　４４９　Ｙ　＋　７９　Ｘ　Ｙ　＋　３２０　Ｙ２　＋　Ｘ　Ｙ２となるので、剰余４４９　Ｙ　＋　７９　Ｘ　Ｙ　＋　３２０　Ｙ２　＋　Ｘ　Ｙ２を得て、ベクトルｗ（３）１＝（０，　０，　４４９，　７９，　３２０，　１）を生成する。
【０１１４】
また、Ｙ　ｈ　＝Ｙ　（５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｙ　ｈ　＝　（３５６　＋　２２６　Ｘ　＋　１００８　Ｘ２　＋　１４６　Ｙ）　ｆ　＋　１・Ｆ　＋　５３１　＋　３０５　Ｘ　＋　９４２　Ｙ　＋　１５７　Ｘ　Ｙ　＋　６８　Ｙ２となるので、剰余５３１　＋　３０５　Ｘ　＋　９４２　Ｙ　＋　１５７　Ｘ　Ｙ　＋　６８　Ｙ２を得て、ベクトルｗ（３）２＝（５３１，　３０５，　９４２，　１５７，　６８，　０）を生成する。そして、ベクトルｗ（３）１とｗ（３）２を連結して、ベクトルｖ３＝（０，　０，　４４９，　７９，３２０，　１，　５３１，　３０５，　９４２，　１５７，　６８，　０）を得る。
【０１１５】
次に、第四番目の単項式Ｍ４＝Ｘ２に対して、Ｘ２　ｇ　＝　Ｘ２　（４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙ）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ２　ｇ　＝　（７５７　＋　７９　Ｘ　＋　９４　Ｙ　＋　Ｘ　Ｙ）　ｆ　＋　０・Ｆ　＋　２５９　＋　５６３　Ｘ　＋　９８８　Ｙ　＋　５４６　Ｘ　Ｙ　＋　４０２　Ｙ２　＋　８６３Ｘ　Ｙ２となるので、剰余２５９　＋　５６３　Ｘ　＋　９８８　Ｙ　＋　５４６　Ｘ　Ｙ　＋　４０２　Ｙ２　＋　８６３　Ｘ　Ｙ２を得て、ベクトルｗ（４）１＝（２５９，　５６３，　９８８，　５４６，　４０２，　８６３）を生成する。
【０１１６】
また、Ｘ２　ｈ　＝Ｘ２　（５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ２　ｈ　＝　（７０６　＋　８６５　Ｘ　＋　１４６　Ｘ２　＋　６８　Ｙ　＋　Ｙ２）　ｆ　＋　８６３　Ｆ　＋　９００　＋　２７　Ｘ　＋　６６９　Ｙ　＋　６１１　Ｘ　Ｙ　＋　１８９　Ｙ２　＋　７８３　Ｘ　Ｙ２となるので、剰余９００　＋　２７　Ｘ　＋　６６９　Ｙ　＋　６１１　Ｘ　Ｙ　＋　１８９　Ｙ２　＋　７８３　Ｘ　Ｙ２を得て、ベクトルｗ（４）２＝（９００，　２７，　６６９，　６１１，　１８９，　７８３）を生成する。そして、ベクトルｗ（４）１とｗ（４）２を連結して、ベクトルｖ４＝（２５９，　５６３，　９８８，　５４６，　４０２，　８６３，　９００，　２７，　６６９，　６１１，　１８９，　７８３）を得る。
【０１１７】
次に、第五番目の単項式Ｍ５＝　Ｘ　Ｙに対して、Ｘ　Ｙ　ｇ　＝　Ｘ　Ｙ　（４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋Ｘ　Ｙ）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ　Ｙ　ｇ　＝　（４９２　＋　３０１　Ｘ　＋　１４６　Ｘ２　＋　９６１　Ｙ　＋　Ｙ２）　ｆ　＋　８６３　Ｆ　＋１６７　＋　８７５　Ｘ　＋　５２９　Ｙ　＋　６４８　Ｘ　Ｙ　＋　９８１　Ｙ２　＋　９４　Ｘ　Ｙ２となるので、剰余１６７　＋　８７５　Ｘ　＋　５２９　Ｙ　＋　６４８　Ｘ　Ｙ　＋　９８１　Ｙ２＋　９４　Ｘ　Ｙ２を得て、ベクトルｗ（５）１＝（１６７，　８７５，　５２９，　６４８，　９８１，　９４）を生成する。
【０１１８】
また、Ｘ　Ｙ　ｈ　＝　Ｘ　Ｙ　（５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ　Ｙ　ｈ　＝　（３０５　＋　３５６　Ｘ　＋　２２６　Ｘ２　＋　１００８　Ｘ３　＋　１５７　Ｙ　＋　１４６　Ｘ　Ｙ）　ｆ　＋　Ｘ　Ｆ　＋１６３　＋　２１３　Ｘ　＋　６９　Ｙ　＋　７７５　Ｘ　Ｙ　＋　２８５　Ｙ２　＋　６８　Ｘ　Ｙ２となるので、剰余１６３　＋　２１３　Ｘ　＋　６９　Ｙ　＋　７７５　Ｘ　Ｙ　＋　２８５　Ｙ２　＋　６８　Ｘ　Ｙ２を得て、ベクトルｗ（５）２＝（１６３，　２１３，　６９，　７７５，　２８５，　６８）を生成する。そして、ベクトルｗ（５）１とｗ（５）２を連結して、ベクトルｖ５＝（１６７，　８７５，　５２９，　６４８，　９８１，　９４，　１６３，　２１３，　６９，　７７５，　２８５，　６８）を得る。
【０１１９】
次に、第六番目の単項式Ｍ６＝　Ｙ２に対して、Ｙ２　ｇ　＝　Ｙ２　（４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙ）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｙ２　ｇ　＝　（２０８　＋　２８Ｘ　＋　９１５　Ｘ２　＋　１００８　Ｘ３　＋　９０８　Ｙ　＋　１４６　Ｘ　Ｙ）　ｆ　＋　（３２０　＋　Ｘ）　Ｆ　＋５７１　＋　９４９　Ｘ　＋　２０２　Ｙ　＋　４８２　Ｘ　Ｙ　＋　６０　Ｙ２　＋　９６１　Ｘ　Ｙ２となるので、剰余５７１　＋　９４９　Ｘ　＋　２０２　Ｙ　＋　４８２　Ｘ　Ｙ　＋　６０　Ｙ２　＋　９６１　Ｘ　Ｙ２を得て、ベクトルｗ（６）１＝（５７１，　９４９，　２０２，　４８２，　６０，９６１）を生成する。
【０１２０】
また、Ｙ２　ｈ　＝　Ｙ２　（５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｙ２　ｈ　＝　（１００１　＋　２３３　Ｘ　＋　９４１　Ｘ２　＋　１９４　Ｙ　＋　２２６　Ｘ　Ｙ　＋　１００８　Ｘ２　Ｙ　＋　１４６　Ｙ２）　ｆ　＋　（６８　＋　Ｙ）　Ｆ　＋７９３　＋　５６０　Ｘ　＋　３５２　Ｙ　＋　８８１　Ｘ　Ｙ　＋　３７８　Ｙ２　＋　１５７　Ｘ　Ｙ２となるので、剰余７９３　＋　５６０　Ｘ　＋　３５２　Ｙ　＋　８８１　Ｘ　Ｙ　＋　３７８　Ｙ２　＋　１５７　Ｘ　Ｙ２を得て、ベクトルｗ（６）２＝（７９３，　５６０，　３５２，　８８１，　３７８，　１５７）を生成する。そして、ベクトルｗ（６）１とｗ（６）２を連結して、ベクトルｖ６＝（５７１，　９４９，　２０２，　４８２，　６０，　９６１，　７９３，　５６０，　３５２，　８８１，　３７８，　１５７）を得る。
【０１２１】
最後に、第七番目の単項式Ｍ７＝　Ｘ３に対して、Ｘ３　ｇ　＝　Ｘ３　（４４９　＋　７９　Ｘ　＋　３２０　Ｙ　＋　Ｘ　Ｙ）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ３　ｇ　＝　（３７０　＋　１９８　Ｘ　＋　９６１　Ｘ２　＋　９２６　Ｙ　＋　９４　Ｘ　Ｙ　＋　Ｘ２　Ｙ　＋　８６３　Ｙ２）　ｆ　＋　１２７　Ｆ　＋９０９　＋　５４８　Ｘ　＋　２４３　Ｙ　＋　４６０　Ｘ　Ｙ　＋　１０４　Ｙ２　＋　１０１　Ｘ　Ｙ２となるので、剰余９０９　＋　５４８　Ｘ　＋　２４３　Ｙ＋　４６０　Ｘ　Ｙ　＋　１０４　Ｙ２　＋　１０１　Ｘ　Ｙ２を得て、ベクトルｗ（７）１＝（９０９，　５４８，　２４３，　４６０，１０４，　１０１）を生成する。
【０１２２】
また、Ｘ３　ｈ　＝　Ｘ３　（５４４　＋　５６４　Ｘ　＋　１９５　Ｙ　＋　Ｙ２）をｆ＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２およびＦ＝Ｙ３＋Ｘ４＋７Ｘで割ると、Ｘ３　ｈ　＝　（８３４　＋　２８３　Ｘ　＋　１５７　Ｘ２　＋　１４６　Ｘ３　＋　５２　Ｙ　＋　６８　Ｘ　Ｙ　＋　７８３　Ｙ２　＋　Ｘ　Ｙ２）　ｆ　＋　（７０８　＋　８６３　Ｘ）　Ｆ　＋３２０　＋　８６６　Ｘ　＋　７２０　Ｙ　＋　２２５　Ｘ　Ｙ　＋　４３２　Ｙ２　＋　８１５　Ｘ　Ｙ２となるので、剰余３２０　＋　８６６　Ｘ　＋　７２０　Ｙ　＋　２２５　Ｘ　Ｙ　＋　４３２Ｙ２　＋　８１５　Ｘ　Ｙ２を得て、ベクトルｗ（７）２＝（３２０，　８６６，　７２０，　２２５，　４３２，　８１５）を生成する。そして、ベクトルｗ（７）１とｗ（７）２を連結して、ベクトルｖ７＝（９０９，　５４８，　２４３，４６０，　１０４，　１０１，　３２０，　８６６，　７２０，　２２５，　４３２，　８１５）を得る。以上で、第二のイデアル縮約部１３の多項式ベクトル生成部３２における処理を終了する。
【０１２３】
次に、第二のイデアル部装置１３は、基底構成部３３において、多項式ベクトル生成部３２で生成した、７個の１２次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を線形関係導出部３４に入力し、出力として複数の７次元ベクトルｍ１，ｍ２，．．．を得る。線形関係導出部３４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術に属するので、以下、線形関係導出部３４の動作はその概略のみ示す。
【０１２４】
線形関係導出部３４は、まず、入力された７個の１２次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を順に並べて７ｘ１２行列
【数１７】
2004077948.tif 000019
を構成する。
【０１２５】
次に、線形関係導出装置３４は、行列ＭＲに７次元の単位行列を連結し、
【数１８】
2004077948.tif 000020
を構成する。
【０１２６】
次に、線形関係導出装置３４は、ｉ行目の定数倍をｉ＋１行目から７行目に加えることで（ｉ＝１，２，３）、行列Ｍ’Ｒを三角化し以下の行列ｍを得る。
【数１９】
2004077948.tif 000021
【０１２７】
よく知られているように行列ｍの４から７行目の第１３成分以降よりなるベクトルは、入力された７個の１２次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７の全ての１次独立な線形従属関係Σｉ７　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，ｎ），（ｍ２，１，ｍ２，２，．．．，ｍ２，ｎ），．．．｝である。線形関係導出部３４は、行列ｍの４行目の第１３成分以降よりなるベクトルｍ１＝（９８２，　２２６，　１４６，　１，　０，　０，　０）、行列ｍの５行目の第１３成分以降よりなるベクトルｍ２＝（５３，　９４１，　９１５，　０，　１，　０，　０）、行列ｍの６行目の第１３成分以降よりなるベクトルｍ３＝（３９４，　８５２，　４８，　０，　０，　１，　０）および行列ｍの７行目の第１３成分以降よりなるベクトルｍ４＝（３８２，　１９４，　９０８，　０，　０，　０，　１）を出力する。
【０１２８】
第二のイデアル縮約部１３の基底構成部３３における処理の説明に戻る。次に、第二のイデアル縮約部１３は、図７のグレブナ基底構成用テーブル３７を参照し前記値ｄ＝３を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１＝（９８２，　２２６，　１４６，　１，　０，　０，　０），　ｍ２＝（５３，　９４１，　９１５，　０，　１，　０，　０）、ｍ３＝（３９４，　８５２，　４８，　０，　０，　１，　０）およびｍ４＝（３８２，　１９４，　９０８，　０，　０，　０，　１）中に存在しないレコードを検索する。第１４レコードの位数フィールドの値は３であり、第１４レコードの成分番号リスト４，５，６，７に対応する成分がすべて０であるベクトルはｍ１，ｍ２，ｍ３，ｍ４には存在していないので、検索結果として第１４レコードが得られる。
【０１２９】
さらに第１４レコードの第一ベクトル型の値は（＊，＊，＊，１，０，０，０）　であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（９８２，　２２６，　１４６，　１，　０，　０，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３の各単項式の係数の列とみなし、多項式ｆ１＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２を生成する。
【０１３０】
同様にして、第１４レコードの第二ベクトル型の値は（＊，＊，＊，０，１，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（５３，　９４１，　９１５，　０，　１，　０，０）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３の各単項式の係数の列とみなし、多項式ｆ２＝５３　＋　９４１　Ｘ　＋　９１５　Ｙ　＋　Ｘ　Ｙを生成する。
【０１３１】
同様にして、第１４レコードの第三ベクトル型の値は（＊，＊，＊，０，０，１，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ３＝（３９４，　８５２，　４８，　０，　０，　１，０）と合致するので、ベクトルｍ３を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｙ，　Ｘ２，　Ｘ　Ｙ，　Ｙ２，　Ｘ３の各単項式の係数の列とみなし、多項式ｆ３＝３９４　＋　８５２Ｘ　＋　４８　Ｙ　＋　Ｙ２を生成する。最後に、イデアル縮約装置１３は、多項式の集合Ｊ＊＊＝｛ｆ１＝９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２，　ｆ２＝５３　＋　９４１　Ｘ　＋　９１５　Ｙ　＋　Ｘ　Ｙ，　ｆ３＝３９４　＋　８５２　Ｘ　＋　４８　Ｙ　＋　Ｙ２｝を構成し、出力する。以上で、第二のデアル縮約部１３の動作は終了する。
【０１３２】
最後に、図１のヤコビ群加算装置において、第二のイデアル縮約部１３の出力したグレブナ基底Ｊ＊＊＝　｛９８２　＋　２２６　Ｘ　＋　１４６　Ｙ　＋　Ｘ２，　５３　＋　９４１　Ｘ　＋　９１５　Ｙ　＋　Ｘ　Ｙ，　３９４　＋　８５２　Ｘ　＋　４８　Ｙ　＋　Ｙ２｝が出力装置より出力される。
次に、Ｃ２７曲線を用いた場合の実施例を示す。本実施例では、代数曲線パラメータファイルとして図８の代数曲線パラメータファイルを、イデアル型テーブルとして図９のイデアル型テーブルを、単項式ストテーブルとして図１０の単項式リストテーブルを、グレブナ基底構成用テーブルとして図１１のグレブナ基底構成用テーブルを用いる。
【０１３３】
図１のヤコビ群要素加算装置において、図８の代数曲線パラメータファイルＡおよび代数曲線パラメータファイルＡ　で指定されたＣ２７曲線のヤコビ群の要素を表す、代数曲線パラメータファイルＡで指定された代数曲線の座標環のイデアルのグレブナ基底
Ｉ１　＝　｛６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３，　５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ｝
および
Ｉ２　＝　｛６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３，　５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ｝
が入力されたとする。
【０１３４】
まず、イデアル合成部１１が、図２に示す機能ブロックの処理の流れにしたがって、図８の代数曲線パラメータファイルＡ、上記グレブナ基底Ｉ１およびＩ２を入力として以下のように動作する。イデアル合部１１は、まず、図２のイデアル型分類部２１において、図９のイデアル型テーブルを参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＩ１の型と一致するレコードを検索し第１１レコードを得て、第１１レコードのイデアル型番号フィールドの値Ｎ１＝３１および位数フィールドの値ｄ１＝３を取得する。同様に、イデアル型が入力イデアルＩ２の型と一致するレコードを検索し第１１レコードを得て、第１１レコードのイデアル型番号フィールドの値Ｎ２＝３１および位数フィールドの値ｄ２＝３を取得する。
【０１３５】
次に、イデアル合成部１１は、単項式ベクトル生成部２２において、前記位数フィールドの値ｄ１＝３およびｄ２＝３の和ｄ３＝ｄ１＋ｄ２＝６を計算し、単項式リストテーブルを参照し前記ｄ３＝６を位数フィールドの値に持つレコードを検索し第１レコードを得て、第１レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，Ｘ６を取得する。Ｉ１とＩ２は同一なので、前記単項式のリスト１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，Ｘ６中のそれぞれのＭｉ（１＜＝ｉ＜＝１０）に対して、ＭｉをＩ１で割った剰余を計算し、多項式ａ（ｉ）１　＋　ａ（ｉ）２　Ｘ　＋　ａ（ｉ）３　Ｘ２を得て、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，・・・の順にならべて、ベクトルｗ（ｉ）１＝（ａ（ｉ）１，ａ（ｉ）２，ａ（ｉ）３）を生成する。
【０１３６】
さらに、図８の代数曲線パラメータファイルＡに記述された係数リスト０，７，０，０，０，０，０，０，０，０，０，１，１を、図８の代数曲線パラメータファイルＡに記述された単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，　Ｘ６，　Ｘ３　Ｙ，　Ｘ７，　Ｙ２の各単項式の係数列とみなし、定義多項式Ｆ＝Ｙ２　＋　Ｘ７　＋　７　Ｘを構成し、多項式Ｍに対してそのＸによる微分をＤＸ（Ｍ）、Ｙによる微分をＤＹ（Ｍ）と書くとき、多項式ＤＸ（Ｍｉ）　ＤＹ（Ｆ）　−　ＤＹ（Ｍｉ）ＤＸ（Ｆ）をＩ１で割った剰余を計算し、多項式ｂ（ｉ）１　＋　ｂ（ｉ）２　Ｘ　＋　ｂ（ｉ）３　Ｘ２を得て、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，・・・の順にならべて、ベクトルｗ（ｉ）２＝（ｂ（ｉ）１，ｂ（ｉ）２，ｂ（ｉ）３）を生成し、上記２つのベクトルｗ（ｉ）１とｗ（ｉ）２を連結してベクトルｖｉ＝（ａ（ｉ）１，ａ（ｉ）２，ａ（ｉ）３，ｂ（ｉ）１，ｂ（ｉ）２，ｂ（ｉ）３）を生成する。すなわち、Ｍ１　＝　１　をＩ１でわると、１　＝　０　・（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）＋　０・（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　１となるので、剰余として　１　を得て、ベクトルｗ（１）１＝（１，０，０）を生成する。さらに、ＤＸ（１）ＤＹ（Ｆ）　＿　ＤＹ（１）ＤＸ（Ｆ）　＝　０　をＩ１で割ると、０となるので、剰余として　０を得て、ベクトルｗ（１）２＝（０，０，０）を生成する。ｗ（１）１とｗ（１）２を連結して、ベクトルｖ１＝（１，０，０，０，０，０）を生成する。
【０１３７】
次に、Ｍ２　＝　Ｘ　をＩ１でわると、Ｘ　＝　０・（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　０・（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　Ｘとなるので、剰余として　Ｘ　を得て、ベクトルｗ（２）１＝（０，１，０）を生成する。さらに、ＤＸ（Ｘ）ＤＹ（Ｆ）　＿　ＤＹ（Ｘ）ＤＸ（Ｆ）　＝　ＤＹ（Ｆ）　＝　２　Ｙ　をＩ１でわると、２　Ｙ　＝　０・（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　２　（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋Ｙ）　＋　８８２　＋　８３８　Ｘ　＋　７６　Ｘ２となるので、剰余として８８２　＋　８３８　Ｘ　＋　７６　Ｘ２を得て、ベクトルｗ（２）２＝（８８２，８３８，７６）を生成する。ｗ（２）１とｗ（２）２を連結して、ベクトルｖ２＝（０，１，０，　８８２，８３８，７６）を生成する。
【０１３８】
次に、Ｍ３　＝　Ｘ２　をＩ１でわると、Ｘ２　＝　０・（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　０・（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　Ｘ２となるので、剰余として　Ｘ２　を得て、ベクトルｗ（３）１＝（０，０，１）を生成する。さらに、ＤＸ（Ｘ２）ＤＹ（Ｆ）　＿　ＤＹ（Ｘ２）ＤＸ（Ｆ）　＝　４　Ｘ　Ｙ　をＩ１でわると、４　Ｘ　Ｙ　＝　１５２　（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　４　Ｘ　（５６８　＋　５９０　Ｘ　＋　９７１Ｘ２　＋　Ｙ）　＋　２０８　＋　９０５　Ｘ　＋　７８　Ｘ２となるので、剰余として２０８　＋　９０５　Ｘ　＋　７８　Ｘ２を得て、ベクトルｗ（３）２＝（２０８，９０５，７８）を生成する。ｗ（３）１とｗ（３）２を連結して、ベクトルｖ３＝（０，０，１，　２０８，９０５，７８）を生成する。
【０１３９】
次に、Ｍ４　＝　Ｘ３　をＩ１でわると、Ｘ３　＝　１・（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　０・（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　３２０　＋　３８６　Ｘ　＋　８７９　Ｘ２となるので、剰余として　３２０＋　３８６　Ｘ　＋　８７９　Ｘ２　を得て、ベクトルｗ（４）１＝（３２０，３８６，　８７９）を生成する。さらに、ＤＸ（Ｘ３）ＤＹ（Ｆ）　＿　ＤＹ（Ｘ３）ＤＸ（Ｆ）　＝　６　Ｘ２　Ｙ　をＩ１でわると、６　Ｘ２　Ｙ　＝　（１１７　＋　２２８　Ｘ）（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　６　Ｘ２　（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　１０７　＋　６９　Ｘ　＋　７７８　Ｘ２となるので、剰余として１０７　＋　６９　Ｘ　＋　７７８　Ｘ２を得て、ベクトルｗ（４）２＝（１０７，６９，７７８）を生成する。ｗ（４）１とｗ（４）２を連結して、ベクトルｖ４＝（３２０，３８６，　８７９，　１０７，６９，７７８）を生成する。
【０１４０】
次に、Ｍ５　＝　ＹをＩ１でわると、Ｙ　＝　０・（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　１・（５６８　＋５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　４４１　＋　４１９　Ｘ　＋　３８　Ｘ２となるので、剰余として　４４１　＋　４１９　Ｘ　＋　３８　Ｘ２を得て、ベクトルｗ（５）１＝（４４１，４１９，３８）を生成する。さらに、ＤＸ（Ｙ）ＤＹ（Ｆ）　＿　ＤＹ（Ｙ）ＤＸ（Ｆ）　＝　−ＤＸ（Ｆ）＝　１００２　＋　１００２　Ｘ６をＩ１でわると、１００２　＋　１００２　Ｘ６　＝（８６５　＋　７８　Ｘ　＋　９１０　Ｘ２　＋　１００２　Ｘ３）　（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　０・（５６８　＋５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋３２７　＋　６５５　Ｘ　＋　１００４　Ｘ２となるので、剰余として　３２７　＋　６５５　Ｘ　＋　１００４　Ｘ２　を得て、ベクトルｗ（５）２＝（３２７，６５５，１００４）を生成する。ｗ（５）１とｗ（５）２を連結して、ベクトルｖ５＝（４４１，４１９，３８，　３２７，６５５，１００４）を生成する。
【０１４１】
次に、Ｍ６　＝　Ｘ４をＩ１でわると、Ｘ４　＝　（８７９　＋　Ｘ）（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　０・（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　７７８　＋　５９０　Ｘ　＋　１３３　Ｘ２となるので、剰余として　７７８　＋　５９０　Ｘ　＋　１３３　Ｘ２を得て、ベクトルｗ（６）１＝（７７８，５９０，１３３）を生成する。さらに、ＤＸ（Ｘ４）ＤＹ（Ｆ）　＿　ＤＹ（Ｘ４）ＤＸ（Ｆ）　＝　８　Ｘ３　ＹをＩ１でわると、８　Ｘ３　Ｙ　＝　（２００　＋　８４０　Ｘ　＋　８　Ｙ）　（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　（５４２　＋　６１　Ｘ　＋　９７８　Ｘ２）（５６８　＋　５９０Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　３２２　＋　６５３　Ｘ　＋　７８１　Ｘ２となるので、剰余として　３２２　＋　６５３　Ｘ　＋　７８１　Ｘ２を得て、ベクトルｗ（６）２＝（３２２，　６５３，７８１）を生成する。ｗ（６）１とｗ（６）２を連結して、ベクトルｖ６＝（７７８，５９０，１３３，　３２２，　６５３，７８１）を生成する。
【０１４２】
次に、Ｍ７　＝　Ｘ　ＹをＩ１でわると、Ｘ　Ｙ　＝　３８　（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　Ｘ　（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　５２　＋　９８３　Ｘ　＋　５２４　Ｘ２となるので、剰余として　５２　＋９８３　Ｘ　＋　５２４　Ｘ２を得て、ベクトルｗ（７）１＝（５２，９８３，５２４）を生成する。さらに、ＤＸ（Ｘ　Ｙ）ＤＹ（Ｆ）　＿　ＤＹ（Ｘ　Ｙ）ＤＸ（Ｆ）　＝　１００２　Ｘ　＋　１００２　Ｘ７　＋　２　Ｙ２をＩ１でわると、１００２　Ｘ　＋１００２　Ｘ７　＋　２　Ｙ２　＝　（２４　＋　７２６　Ｘ　＋　７８　Ｘ２　＋　９１０　Ｘ３　＋　１００２　Ｘ４）　（６８９　＋　６２３　Ｘ　＋１３０　Ｘ２　＋　Ｘ３）　＋（８８２　＋　８３８　Ｘ　＋　７６　Ｘ２　＋　２　Ｙ）　（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　１０５　＋　９５４　Ｘ　＋　８１３　Ｘ２となるので、剰余として　１０５　＋　９５４　Ｘ　＋　８１３　Ｘ２を得て、ベクトルｗ（７）２＝（１０５，９５４，８１３）を生成する。ｗ（７）１とｗ（７）２を連結して、ベクトルｖ７＝（５２，９８３，５２４，　１０５，９５４，８１３）を生成する。
【０１４３】
次に、Ｍ８　＝　Ｘ５をＩ１でわると、Ｘ５　＝　（１３３　＋　８７９　Ｘ　＋　Ｘ２）（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　０・（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　１８２　＋　６５７　Ｘ　＋　４５３　Ｘ２となるので、剰余として　１８２　＋　６５７　Ｘ　＋　４５３　Ｘ２を得て、ベクトルｗ（８）１＝（１８２，６５７，４５３）を生成する。さらに、ＤＸ（Ｘ５）ＤＹ（Ｆ）　＿　ＤＹ（Ｘ５）ＤＸ（Ｆ）　＝　１０　Ｘ４　ＹをＩ１でわると、１０　Ｘ４　Ｙ　＝（９１２　＋　９０　Ｘ　＋　７１８　Ｙ　＋　１０　Ｘ　Ｙ）（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　（７１７　＋　８５５　Ｘ＋　３２１　Ｘ２）（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋６１９　＋　８７８　Ｘ　＋　２８１　Ｘ２となるので、剰余として　６１９　＋　８７８　Ｘ　＋　２８１　Ｘ２を得て、ベクトルｗ（８）２＝（６１９，８７８，２８１）を生成する。ｗ（８）１とｗ（８）２を連結して、ベクトルｖ８＝（１８２，６５７，４５３，　６１９，８７８，２８１）を生成する。
【０１４４】
次に、Ｍ９　＝　Ｘ２　ＹをＩ１でわると、Ｘ２　Ｙ　＝　（５２４　＋　３８　Ｘ）（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋　Ｘ２　（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　１８６　＋　５１６　Ｘ　＋　４６６　Ｘ２となるので、剰余として　１８６　＋　５１６　Ｘ　＋　４６６　Ｘ２を得て、ベクトルｗ（９）１＝（１８６，５１６，４６６）を生成する。さらに、ＤＸ（Ｘ２　Ｙ）ＤＹ（Ｆ）　＿　ＤＹ（Ｘ２　Ｙ）ＤＸ（Ｆ）　＝　１００２　Ｘ２　＋　１００２　Ｘ８　＋　４　Ｘ　Ｙ２をＩ１でわると、１００２　Ｘ２　＋　１００２　Ｘ８　＋　４　Ｘ　Ｙ２　＝　（８９２　＋　９４１　Ｘ　＋　８６５　Ｘ２　＋　７８　Ｘ３　＋９１０　Ｘ４　＋　１００２　Ｘ５　＋　１５２　Ｙ）　（６８９　＋　６２３　Ｘ　＋　１３０　Ｘ２　＋　Ｘ３）　＋（２０８　＋　９０５　Ｘ　＋　７８　Ｘ２　＋　４　Ｘ　Ｙ）　（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　８１１　＋　６００　Ｘ　＋　１２３　Ｘ２となるので、剰余として　８１１　＋　６００　Ｘ　＋　１２３　Ｘ２を得て、ベクトルｗ（９）２＝（８１１，６００，１２３）を生成する。ｗ（９）１とｗ（９）２を連結して、ベクトルｖ９＝（１８６，５１６，４６６，　８１１，６００，１２３）を生成する。
【０１４５】
次に、Ｍ１０　＝　Ｘ６をＩ１でわると、Ｘ６　＝　（４５３　＋　１３３　Ｘ　＋　８７９　Ｘ２　＋　Ｘ３）（６８９　＋　６２３　Ｘ＋　１３０　Ｘ２　＋　Ｘ３）　＋　０・（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　６７３　＋　４８３　Ｘ　＋　２８９　Ｘ２となるので、剰余として　６７３　＋　４８３　Ｘ　＋　２８９　Ｘ２を得て、ベクトルｗ（１０）１＝（６７３，４８３，２８９）を生成する。さらに、ＤＸ（Ｘ６）ＤＹ（Ｆ）　＿　ＤＹ（Ｘ６）ＤＸ（Ｆ）　＝　１２　Ｘ５　ＹをＩ１でわると、１２　Ｘ５　Ｙ　＝　（９８５　＋　７３２　Ｘ　＋　５８７　Ｙ　＋　４５８　Ｘ　Ｙ　＋　１２　Ｘ２　Ｙ）　（６８９　＋　６２３　Ｘ　＋　１３０Ｘ２　＋　Ｘ３）　＋（１６６　＋　８２１　Ｘ　＋　３９１　Ｘ２）（５６８　＋　５９０　Ｘ　＋　９７１　Ｘ２　＋　Ｙ）　＋　９５０　＋　７４１　Ｘ　＋　２０１　Ｘ２となるので、剰余として　９５０　＋　７４１　Ｘ　＋　２０１　Ｘ２を得て、ベクトルｗ（１０）２＝（９５０，７４１，２０１）を生成する。ｗ（１０）１とｗ（１０）２を連結して、ベクトルｖ１０＝（６７３，４８３，２８９，　９５０，７４１，２０１）を生成する。以上で、イデアル合成部１１の単項式ベクトル生成部２２における処理を終了する。
【０１４６】
次に、イデアル合成部１１は、基底構成部２３において、単項式ベクトル生成部２２で生成した、１０個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８，ｖ９，ｖ１０を線形関係導出部２４に入力し、出力として複数の１０次元ベクトルｍ１，ｍ２，．．．を得る。線形関係導出部２４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術であるので、以下、線形関係導出部２４の動作はその概略のみ示す。線形関係導出部２４は、まず、入力された１０個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８，ｖ９，ｖ１０を順に並べて１０ｘ６行列
【数２０】
2004077948.tif 000022
を構成する。
【０１４７】
次に、線形関係導出装置２４は、行列ＭＣに１０次元の単位行列を連結し、
【数２１】
2004077948.tif 000023
を得る。
次に、線形関係導出部２４は、ｉ行目の定数倍をｉ＋１行目から１０行目に加える事で（ｉ＝１，２，．．．，６）、行列Ｍ’Ｃを三角化し以下の行列ｍを得る。
【０１４８】
【数２２】
2004077948.tif 000024
よく知られているように行列ｍの７から１０行目の第７成分以降よりなるベクトルは、入力された１０個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８，ｖ９，ｖ１０の全ての１次独立な線形従属関係　・ｉ１０　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，ｎ），（ｍ２，１，ｍ２，２，．．．，ｍ２，ｎ），．．．｝である。線形関係導出部２４は、行列ｍの７行目の第７成分以降よりなるベクトルｍ１＝（６９９，　６０１，　６８８，　２８１，　２１７，　２８７，　１，　０，　０，　０）、行列ｍの８行目の第７成分以降よりなるベクトルｍ２＝（１９３，　９５９，　３６４，　１８０，　５５０，　４３，　０，　１，　０，　０）、行列ｍの９行目の第７成分以降よりなるベクトルｍ３＝（７８０，　６６７，　９６，　５０，　８９７，　３２７，　０，　０，　１，　０）および行列ｍの１０行目の第７成分以降よりなるベクトルｍ４＝（７６１，　７２７，　４１７，　５２３，　２７８，　９１２，　０，　０，　０，　１）を出力する。イデアル合成部１１の基底構成部２３における処理の説明に戻る。
【０１４９】
次に、イデアル合成部１１は、図１１のグレブナ基底構成用テーブルを参照し前記値ｄ３＝６を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数の
ベクトルｍ１＝（６９９，　６０１，　６８８，　２８１，　２１７，　２８７，　１，　０，　０，　０）、
ｍ２＝（１９３，　９５９，　３６４，　１８０，　５５０，　４３，　０，　１，　０，　０）、
ｍ３＝（７８０，　６６７，　９６，　５０，　８９７，　３２７，　０，　０，　１，　０）および
ｍ４＝（７６１，　７２７，　４１７，　５２３，　２７８，　９１２，　０，　０，　０，　１）
中に存在しないレコードを検索する。第１レコードの位数フィールドの値は６であり、第１レコードの成分番号リスト７，８，９，１０に対応する成分がすべて０であるベクトルはｍ１，ｍ２，ｍ３，ｍ４には存在していないので、検索結果として第１レコードが得られる。
【０１５０】
さらに第１レコードの第一ベクトル型の値は（＊，＊，＊，＊，＊，＊，１，０，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（６９９，　６０１，　６８８，　２８１，　２１７，　２８７，　１，　０，　０，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，Ｘ６の各単項式の係数の列とみなし、多項式ｆ１＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹを生成する。
【０１５１】
同様にして、第１レコードの第二ベクトル型の値は（＊，＊，＊，＊，＊，＊，０，１，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（１９３，　９５９，　３６４，　１８０，　５５０，　４３，　０，　１，　０，　０）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，Ｘ６の各単項式の係数の列とみなし、多項式ｆ２＝１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋Ｘ５を生成する。第１レコードの第三ベクトル型の値はｎｕｌｌなので、無視される。最後に、イデアル合成部１１は、多項式の集合Ｊ＝｛ｆ１，ｆ２｝＝｛６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹ，　１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５｝を構成し、出力する。以上で、イデアル合成部１１の動作は終了する。
【０１５２】
次に、第一のイデアル縮約部１２が、図３に示す機能ブロックの処理の流れにしたがって、図８の代数曲線パラメータファイルＡおよびイデアル合成部１１が出力したグレブナ基底
Ｊ＝｛６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　Ｘ　Ｙ，　１９３　＋　９５９　Ｘ　＋３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５｝
を入力として以下のように動作する。
【０１５３】
まず、イデアル縮約部１２は、図３のイデアル型分類部３１において、図９のイデアル型テーブルを参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＪの型と一致するレコードを検索し第１レコードを得て、第１レコードのイデアル型番号フィールドの値Ｎ＝６１および縮約位数フィールドの値ｄ＝３を取得する。次に、イデアル縮約部１２は、前記ｄ＝３が０でないことを確認し、多項式ベクトル生成部３２において、図１０の単項式リストテーブルを参照し前記ｄ＝３を位数フィールドの値に持つレコードを検索し第４レコードを得て、第４レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹを取得する。
【０１５４】
さらに、イデアル縮約部１２は、
Ｊの第１要素ｆ＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹ、
第２要素ｇ＝１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５を取得し（Ｊには第３要素はないので第３番目の多項式ｈは用いない）、代数曲線パラメータファイルＡの係数リスト０，７，０，０，０，０，０，０，０，０，０，１，１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，　Ｘ６，　Ｘ３　Ｙ，　Ｘ７，　Ｙ２の各単項式の係数の列とみなして、定義多項式Ｆ＝Ｙ２＋Ｘ７＋７Ｘを生成する。
【０１５５】
次に、イデアル縮約部１２は、前記単項式のリスト１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ中のそれぞれのＭｉ（１＜＝ｉ＜＝７）に対して、Ｍｉと多項式ｇの積Ｍｉ　ｇの、多項式ｆおよびＦによる剰余式ｒｉを計算し、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，　Ｘ６，　Ｘ３　Ｙ，　Ｘ７の順にならべて、ベクトルｖｉを生成する。すなわち、まず、第一番目の単項式Ｍ１＝１に対して、１・ｇ　＝　１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５をｆ＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹおよびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、ｇ　＝　０・ｆ　＋　０・Ｆ　＋　１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５となるので、剰余１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５を得て、ベクトルｖ１＝（１９３，　９５９，３６４，　１８０，　５５０，　４３，　０，　１，　０，　０，　０，　０）を生成する。
【０１５６】
次に、第二番目の単項式Ｍ２＝Ｘに対して、Ｘ　ｇ　＝　Ｘ　（１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５）をｆ＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹおよびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ　ｇ　＝　５５０　ｆ　＋　０・Ｆ　＋　９８８　＋　５９５　Ｘ　＋　９３４Ｘ２　＋　１９１　Ｘ３　＋　７４３　Ｘ４　＋　４３　Ｘ５　＋　Ｘ６　＋　７２１　Ｙとなるので、剰余９８８　＋　５９５　Ｘ　＋　９３４　Ｘ２　＋　１９１　Ｘ３　＋　７４３　Ｘ４　＋　４３　Ｘ５　＋　Ｘ６　＋　７２１　Ｙを得て、ベクトルｖ２＝（９８８，　５９５，　９３４，　１９１，　７２１，　７４３，　０，　４３，　０，　１，　０，　０）を生成する。
【０１５７】
次に、第三番目の単項式Ｍ３＝Ｘ２に対して、Ｘ２　ｇ　＝　Ｘ２　（１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５）をｆ＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹおよびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ２　ｇ　＝　（７２１　＋　５５０　Ｘ）　ｆ　＋　０・Ｆ　＋　５２１＋　５２８　Ｘ　＋　９７５　Ｘ２　＋　１３３　Ｘ３　＋　１０９　Ｘ４　＋　７４３　Ｘ５　＋　４３　Ｘ６　＋　Ｘ７　＋　９４７　Ｙとなるので、剰余５２１　＋　５２８　Ｘ　＋　９７５　Ｘ２　＋　１３３　Ｘ３　＋　１０９　Ｘ４　＋　７４３　Ｘ５　＋　４３　Ｘ６　＋　Ｘ７　＋９４７　Ｙを得て、ベクトルｖ３＝（５２１，　５２８，　９７５，　１３３，　９４７，　１０９，　０，　７４３，　０，　４３，　０，　１）を生成する。
【０１５８】
次に、第四番目の単項式Ｍ４＝Ｘ３に対して、Ｘ３　ｇ　＝　Ｘ３　（１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５）をｆ＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹおよびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ３　ｇ　＝　（２００　＋　９６９　Ｘ　＋　１０１　Ｘ２　＋　２８７　Ｘ３　＋　１００８　Ｙ）　ｆ　＋（２１７　＋　Ｘ）　Ｆ　＋　４５１　＋　７８　Ｘ　＋　４８１　Ｘ２　＋　７９１　Ｘ３　＋　３８９　Ｘ４　＋　９２４　Ｘ５　＋　５２７　Ｘ６　＋　１９５　Ｘ７　＋　６８６　Ｙとなるので、剰余４５１　＋　７８　Ｘ　＋　４８１　Ｘ２　＋　７９１　Ｘ３　＋　３８９　Ｘ４　＋　９２４　Ｘ５　＋　５２７　Ｘ６　＋　１９５　Ｘ７　＋　６８６　Ｙを得て、ベクトルｖ４＝（４５１，　７８，　４８１，　７９１，　６８６，　３８９，　０，　９２４，　０，　５２７，　０，　１９５）を生成する。
【０１５９】
次に、第五番目の単項式Ｍ５＝Ｙに対して、Ｙ　ｇ　＝　Ｙ　（１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５）をｆ＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹおよびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｙ　ｇ　＝　（８８４　＋　７１２　Ｘ　＋　３１６　Ｘ２　＋　１９５　Ｘ３　＋Ｘ４　＋　２８７　Ｙ）　ｆ　＋（８２９　＋　７２２　Ｘ）　Ｆ　＋６０１　＋　４５９　Ｘ　＋　２１７　Ｘ２　＋　１４　Ｘ３　＋　９６５　Ｘ４　＋９２４　Ｘ５　＋　１３０　Ｘ６　＋　４３８　Ｘ７　＋　２５３　Ｙとなるので、剰余６０１　＋　４５９　Ｘ　＋　２１７　Ｘ２　＋　１４　Ｘ３　＋　９６５　Ｘ４　＋　９２４　Ｘ５　＋　１３０　Ｘ６　＋　４３８　Ｘ７　＋　２５３　Ｙを得て、ベクトルｖ５＝（６０１，　４５９，　２１７，　１４，　２５３，　９６５，　０，　９２４，　０，　１３０，　０，　４３８）を生成する。
【０１６０】
次に、第六番目の単項式Ｍ６＝Ｘ４に対して、Ｘ４　ｇ　＝　Ｘ４　（１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５）をｆ＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹおよびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ４　ｇ　＝　（３１７　＋　１２８　Ｘ　＋　１８８　Ｘ２　＋　５７１　Ｘ３　＋　２８７　Ｘ４　＋　８１４　Ｙ　＋　１００８　Ｘ　Ｙ）　ｆ　＋（　９４６　＋　４１２　Ｘ　＋　Ｘ２）　Ｆ　＋３９７　＋　９５４　Ｘ　＋　５１４　Ｘ２　＋　８９１　Ｘ３　＋　２５５　Ｘ４　＋　９０１　Ｘ５　＋　１７３　Ｘ６　＋　９０６　Ｘ７　＋　９２２　Ｙとなるので、剰余３９７　＋　９５４　Ｘ　＋　５１４　Ｘ２　＋　８９１　Ｘ３　＋　２５５　Ｘ４　＋　９０１　Ｘ５　＋　１７３　Ｘ６　＋　９０６　Ｘ７　＋　９２２　Ｙを得て、ベクトルｖ６＝（３９７，　９５４，　５１４，　８９１，　９２２，　２５５，　０，　９０１，　０，　１７３，　０，　９０６）を生成する。
【０１６１】
最後に、第七番目の単項式Ｍ７＝Ｘ　Ｙに対して、Ｘ　Ｙ　ｇ　＝　Ｘ　Ｙ　（１９３　＋　９５９　Ｘ　＋　３６４　Ｘ２　＋　１８０　Ｘ３　＋　５５０　Ｙ　＋　４３　Ｘ４　＋　Ｘ５）をｆ＝６９９　＋　６０１　Ｘ　＋　６８８　Ｘ２　＋　２８１　Ｘ３　＋　２１７　Ｙ　＋　２８７　Ｘ４　＋　ＸＹおよびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ　Ｙ　ｇ　＝　（９９２　＋　５３６　Ｘ　＋　８０５　Ｘ２　＋　９０６　Ｘ３　＋　１９５　Ｘ４　＋　Ｘ５　＋　５７１　Ｙ　＋　２８７　Ｘ　Ｙ）　ｆ　＋（　２００　＋　２５８　Ｘ　＋　７２２　Ｘ２）　Ｆ　＋７８４　＋　４２０　Ｘ　＋　８７１　Ｘ２　＋　１１３　Ｘ３　＋　９３３　Ｘ４　＋　７４９　Ｘ５　＋　１５３　Ｘ６　＋　１１２　Ｘ７　＋　８８　Ｙとなるので、剰余７８４　＋　４２０　Ｘ　＋　８７１　Ｘ２　＋　１１３　Ｘ３　＋　９３３　Ｘ４　＋　７４９　Ｘ５　＋　１５３　Ｘ６＋　１１２　Ｘ７　＋　８８　Ｙを得て、ベクトルｖ７＝（７８４，　４２０，　８７１，　１１３，　８８，　９３３，　０，　７４９，０，　１５３，　０，　１１２）を生成する。以上で、第二のイデアル縮約部１２の多項式ベクトル生成部３２における処理を終了する。
次に、第二のイデアル縮約部１２は、基底構成部３３において、多項式ベクトル生成部３２で生成した、７個の１２次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を線形関係導出部３４に入力し、出力として複数の７次元ベクトルｍ１，ｍ２，．．．を得る。
【０１６２】
線形関係導出部３４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術に属するので、以下、線形関係導出部３４の動作はその概略のみ示す。線形関係導出部３４は、まず、入力された７個の１２次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を順に並べて７ｘ１２行列
【数２３】
2004077948.tif 000025
を構成する。
【０１６３】
次に、線形関係導出部３４は行列ＭＲに７次元の単位行列を連結し、
【数２４】
2004077948.tif 000026
を構成する。
【０１６４】
次に、線形関係装置装置３４は、ｉ行目の定数倍をｉ＋１行目から７行目に加えることで（ｉ＝１，２，３）行列Ｍ’Ｒを三角化し以下の行列ｍを得る。
【数２５】
2004077948.tif 000027
よく知られているように行列ｍの４から７行目の第１３成分以降よりなるベクトルは、入力された７個の１２次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７の全ての１次独立な線形従属関係Σｉ＝１７　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，７），（ｍ２，１，ｍ２，２，．．．，ｍ２，７），．．．｝である。線形関係導出部３４は、行列ｍの４行目の第１３成分以降よりなるベクトルｍ１＝（８０４，　７９５，　８１４，　１，　０，　０，　０）、行列ｍの５行目の第１３成分以降よりなるベクトルｍ２＝（５２２，　５４２，　５７１，　０，　１，　０，　０）、行列ｍの６行目の第１３成分以降よりなるベクトルｍ３＝（３８５，　４４３，　１０３，　０，　０，　１，　０）および行列ｍの７行目の第１３成分以降よりなるベクトルｍ４＝　（１２，　６２７，　８９７，　０，　０，　０，　１）を出力する。
【０１６５】
第一のイデアル縮約部１２の基底構成部３３における処理の説明に戻る。次に、この第二のイデアル縮約部１２は、図１１のグレブナ基底構成用テーブルを参照し前記値ｄ＝３を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１＝（８０４，　７９５，　８１４，　１，　０，　０，　０），
ｍ２＝（５２２，　５４２，　５７１，　０，　１，　０，　０）、
ｍ３＝（３８５，　４４３，　１０３，　０，　０，　１，　０）および
ｍ４＝　（１２，　６２７，　８９７，　０，　０，　０，　１）
中に存在しないレコードを検索する。第１１レコードの位数フィールドの値は３であり、第１１レコードの成分番号リスト４，５，６，７に対応する成分がすべて０であるベクトルはｍ１，ｍ２，ｍ３，ｍ４には存在していないので、検索結果として第１１レコードが得られる。
【０１６６】
さらに第１１レコードの第一ベクトル型の値は（＊，＊，＊，１，０，０，０）　であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（８０４，　７９５，　８１４，　１，　０，　０，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹの各単項式の係数の列とみなし、多項式ｆ１＝８０４　＋　７９５　Ｘ　＋
８１４　Ｘ２　＋　Ｘ３を生成する。
【０１６７】
同様にして、第１１レコードの第二ベクトル型の値は（＊，＊，＊，０，１，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（５２２，　５４２，　５７１，　０，　１，　０，　０）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹの各単項式の係数の列とみなし、多項式ｆ２＝５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙを生成する。第１１レコードの第三ベクトル型の値はｎｕｌｌなので、無視される。最後に、イデアル縮約装置１２は、多項式の集合Ｊ＊＝｛ｆ１，ｆ２｝＝｛８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３，　５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙ｝を構成し、出力する。以上で、第一のイデアル縮約部１２の動作は終了する。
【０１６８】
次に、第二のイデアル縮約部１３が、図３に示す機能ブロックの処理の流れにしたがって、図８の代数曲線パラメータファイルＡおよび第一のイデアル縮約部１２が出力したグレブナ基底Ｊ＊＝｛ｆ１，ｆ２｝＝｛８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３，　５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙ｝を入力として以下のように動作する。まず、イデアル縮約部１３は、図３のイデアル型分類部３１において、図９のイデアル型テーブルを参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＪ＊の型と一致するレコードを検索し第１１レコードを得て、第１１レコードのイデアル型番号フィールドの値Ｎ＝３１および縮約位数フィールドの値ｄ＝３を取得する。
【０１６９】
次に、イデアル縮約部１３は、前記ｄ＝３が０でないことを確認し、多項式ベクトル生成部３２において、図１０の単項式リストテーブルを参照し前記ｄ＝３を位数フィールドの値に持つレコードを検索し第４レコードを得て、第４レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹを取得する。さらに、イデアル縮約部１３は、Ｊ＊の第１要素ｆ＝８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３、第２要素ｇ＝５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙを取得し（Ｊ＊には第３要素はないので第３番目の多項式ｈは用いない）、代数曲線パラメータファイルＡの係数リスト０，７，０，０，０，０，０，０，０，０，０，１，１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，　Ｘ６，　Ｘ３　Ｙ，　Ｘ７，　Ｙ２の各単項式の係数の列とみなして、定義多項式Ｆ＝Ｙ２＋Ｘ７＋７Ｘを生成する。
【０１７０】
次に、イデアル縮約部１３は、前記単項式のリスト１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ中のそれぞれのＭｉ（１＜＝ｉ＜＝７）に対して、Ｍｉと多項式ｇの積Ｍｉ　ｇの、多項式ｆおよびＦによる剰余式ｒｉを計算し、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹ，　Ｘ５，　Ｘ２　Ｙ，　Ｘ６，　Ｘ３　Ｙ，　Ｘ７の順にならべて、ベクトルｖｉを生成する。すなわち、まず、第一番目の単項式Ｍ１＝１に対して、１・ｇ　＝　５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙをｆ＝８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、ｇ　＝　０・ｆ　＋　０・Ｆ　＋　５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙとなるので、剰余５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙを得て、ベクトルｖ１＝（５２２，　５４２，　５７１，　０，　１，　０，　０，　０，　０）を生成する。
【０１７１】
次に、第二番目の単項式Ｍ２＝Ｘに対して、Ｘ　ｇ　＝　Ｘ　（５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙ）をｆ＝８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ　ｇ　＝　５７１　ｆ　＋　０・Ｆ＋　１１　＋　６２７　Ｘ　＋　８９７　Ｘ２　＋　Ｘ　Ｙとなるので、剰余１１　＋　６２７　Ｘ　＋　８９７　Ｘ２　＋　Ｘ　Ｙを得て、ベクトルｖ２＝（１１，　６２７，　８９７，　０，　０，　０，　１，　０，　０）を生成する。
【０１７２】
次に、第三番目の単項式Ｍ３＝Ｘ２に対して、Ｘ２　ｇ　＝　Ｘ２　（５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙ）をｆ＝８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ２　ｇ　＝　（８９７　＋　５７１　Ｘ）　ｆ　＋　０・Ｆ　＋　２４７　＋　２５９　Ｘ　＋　９８５　Ｘ２　＋　Ｘ２　Ｙとなるので、剰余２４７　＋　２５９　Ｘ　＋　９８５　Ｘ２　＋　Ｘ２　Ｙを得て、ベクトルｖ３＝（２４７，　２５９，　９８５，　０，　０，　０，　０，　０，　１）を生成する。
【０１７３】
次に、第四番目の単項式Ｍ４＝Ｘ３に対して、Ｘ３　ｇ　＝　Ｘ３　（５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙ）をｆ＝８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ３　ｇ　＝　（９８５　＋　８９７　Ｘ　＋　５７１　Ｘ２　＋　Ｙ）　ｆ　＋　０・Ｆ　＋　１２５　＋　１５６　Ｘ　＋　６２４　Ｘ２　＋　２０５　Ｙ　＋　２１４　Ｘ　Ｙ　＋　１９５　Ｘ２　Ｙとなるので、剰余１２５　＋　１５６　Ｘ　＋　６２４　Ｘ２　＋　２０５　Ｙ　＋　２１４　Ｘ　Ｙ　＋　１９５　Ｘ２　Ｙを得て、ベクトルｖ４＝（１２５，　１５６，　６２４，　０，　２０５，　０，　２１４，　０，　１９５）を生成する。
【０１７４】
次に、第五番目の単項式Ｍ５＝Ｙに対して、Ｙ　ｇ　＝　Ｙ　（５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙ）をｆ＝８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｙ　ｇ　＝　（４８６　＋　３４８　Ｘ＋　１０３　Ｘ２　＋　８１４　Ｘ３　＋　１００８　Ｘ４）　ｆ　＋　１・Ｆ　＋　７４８　＋　７８０　Ｘ　＋　６６５　Ｘ２　＋　５２２　Ｙ　＋　５４２　Ｘ　Ｙ　＋　５７１　Ｘ２　Ｙとなるので、剰余７４８　＋　７８０　Ｘ　＋　６６５　Ｘ２　＋　５２２　Ｙ　＋　５４２　Ｘ　Ｙ＋　５７１　Ｘ２　Ｙを得て、ベクトルｖ５＝（７４８，　７８０，　６６５，　０，　５２２，　０，　５４２，　０，　５７１）を生成する。
【０１７５】
次に、第六番目の単項式Ｍ６＝Ｘ４に対して、Ｘ４　ｇ　＝　Ｘ４　（５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙ）をｆ＝８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ４　ｇ　＝　（６２４　＋　９８５　Ｘ　＋　８９７　Ｘ２　＋　５７１　Ｘ３　＋　１９５　Ｙ　＋　Ｘ　Ｙ）　ｆ　＋　０・Ｆ　＋　７８６　＋　４７３　Ｘ　＋　７５６　Ｘ２　＋　６２４　Ｙ　＋　５６６　Ｘ　Ｙ　＋　９０６　Ｘ２　Ｙとなるので、剰余７８６　＋　４７３　Ｘ　＋　７５６　Ｘ２　＋　６２４　Ｙ　＋５６６　Ｘ　Ｙ　＋　９０６　Ｘ２　Ｙを得て、ベクトルｖ６＝（７８６，　４７３，　７５６，　０，　６２４，　０，　５６６，　０，
９０６）を生成する。
【０１７６】
最後に、第七番目の単項式Ｍ７＝Ｘ　Ｙに対して、Ｘ　Ｙ　ｇ　＝　Ｘ　Ｙ　（５２２　＋　５４２　Ｘ　＋　５７１　Ｘ２　＋　Ｙ）をｆ＝８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ７＋７Ｘで割ると、Ｘ　Ｙ　ｇ　＝　（６６５　＋　４８６　Ｘ　＋　３４８　Ｘ２　＋　１０３　Ｘ３　＋　８１４　Ｘ４　＋　１００８　Ｘ５　＋　５７１　Ｙ）　ｆ　＋　Ｘ　Ｆ　＋　１１０　＋７８９　Ｘ　＋　２９４　Ｘ２　＋　１１　Ｙ　＋　６２７　Ｘ　Ｙ　＋　８９７　Ｘ２　Ｙとなるので、剰余１１０　＋　７８９　Ｘ　＋２９４　Ｘ２　＋　１１　Ｙ　＋　６２７　Ｘ　Ｙ　＋　８９７　Ｘ２　Ｙを得て、ベクトルｖ７＝（１１０，　７８９，　２９４，　０，１１，　０，　６２７，　０，　８９７）を生成する。以上で、第二のイデアル縮約部１３の多項式ベクトル生成部３２における処理を終了する。
【０１７７】
次に、このイデアル縮約装置１３は、基底構成部３３において、多項式ベクトル生成部３２で生成した、７個の９次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を線形関係導出部３４に入力し、出力として複数の７次元ベクトルｍ１，ｍ２，．．．を得る。線形関係導出部３４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術に属するので、以下、線形関係導出部３４の動作はその概略のみ示す。
【０１７８】
線形関係導出部３４は、まず、入力された７個の９次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を順に並べて７ｘ９行列
【数２６】
2004077948.tif 000028
を構成する。
【０１７９】
次に、線形関係導出部３４は、行列ＭＲに７次元の単位行列を連結し、
【数２７】
2004077948.tif 000029
を構成する。
【０１８０】
次に、線形関係導出部３４は、ｉ行目の定数倍をｉ＋１行目から７行目に加えることで（ｉ＝１，２，３）、行列Ｍ’Ｒを三角化し以下の行列ｍを得る。
【数２８】
2004077948.tif 000030
【０１８１】
よく知られているように行列ｍの４から７行目の第１０成分以降よりなるベクトルは、入力された７個の１２次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７の全ての１次独立な線形従属関係Σｉ７　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，ｎ），（ｍ２，１，ｍ２，２，．．．，ｍ２，ｎ），．．．｝である。線形関係導出部３４は、行列ｍの４行目の第１０成分以降よりなるベクトルｍ１＝（８０４，　７９５，　８１４，　１，　０，　０，　０）、行列ｍの５行目の第１０成分以降よりなるベクトルｍ２＝（４８７，　４６７，　４３８，　０，　１，　０，　０）、行列ｍの６行目の第１０成分以降よりなるベクトルｍ３＝（３８５，　４４３，　１０３，　０，　０，　１，　０）および行列ｍの７行目の第１０成分以降よりなるベクトルｍ４＝（９９８，　３８２，　１１２，　０，　０，　０，　１）を出力する。
【０１８２】
第二のイデアル縮約部１３の基底構成部３３における処理の説明に戻る。次に、このイデアル縮約部１３は、図１１のグレブナ基底構成用テーブルを参照し前記値ｄ＝３を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１＝（８０４，　７９５，　８１４，　１，　０，　０，　０），ｍ２＝（４８７，　４６７，　４３８，　０，　１，　０，　０）、ｍ３＝（３８５，　４４３，　１０３，　０，　０，　１，　０）およびｍ４＝（９９８，　３８２，　１１２，　０，　０，　０，　１）中に存在しないレコードを検索する。第１１レコードの位数フィールドの値は３であり、第１１レコードの成分番号リスト４，５，６，７がすべて０であるベクトルはｍ１，ｍ２，ｍ３，ｍ４には存在していないので、検索結果として第１１レコードが得られる。
【０１８３】
さらに第１１レコードの第一ベクトル型の値は（＊，＊，＊，１，０，０，０）　であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（８０４，　７９５，　８１４，　１，　０，　０，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹの各単項式の係数の列とみなし、多項式ｆ１＝８０４　＋　７９５　Ｘ　＋
８１４　Ｘ２　＋　Ｘ３を生成する。
【０１８４】
同様にして、第１１レコードの第二ベクトル型の値は（＊，＊，＊，０，１，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（４８７，　４６７，　４３８，　０，　１，　０，　０）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｘ３，　Ｙ，　Ｘ４，　ＸＹの各単項式の係数の列とみなし、多項式ｆ２＝４８７　＋　４６７　Ｘ　＋　４３８　Ｘ２　＋　Ｙを生成する。第１１レコードの第三ベクトル型の値はｎｕｌｌなので、無視される。
【０１８５】
最後に、イデアル縮約部１３は、多項式の集合Ｊ＊＊＝｛ｆ１，ｆ２｝＝｛８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３，　４８７　＋　４６７　Ｘ　＋　４３８　Ｘ２　＋　Ｙ｝を構成し、出力する。以上で、第二のイデアル縮約部１３の動作は終了する。最後に、図１のヤコビ群加算装置において、イデアル縮約部１３の出力したグレブナ基底Ｊ＊＊＝　｛８０４　＋　７９５　Ｘ　＋　８１４　Ｘ２　＋　Ｘ３，　４８７
＋　４６７　Ｘ　＋　４３８　Ｘ２　＋　Ｙ｝が出力装置より出力される。
次に、Ｃ２５曲線を用いた場合の実施例を示す。本実施例では、代数曲線パラメータファイルとして図１２の代数曲線パラメータファイルを、イデアル型テーブルとして図１３のイデアル型テーブルを、単項式リストテーブルとして図１４の単項式リストテーブルを、グレブナ基底構成用テーブルとして図１５のグレブナ基底構成用テーブルを用いる。
【０１８６】
図１のヤコビ群要素加算装置において、図１２の代数曲線パラメータファイルＡおよび代数曲線パラメータファイルＡ　で指定されたＣ２５曲線のヤコビ群の要素を表す、代数曲線パラメータファイルＡで指定された代数曲線の座標環のイデアルのグレブナ基底
Ｉ１　＝　｛７２９　＋　８８　Ｘ　＋　Ｘ２，　４７５　＋　１２４　Ｘ　＋　Ｙ｝
および
Ｉ２　＝　｛１８０　＋　４２２　Ｘ　＋　Ｘ２，　９８９　＋　４２３　Ｘ　＋　Ｙ｝
が入力されたとする。
【０１８７】
まず、イデアル合成部１１が、図２に示す機能ブロックの処理の流れにしたがって、図１２の代数曲線パラメータファイルＡ、上記グレブナ基底Ｉ１およびＩ２を入力として以下のように動作する。イデアル合成部１１は、まず、図２のイデアル型分類部２１において、図１３のイデアル型テーブルを参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＩ１の型と一致するレコードを検索し第６レコードを得て、第６レコードのイデアル型番号フィールドの値Ｎ１＝２１および位数フィールドの値ｄ１＝２を取得する。同様に、イデアル型が入力イデアルＩ２の型と一致するレコードを検索し第６レコードを得て、第６レコードのイデアル型番号フィールドの値Ｎ２＝２１および位数フィールドの値ｄ２＝２を取得する。
【０１８８】
次に、イデアル合成部１１は、単項式ベクトル生成部２２において、前記位数フィールドの値ｄ１＝２およびｄ２＝２の和ｄ３＝ｄ１＋ｄ２＝４を計算し、図１４の単項式リストテーブルを参照し前記ｄ３＝４を位数フィールドの値に持つレコードを検索し第１レコードを得て、第１レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，　Ｘ２，　Ｙ，　Ｘ３，　ＸＹ，　Ｘ４を取得する。Ｉ１とＩ２は異なるので、前記単項式のリスト１，　Ｘ，　Ｘ２，　Ｙ，　Ｘ３，　ＸＹ，　Ｘ４中のそれぞれのＭｉ（１＜＝ｉ＜＝７）に対して、ＭｉをＩ１で割った剰余を計算し、多項式ａ（ｉ）１　＋　ａ（ｉ）２　Ｘを得て、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　・・・の順にならべて、ベクトルｗ（ｉ）１＝（ａ（ｉ）１，ａ（ｉ）２）を生成する。
【０１８９】
さらに、ＭｉをＩ２で割った剰余を計算し、多項式ｂ（ｉ）１　＋　ｂ（ｉ）２　Ｘを得て、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，・・・の順にならべて、ベクトルｗ（ｉ）２＝（ｂ（ｉ）１，ｂ（ｉ）２）を生成し、上記２つのベクトルｗ（ｉ）１とｗ（ｉ）２を連結してベクトルｖｉ＝（ａ（ｉ）１，ａ（ｉ）２，ｂ（ｉ）１，ｂ（ｉ）２）を生成する。すなわち、Ｍ１　＝　１　をＩ１でわると、１　＝　０・（７２９　＋　８８　Ｘ　＋　Ｘ２）　＋　０・（４７５　＋　１２４　Ｘ　＋　Ｙ）　＋　１となるので、剰余として　１　を得て、ベクトルｗ（１）１＝（１，０）を生成する。さらに、Ｍ１　＝　１　をＩ２でわると、１　＝　０・（１８０　＋　４２２　Ｘ　＋　Ｘ２）　＋　０・（９８９　＋　４２３　Ｘ　＋　Ｙ）　＋　１となるので、剰余として　１　を得て、ベクトルｗ（１）２＝（１，０）を生成する。ｗ（１）１とｗ（１）２を連結して、ベクトルｖ１＝（１，０，１，０）を生成する。
【０１９０】
次に、Ｍ２　＝　Ｘ　をＩ１でわると、Ｘ　＝　０・（７２９　＋　８８　Ｘ　＋　Ｘ２）　＋　０・（４７５　＋　１２４　Ｘ　＋　Ｙ）　＋　Ｘとなるので、剰余として　Ｘ　を得て、ベクトルｗ（２）１＝（０，１）を生成する。さらに、Ｍ２　＝　Ｘ　をＩ２でわると、Ｘ　＝　０・（１８０　＋　４２２　Ｘ　＋　Ｘ２）　＋　０・（９８９　＋　４２３　Ｘ　＋Ｙ）　＋　Ｘとなるので、剰余として　Ｘ　を得て、ベクトルｗ（２）２＝（０，１）を生成する。ｗ（２）１とｗ（２）２を連結して、ベクトルｖ２＝（０，１，０，１）を生成する。
【０１９１】
次に、Ｍ３　＝　Ｘ２　をＩ１でわると、Ｘ２　＝　１・（７２９　＋　８８　Ｘ　＋　Ｘ２）　＋　０・（４７５　＋　１２４　Ｘ　＋　Ｙ）　＋　２８０　＋　９２１　Ｘとなるので、剰余として　２８０　＋　９２１　Ｘ　を得て、ベクトルｗ（３）１＝（２８０，９２１）を生成する。さらに、Ｍ３　＝　Ｘ２　をＩ２でわると、Ｘ２　＝　１・（１８０　＋　４２２Ｘ　＋　Ｘ２）　＋　０・（９８９　＋　４２３　Ｘ　＋　Ｙ）　＋　８２９　＋　５８７　Ｘとなるので、剰余として　８２９　＋　５８７　Ｘ　を得て、ベクトルｗ（３）２＝（８２９，５８７）を生成する。ｗ（３）１とｗ（３）２を連結して、ベクトルｖ３＝（２８０，９２１，　８２９，５８７）を生成する。
【０１９２】
次に、Ｍ４　＝　Ｙ　をＩ１でわると、Ｙ　＝　０・（７２９　＋　８８　Ｘ　＋　Ｘ２）　＋　１・（４７５　＋　１２４　Ｘ　＋　Ｙ）　＋　５３４　＋　８８５　Ｘとなるので、剰余として　５３４　＋　８８５　Ｘ　を得て、ベクトルｗ（４）１＝（５３４，８８５）を生成する。さらに、Ｍ４　＝　Ｙ　をＩ２でわると、Ｙ　＝　０・（１８０　＋　４２２　Ｘ　＋Ｘ２）　＋　１・（９８９　＋　４２３　Ｘ　＋　Ｙ）　＋　２０　＋　５８６　Ｘとなるので、剰余として　２０　＋　５８６　Ｘ　を得て、ベクトルｗ（４）２＝（２０，　５８６）を生成する。ｗ（４）１とｗ（４）２を連結して、ベクトルｖ４＝（５３４，８８５，　２０，　５８６）を生成する。
【０１９３】
次に、Ｍ５　＝　Ｘ３　をＩ１でわると、Ｘ３　＝　（９２１　＋　Ｘ）（７２９　＋　８８　Ｘ　＋　Ｘ２）　＋　０・（４７５　＋　１２４　Ｘ　＋　Ｙ）　＋　５８５　＋　９６１　Ｘとなるので、剰余として　５８５　＋　９６１　Ｘ　を得て、ベクトルｗ（５）１＝（５８５，　９６１）を生成する。
【０１９４】
さらに、Ｍ５　＝　Ｘ３　をＩ２でわると、Ｘ３　＝　（５８７　＋　Ｘ）（１８０　＋　４２２　Ｘ　＋　Ｘ２）　＋　０・（９８９＋　４２３　Ｘ　＋　Ｙ）　＋　２８５　＋　３２０　Ｘとなるので、剰余として　２８５　＋　３２０　Ｘ　を得て、ベクトルｗ（５）２＝（２８５，　３２０）を生成する。ｗ（５）１とｗ（５）２を連結して、ベクトルｖ５＝（５８５，　９６１，　２８５，　３２０）を生成する。次に、Ｍ６　＝　ＸＹ　をＩ１でわると、ＸＹ　＝　８８５　（７２９　＋８８　Ｘ　＋　Ｘ２）　＋　Ｘ　（４７５　＋　１２４　Ｘ　＋　Ｙ）　＋　５９５　＋　３４７　Ｘとなるので、剰余として　５９５　＋　３４７　Ｘ　を得て、ベクトルｗ（６）１＝（５９５，　３４７）を生成する。
【０１９５】
さらに、Ｍ６　＝　ＸＹ　をＩ２でわると、ＸＹ　＝　５８６　（１８０　＋　４２２　Ｘ　＋　Ｘ２）　＋　Ｘ　（９８９　＋　４２３Ｘ　＋　Ｙ）　＋　４６５　＋　９４２　Ｘとなるので、剰余として　４６５　＋　９４２　Ｘ　を得て、ベクトルｗ（６）２＝（４６５，　９４２）を生成する。ｗ（６）１とｗ（６）２を連結して、ベクトルｖ６＝（５９５，　３４７，　４６５，　９４２）を生成する。
【０１９６】
最後に、Ｍ７　＝　Ｘ４　をＩ１でわると、Ｘ４　＝　（９６１　＋　９２１　Ｘ　＋　Ｘ２）　（７２９　＋　８８　Ｘ　＋　Ｘ２）　＋　０・（４７５　＋　１２４　Ｘ　＋　Ｙ）　＋　６８６　＋　７７３　Ｘとなるので、剰余として　６８６　＋　７７３　Ｘを得て、ベクトルｗ（７）１＝（６８６，　７７３）を生成する。さらに、Ｍ７　＝　Ｘ４　をＩ２でわると、Ｘ４　＝　（３２０　＋　５８７　Ｘ　＋　Ｘ２　）　（１８０　＋　４２２　Ｘ　＋　Ｘ２）　＋　０・（９８９　＋　４２３　Ｘ　＋　Ｙ）　＋　９２２＋　４５１　Ｘとなるので、剰余として　９２２　＋　４５１　Ｘを得て、ベクトルｗ（７）２＝（９２２，　４５１）を生成する。ｗ（７）１とｗ（７）２を連結して、ベクトルｖ７＝（６８６，　７７３，　９２２，　４５１）を生成する。以上で、イデアル合成装置１１の、単項式ベクトル生成部２２における処理を終了する。
【０１９７】
次に、イデアル合成部１１は、基底構成部２３において、単項式ベクトル生成部２２で生成した、７個の４次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を線形関係導出装置２４に入力し、出力として複数の７次元ベクトルｍ１，ｍ２，．．．を得る。線形関係導出部２４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術であるので、以下、線形関係導出部２４の動作はその概略のみ示す。線形関係導出部２４は、まず、入力された７個の４次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７を順に並べて７ｘ４行列
【数２９】
2004077948.tif 000031
を構成する。
【０１９８】
次に、線形関係導出部２４は、行列ＭＣに７次元の単位行列を連結し、
【数３０】
2004077948.tif 000032
を得る。
【０１９９】
次に、線形関係導出部２４は、ｉ行目の定数倍をｉ＋１行目から７行目に加えることで（ｉ＝１，２，．．．，４）、行列Ｍ’Ｃを三角化し、以下の行列ｍを得る。
【数３１】
2004077948.tif 000033
【０２００】
よく知られているように行列ｍの５から７行目の第５成分以降よりなるベクトルは、入力された７個の４次元ベクトルｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７の全ての１次独立な線形従属関係Σｉ＝１７　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，７），（ｍ２，１，ｍ２，２，．．．，ｍ２，７），．．．｝である。
【０２０１】
線形関係導出部２４は、行列ｍの５行目の第５成分以降よりなるベクトルｍ１＝（４４４，　７０９，　９００，　４２，　１，　０，　０）、行列ｍの６行目の第５成分以降よりなるベクトルｍ２＝（９６９，　７１６，　９４０，　６１９，　０，　１，　０）および行列ｍの７行目の第５成分以降よりなるベクトルｍ３＝（６３５，　２３０，　８０７，　７７８，　０，　０，　１）を出力する。
【０２０２】
イデアル合成部１１の基底構成部２３における処理の説明に戻る。次に、イデアル合成部１１は、図１５のグレブナ基底構成用テーブルを参照し前記値ｄ３＝４を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１＝（４４４，　７０９，　９００，　４２，　１，　０，　０）、ｍ２＝（９６９，　７１６，　９４０，　６１９，　０，　１，　０）およびｍ３＝（６３５，　２３０，　８０７，　７７８，　０，　０，　１）中に存在しないレコードを検索する。第１レコードの位数フィールドの値は４であり、第１レコードの成分番号リスト５，６，７に対応する成分がすべて０であるベクトルはｍ１，ｍ２，ｍ３には存在していないので、検索結果として第１レコードが得られる。
【０２０３】
さらに第１レコードの第一ベクトル型の値は（＊，＊，＊，＊，１，０，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（４４４，　７０９，　９００，　４２，　１，　０，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，Ｘ２，　Ｙ，　Ｘ３，　ＸＹ，　Ｘ４の各単項式の係数の列とみなし、多項式ｆ１＝４４４　＋　７０９　Ｘ　＋　９００　Ｘ２　＋　４２　Ｙ　＋　Ｘ３を生成する。
【０２０４】
同様にして、第１レコードの第二ベクトル型の値は（＊，＊，＊，＊，０，１，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（９６９，　７１６，　９４０，　６１９，　０，　１，　０）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙ，　Ｘ３，　ＸＹ，　Ｘ４の各単項式の係数の列とみなし、多項式ｆ２＝９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙを生成する。第１レコードの第三ベクトル型の値はｎｕｌｌなので、無視される。最後に、イデアル合成部１１は、多項式の集合Ｊ＝｛ｆ１，ｆ２｝＝｛４４４　＋　７０９　Ｘ　＋　９００　Ｘ２　＋　４２　Ｙ　＋　Ｘ３，　９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙ｝を構成し、出力する。以上で、イデアル合成部１１の動作は終了する。
【０２０５】
次に、第一のイデアル縮約部１２が、図３に示す機能ブロックの処理の流れにしたがって、図１２の代数曲線パラメータファイルＡおよびイデアル合成部１１が出力したグレブナ基底Ｊ＝｛４４４　＋　７０９　Ｘ　＋　９００　Ｘ２　＋　４２　Ｙ　＋　Ｘ３，　９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙ｝を入力として以下のように動作する。まず、第一のイデアル縮約部１２は、図３のイデアル型分類部３１において、図１２のイデアル型テーブルを参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＪの型と一致するレコードを検索し第１レコードを得て、第１レコードのイデアル型番号フィールドの値Ｎ＝４１および縮約位数フィールドの値ｄ＝２を取得する。
【０２０６】
次に、イデアル縮約部１２は、前記ｄ＝２が０でないことを確認し、多項式ベクトル生成部３２において、図１４の単項式リストテーブルを参照し前記ｄ＝２を位数フィールドの値に持つレコードを検索し第３レコードを得て、第３レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，　Ｘ２，　Ｙを取得する。さらに、イデアル縮約部１２は、Ｊの第１要素ｆ＝４４４　＋　７０９　Ｘ　＋　９００　Ｘ２　＋　４２　Ｙ　＋　Ｘ３、第２要素ｇ＝９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙを取得し（Ｊには第３要素はないので第３番目の多項式ｈは用いない）、代数曲線パラメータファイルＡの係数リスト０，７，０，０，０，０，０，０，１，１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙ，　Ｘ３，　ＸＹ，　Ｘ４，　Ｘ２　Ｙ，　Ｘ５，　Ｙ２の各単項式の係数の列とみなして、定義多項式Ｆ＝Ｙ２＋Ｘ５＋７Ｘを生成する。
【０２０７】
次に、イデアル縮約部１２は、前記単項式のリスト１，　Ｘ，　Ｘ２，　Ｙ中のそれぞれのＭｉ（１＜＝ｉ＜＝４）に対して、Ｍｉと多項式ｇの積Ｍｉ　ｇの、多項式ｆおよびＦによる剰余式ｒｉを計算し、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙ，　Ｘ３，　ＸＹ，　Ｘ４，　Ｘ２　Ｙの順にならべて、ベクトルｖｉを生成する。すなわち、まず、第一番目の単項式Ｍ１＝１に対して、１・ｇ　＝　９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙ　をｆ＝４４４　＋　７０９　Ｘ　＋　９００　Ｘ２　＋　４２　Ｙ　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ５＋７Ｘで割ると、ｇ　＝　０・ｆ　＋　０・Ｆ　＋　９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙとなるので、剰余９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙを得て、ベクトルｖ１＝（９６９，　７１６，　９４０，　６１９，　０，　１，　０，　０）を生成する。
【０２０８】
次に、第二番目の単項式Ｍ２＝Ｘに対して、Ｘ　ｇ　＝　Ｘ　（９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙ）　をｆ＝４４４　＋　７０９　Ｘ　＋　９００　Ｘ２　＋　４２　Ｙ　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ５＋７Ｘで割ると、Ｘ　ｇ　＝　９４０　ｆ　＋　０・Ｆ　＋　３６６　＋　４４９　Ｘ　＋　２５８　Ｘ２　＋　８８０　Ｙ　＋　６１９　Ｘ　Ｙ　＋　Ｘ２　Ｙとなるので、剰余３６６　＋　４４９　Ｘ　＋　２５８　Ｘ２　＋　８８０　Ｙ　＋　６１９　Ｘ　Ｙ　＋　Ｘ２　Ｙを得て、ベクトルｖ２＝（３６６，　４４９，　２５８，　８８０，　０，　６１９，　０，　１）を生成する。次に、第三番目の単項式Ｍ３＝Ｘ２に対して、Ｘ２　ｇ　＝　Ｘ２　（９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙ）　をｆ＝４４４　＋　７０９　Ｘ　＋　９００　Ｘ２　＋　４２　Ｙ　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ５＋７Ｘで割ると、Ｘ２　ｇ　＝　（２９７　＋　４７３　Ｘ　＋　４２　Ｘ２　＋　Ｙ）　ｆ　＋　９６７　Ｆ　＋　３１１　＋　４６２　Ｘ　＋　１９９　Ｘ２　＋　１９９　Ｙ　＋　６１４　Ｘ　Ｙ　＋　９８２　Ｘ２　Ｙとなるので、剰余３１１　＋　４６２　Ｘ　＋　１９９　Ｘ２　＋　１９９　Ｙ　＋６１４　Ｘ　Ｙ　＋　９８２　Ｘ２　Ｙを得てベクトルｖ３＝（３１１，　４６２，　１９９，　１９９，　０，　６１４，　０，　９８２）を生成する。
【０２０９】
最後に、第四番目の単項式Ｍ４＝Ｙに対して、Ｙ　ｇ　＝　Ｙ　（９６９　＋　７１６　Ｘ　＋　９４０　Ｘ２　＋　６１９　Ｙ　＋　Ｘ　Ｙ）　をｆ＝４４４　＋　７０９　Ｘ　＋　９００　Ｘ２　＋　４２　Ｙ　＋　Ｘ３およびＦ＝　Ｙ２＋Ｘ５＋７Ｘで割ると、Ｙ　ｇ　＝　（９９４　＋　６２５　Ｘ　＋　２７　Ｘ２　＋　１００８　Ｘ３　＋　４２　Ｙ）　ｆ　＋　（８７３　＋　Ｘ）　Ｆ　＋　６０６　＋　４６３　Ｘ　＋　３２２　Ｘ２　＋　１０４　Ｙ　＋　１８３　Ｘ　Ｙ　＋　３４８　Ｘ２　Ｙとなるので、剰余６０６　＋　４６３　Ｘ　＋　３２２　Ｘ２　＋　１０４　Ｙ　＋　１８３　Ｘ　Ｙ　＋　３４８　Ｘ２　Ｙを得て、ベクトルｖ４＝（６０６，　４６３，　３２２，　１０４，　０，　１８３，　０，　３４８）を生成する。以上で、イデアル縮約装置１２の、多項式ベクトル生成部３２における処理を終了する。
次に、第一のイデアル縮約部１２は、基底構成部３３において、多項式ベクトル生成部３２で生成した、４個の８次元ベクトルｖ１，ｖ２，ｖ３，ｖ４を線形関係導出部３４に入力し、出力として複数の４次元ベクトルｍ１，ｍ２，．．．を得る。線形関係導出部３４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術に属するので、以下、線形関係導出部３４の動作はその概略のみ示す。
【０２１０】
線形関係導出部３４は、まず、入力された４個の８次元ベクトルｖ１，ｖ２，ｖ３，ｖ４を順に並べて４ｘ８行列
【数３２】
2004077948.tif 000034
を構成する。
【０２１１】
次に、線形関係導出部３４は、行列ＭＲに４次元の単位行列を連結し、
【数３３】
2004077948.tif 000035
を構成する。
【０２１２】
次に、線形関係導出部３４は、ｉ行目の定数倍をｉ＋１行目から４行目に加えることで（ｉ＝１，２）、行列Ｍ’Ｒを三角化し以下の行列ｍを得る。
【数３４】
2004077948.tif 000036
【０２１３】
よく知られているように行列ｍの３から４行目の第９成分以降よりなるベクトルは、入力された４個の８次元ベクトルｖ１，ｖ２，ｖ３，ｖ４の全ての１次独立な線形従属関係Σｉ＝１４　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，４），（ｍ２，１，ｍ２，２，．．．，ｍ２，４），．．．｝である。線形関係導出部３４は、行列ｍの３行目の第９成分以降よりなるベクトルｍ１＝（８３５，　２７，　１，　０）および行列ｍの４行目の第９成分以降よりなるベクトルｍ２＝（３１２，　６６１，　０，　１）を出力する。
【０２１４】
第一のイデアル縮約部１２の基底構成部３３における処理の説明に戻る。次に、イデアル縮約部１２は、図１５のグレブナ基底構成用テーブルを参照し前記値ｄ＝２を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１＝（８３５，　２７，　１，　０）およびｍ２＝（３１２，　６６１，　０，　１）中に存在しないレコードを検索する。第６レコードの位数フィールドの値は２であり、第６レコードの成分番号リスト３，４に対応する成分がすべて０であるベクトルはｍ１，ｍ２には存在していないので、検索結果として第６レコードが得られる。
【０２１５】
さらに第６レコードの第一ベクトル型の値は（＊，＊，１，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（８３５，　２７，　１，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙの各単項式の係数の列とみなし、多項式ｆ１＝８３５　＋　２７　Ｘ　＋　Ｘ２を生成する。同様にして、第６レコードの第二ベクトル型の値は（＊，＊，０，１）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（３１２，　６６１，　０，　１）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙの各単項式の係数の列とみなし、多項式ｆ２＝３１２　＋　６６１　Ｘ　＋　Ｙを生成する。第６レコードの第三ベクトル型の値はｎｕｌｌなので、無視される。最後に、イデアル縮約装置１２は、多項式の集合Ｊ＊＝｛ｆ１，ｆ２｝＝｛８３５　＋　２７　Ｘ　＋　Ｘ２，　３１２　＋　６６１　Ｘ　＋　Ｙ｝を構成し、出力する。以上で、第一のイデアル縮約部１２の動作は終了する。
【０２１６】
次に、第二のイデアル縮約部１３が、図３に示す機能ブロックの処理の流れにしたがって、図１２の代数曲線パラメータファイルＡおよび第一のイデアル縮約部１２が出力したグレブナ基底Ｊ＊＝｛ｆ１，ｆ２｝＝｛８３５　＋　２７　Ｘ　＋　Ｘ２，　３１２　＋　６６１　Ｘ　＋　Ｙ｝を入力として以下のように動作する。まず、第二のイデアル縮約部１３は、図３のイデアル型分類部３１において、図１３のイデアル型テーブルを参照し、イデアル型フィールドに記述されているイデアル型が入力イデアルＪ＊の型と一致するレコードを検索し第６レコードを得て、第６レコードのイデアル型番号フィールドの値Ｎ＝２１および縮約位数フィールドの値ｄ＝２を取得する。
【０２１７】
次に、イデアル縮約部１３は、前記ｄ＝２が０でないことを確認し、多項式ベクトル生成部３２において、図１４の単項式リストテーブルを参照し前記ｄ＝２を位数フィールドの値に持つレコードを検索し第３レコードを得て、第３レコードの単項式リストフィールドに記述されている単項式のリスト１，　Ｘ，　Ｘ２，　Ｙを取得する。さらに、イデアル縮約部１３は、Ｊ＊の第１要素ｆ＝８３５　＋　２７　Ｘ　＋　Ｘ２および第２要素ｇ＝３１２　＋　６６１Ｘ　＋　Ｙを取得し（Ｊ＊には第３要素はないので第３番目の多項式ｈは用いない）、代数曲線パラメータファイルＡの係数リスト０，７，０，０，０，０，０，０，１，１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙ，　Ｘ３，　ＸＹ，　Ｘ４，　Ｘ２　Ｙ，　Ｘ５，　Ｙ２の各単項式の係数の列とみなして、定義多項式Ｆ＝Ｙ２＋Ｘ５＋７Ｘを生成する。
【０２１８】
次に、イデアル縮約部１３は、前記単項式のリスト１，　Ｘ，　Ｘ２，　ＹのそれぞれのＭｉ（１＜＝ｉ＜＝４）に対して、Ｍｉと多項式ｇの積Ｍｉ　ｇの、多項式ｆおよびＦによる剰余式ｒｉを計算し、その係数を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙ，　Ｘ３，　ＸＹ，　Ｘ４，　Ｘ２　Ｙの順にならべて、ベクトルｖｉを生成する。すなわち、まず、第一番目の単項式Ｍ１＝１に対して、１・ｇ　＝　３１２　＋　６６１　Ｘ　＋　Ｙをｆ＝８３５　＋　２７　Ｘ　＋　Ｘ２およびＦ＝　Ｙ２＋Ｘ５＋７Ｘで割ると、ｇ　＝　０・ｆ　＋　０・Ｆ　＋　３１２　＋　６６１　Ｘ　＋　Ｙとなるので、剰余３１２　＋　６６１　Ｘ　＋　Ｙを得て、ベクトルｖ１＝（３１２，　６６１，　０，　１，　０，　０）を生成する。
【０２１９】
次に、第二番目の単項式Ｍ２＝Ｘに対して、Ｘ　ｇ　＝　Ｘ　（３１２　＋　６６１　Ｘ　＋　Ｙ）をｆ＝８３５　＋　２７　Ｘ　＋　Ｘ２およびＦ＝　Ｙ２＋Ｘ５＋７Ｘで割ると、Ｘ　ｇ　＝　６６１　ｆ　＋　０・Ｆ　＋　９９７　＋　６２７　Ｘ　＋　Ｘ　Ｙとなるので、剰余９９７　＋　６２７　Ｘ　＋　Ｘ　Ｙを得て、ベクトルｖ２＝（９９７，　６２７，　０，　０，　０，１）を生成する。次に、第三番目の単項式Ｍ３＝Ｘ２に対して、Ｘ２　ｇ　＝　Ｘ２　（３１２　＋　６６１Ｘ　＋　Ｙ）をｆ＝８３５　＋　２７　Ｘ　＋　Ｘ２およびＦ＝　Ｙ２＋Ｘ５＋７Ｘで割ると、Ｘ２　ｇ　＝　（６２７　＋　６６１　Ｘ＋　Ｙ）　ｆ　＋　０・Ｆ　＋　１２６　＋　２１２　Ｘ　＋　１７４　Ｙ　＋　９８２　Ｘ　Ｙとなるので、剰余１２６　＋　２１２　Ｘ　＋　１７４　Ｙ　＋　９８２　Ｘ　Ｙを得て、ベクトルｖ３＝（１２６，　２１２，　０，　１７４，　０，　９８２）を生成する。
【０２２０】
最後に、第四番目の単項式Ｍ４＝Ｙに対して、Ｙ　ｇ　＝　Ｙ　（３１２　＋　６６１　Ｘ　＋　Ｙ）をｆ＝８３５　＋２７　Ｘ　＋　Ｘ２およびＦ＝　Ｙ２＋Ｘ５＋７Ｘで割ると、Ｙ　ｇ　＝　（８２７　＋　１０６　Ｘ　＋　２７　Ｘ２　＋　１００８　Ｘ３）　ｆ　＋　１・Ｆ　＋　６２０　＋　１４４　Ｘ　＋　３１２　Ｙ　＋　６６１　Ｘ　Ｙとなるので、剰余６２０　＋　１４４　Ｘ　＋３１２　Ｙ　＋　６６１　Ｘ　Ｙを得て、ベクトルｖ４＝（６２０，　１４４，　０，　３１２，　０，　６６１）を生成する。以上で、第二のイデアル縮約部１３の多項式ベクトル生成部３２における処理を終了する。
【０２２１】
次に、この第二のイデアル縮約部１３は、基底構成部３３において、多項式ベクトル生成部３２で生成した、４個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４を線形関係導出部３４に入力し、出力として複数の４次元ベクトルｍ１，ｍ２，．．．を得る。線形関係導出部３４は、掃き出し法を用いて、入力されたベクトルの線形関係を導出する。掃き出し法は既知の技術に属するので、以下、線形関係導出部３４の動作はその概略のみ示す。
【０２２２】
線形関係導出部３４は、まず、入力された４個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４を順に並べて４ｘ６行列
【数３５】
2004077948.tif 000037
を構成する。
【０２２３】
次に、線形関係導出部３４は、行列ＭＲに４次元の単位行列を連結し、
【数３６】
2004077948.tif 000038
を構成する。
【０２２４】
次に、線形関係導出部３４は、ｉ行目の定数倍をｉ＋１行目から４行目に加えることで（ｉ＝１，２）、行列Ｍ’Ｒを三角化し以下の行列ｍを得る。
【数３７】
2004077948.tif 000039
【０２２５】
よく知られているように行列ｍの３から４行目の第７成分以降よりなるベクトルは、入力された４個の６次元ベクトルｖ１，ｖ２，ｖ３，ｖ４の全ての１次独立な線形従属関係Σｉ＝１４　ｍｊｉ　ｖｉ　＝　０　（ｊ＝１，２，．．．，）を表すベクトル｛（ｍ１，１，ｍ１，２，．．．，ｍ１，４），（ｍ２，１，ｍ２，２，．．．，ｍ２，４），．．．｝である。
【０２２６】
線形関係導出部３４は、行列ｍの３行目の第７成分以降よりなるベクトルｍ１＝（８３５，　２７，　１，　０）および、行列ｍの４行目の第７成分以降よりなるベクトルｍ２＝（６９７，　３４８，　０，１）を出力する。イデアル縮約部１３の基底構成部３３における処理の説明に戻る。次に、イデアル縮約部１３は、図１５のグレブナ基底構成用テーブルを参照し前記値ｄ＝２を位数フィールドの値にもち、かつ成分番号リストフィールドに記述されているすべての成分番号に対応する成分がすべて０であるベクトルが前記複数のベクトルｍ１＝（８３５，　２７，　１，　０）　およびｍ２＝（６９７，　３４８，　０，　１）中に存在しないレコードを検索する。第６レコードの位数フィールドの値は２であり、第６レコードの成分番号リスト３，４がすべて０であるベクトルはｍ１，ｍ２には存在していないので、検索結果として第６レコードが得られる。
【０２２７】
さらに、第６レコードの第一ベクトル型の値は（＊，＊，１，０）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ１＝（８３５，　２７，　１，　０）と合致するので、ベクトルｍ１を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙの各単項式の係数の列とみなし、多項式ｆ１＝８３５　＋　２７　Ｘ　＋　Ｘ２を生成する。同様にして、第６レコードの第二ベクトル型の値は（＊，＊，０，１）であり（記号＊はすべての数を表すと解釈する）、これはベクトルｍ２＝（６９７，　３４８，　０，　１）と合致するので、ベクトルｍ２を、代数曲線パラメータファイルＡの単項式順序１，　Ｘ，　Ｘ２，　Ｙの各単項式の係数の列とみなし、多項式ｆ２＝６９７　＋　３４８　Ｘ　＋　Ｙを生成する。第６レコードの第三ベクトル型の値はｎｕｌｌなので、無視される。最後に、イデアル縮約部１３は、多項式の集合Ｊ＊＊＝｛ｆ１，ｆ２｝＝｛８３５　＋　２７　Ｘ　＋　Ｘ２，　６９７　＋　３４８　Ｘ　＋　Ｙ　｝を構成し、出力する。以上で、イデアル縮約部１３の動作は終了する。
【０２２８】
最後に、図１のヤコビ群加算装置において、第二のイデアル縮約部１３の出力したグレブナ基底Ｊ＊＊＝　｛８３５　＋　２７　Ｘ　＋　Ｘ２，　６９７　＋　３４８　Ｘ　＋　Ｙ　｝が出力装置より出力される。
【０２２９】
【発明の効果】
本発明を用いることにより、Ｃａｂ曲線のヤコビ群における加算を高速に計算することができ、Ｃａｂ曲線の実用性を向上させることができるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態を示すブロック図である。
【図２】イデアル合成部の機能ブロック図である。
【図３】イデアル縮約部の機能ブロック図である。
【図４】Ｃ３４曲線に対する代数曲線パラメータファイルＡの一具体例である。
【図５】Ｃ３４曲線に対するイデアル型テーブルの一具体例である。
【図６】Ｃ３４曲線に対する単項式リストテーブルの一具体例である。
【図７】Ｃ３４曲線に対するグレブナ基底構成用テーブルの一具体例である。
【図８】Ｃ２７曲線に対する代数曲線パラメータファイルの一具体例である。
【図９】Ｃ２７曲線に対するイデアル型テーブルの一具体例である。
【図１０】Ｃ２７曲線に対する単項式リストテーブルの一具体例である。
【図１１】Ｃ２７曲線に対するグレブナ基底構成用テーブルの一具体例である。
【図１２】Ｃ２５曲線に対する代数曲線パラメータファイルの一具体例である。
【図１３】Ｃ２５曲線に対するイデアル型テーブルの一具体例である。
【図１４】Ｃ２５曲線に対する単項式リストテーブルの一具体例である。
【図１５】Ｃ２５曲線に対するグレブナ基底構成用テーブルの一具体例である。
【図１６】本発明によるヤコビ群加算アルゴリズムの演算量を示す図表である。
【符号の説明】
１０，２０，３０　代数曲線パラメータファイルＡ
１１　イデアル合成部
１２　第一のイデアル縮約部
１３　第二のイデアル縮約部
２１，３１　イデアル型分類部
２２　単項式ベクトル生成部
２３，３３　基底構成部
２４，３４　線形関係導出部
２５，３５　イデアル型テーブル
２６，３６　単項式リストテーブル
２７，３７　グレブナ基底構成用テーブル
【図１】
2004077948.tif 000040
【図２】
2004077948.tif 000041
【図３】
2004077948.tif 000042
【図４】
2004077948.tif 000043
【図５】
2004077948.tif 000044
【図６】
2004077948.tif 000045
【図７】
2004077948.tif 000046
【図８】
2004077948.tif 000047
【図９】
2004077948.tif 000048
【図１０】
2004077948.tif 000049
【図１１】
2004077948.tif 000050
【図１２】
2004077948.tif 000051
【図１３】
2004077948.tif 000052
【図１４】
2004077948.tif 000053
【図１５】
2004077948.tif 000054
【図１６】
2004077948.tif 000055