Copyright © Masayuki Noro 2016. All rights reserved.
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
| 1 noro_module_syz.rr | ||
| Index |
| 1.1 多項式環上の加群 | ||
| 1.2 加群の syzygy | ||
| 1.3 加群の自由分解 |
このマニュアルでは, asir-contrib パッケージに収録されている, 加群の syzygy および自由分解を計算するパッケージ ‘noro_module_syz.rr’ について解説する. このパッケージを使うには, まず ‘noro_module_syz.rr’ をロードする.
[...] load("noro_module_syz.rr");
このパッケージの函数を呼び出すには, 全て newsyz. を先頭につける.
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
多項式環上の自由加群の元は, 加群単項式 te_i の線型和として内部表現される.
ここで t は多項式環の単項式, e_i は自由加群の標準基底である. 加群単項式は, 多項式環の単項式
に位置 i を追加した <<a,b,...,c:i>> で表す. 加群多項式, すなわち加群単項式の線型和は,
設定されている加群項順序にしたがって降順に整列される. 加群項順序には以下の3種類がある.
TOP 順序これは, te_i > se_j となるのは t>s または (t=s かつ i<j) となるような項順序である. ここで,
t, s の比較は多項式環に設定されている順序で行う.
この型の順序は, dp_ord([0,Ord]) に
より設定する. ここで, Ord は多項式環の順序型である.
POT 順序これは, te_i > se_j となるのは i<j または (i=j かつ t>s) となるような項順序である. ここで,
t, s の比較は多項式環に設定されている順序で行う.
この型の順序は, dp_ord([1,Ord]) に
より設定する. ここで, Ord は多項式環の順序型である.
Schreyer 型順序各標準基底 e_i に対し, 別の自由加群の加群単項式 T_i が与えられていて, te_i > se_j となるのは
tT_i > sT_j または (tT_i=sT_j かつ i<j) となるような項順序である. ここで tT_i, sT_j の
比較は, これらが所属する自由加群に設定されている順序で行う.
この型の順序は, 通常再帰的に設定される. すなわち, T_i が所属する自由加群の順序も Schreyer 型
であるか, またはボトムとなる TOP, POT などの項順序となる.
この型の順序は dpm_set_schreyer([H_1,H_2,...]) により指定する. ここで,
H_i=[T_1,T_2,...] は加群単項式のリストで, [H_2,...] で定義される Schreyer 型項順序を
tT_i らに適用するという意味である.
加群多項式を入力する方法としては, <<a,b,...:i>> なる形式で直接入力する他に,
多項式リストを作り, dpm_ltod() により変換する方法もある.
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
| • noro_module_syz.modue_syz |
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
newsyz.module_syzsyzygy の生成系 (グレブナー基底) を計算する.
要素が3つのリスト, 各要素は多項式リストまたは加群多項式のリスト
多項式リスト, または多項式リストのリスト
変数リスト
非負整数
項順序
[0] load("noro_module_syz.rr")$
[43] load("cyclic")$
[53] F=cyclic(4);
[c3*c2*c1*c0-1,((c2+c3)*c1+c3*c2)*c0+c3*c2*c1,(c1+c3)*c0+c2*c1+c3*c2,
c0+c1+c2+c3]
[54] V=[c0,c1,c2,c3]$
[55] L=newsyz.module_syz(F,V,0,0)$
[56] L[0];
[[(-c2^2+c3^2)*c1-c3*c2^2+c3^3,-c3^2*c2^2+1,(c3*c2^3-c3^3*c2)*c1+...],
...,[0,0,c0+c1+c2+c3,(-c1-c3)*c0-c2*c1-c3*c2]]
[57] L[1];
[[(-c2+c3)*c1-c3^4*c2^2-c3*c2+2*c3^2],[-c3^2*c2^3-c3^3*c2^2+c2+c3],
...,[c1^2+2*c3*c1+c3^2],[c0+c1+c2+c3]]
[58] L[2];
[[(c2-c3)*c1+c3*c2-2*c3^2,c3^2*c2,(-c3*c2^2+c3^2*c2)*c1-c3*c2^3,...],
...,[0,0,-1,c1+c3],[0,0,0,1]]
[59] C0=L[2][0];
[(c2-c3)*c1+c3*c2-2*c3^2,c3^2*c2,(-c3*c2^2+c3^2*c2)*c1-c3*c2^3,
(c3*c2^3-c3^2*c2^2)*c1+c3^2*c2^3-c3^3*c2^2]
[60] L[1][0][0]-(C0[0]*F[0]+C0[1]*F[1]+C0[2]*F[2]+C0[3]*F[3]);
0
[61] M=newsuz.modules_syz(F,V,0,0dp=1)$
[62] M[0];
[(-1)*<<0,1,2,0:1>>+(-1)*<<0,0,2,1:1>>+(1)*<<0,1,0,2:1>>+...,
...,(1)*<<1,0,0,0:3>>+(1)*<<0,1,0,0:3>>+(1)*<<0,0,1,0:3>>+
...+(-1)*<<0,1,1,0:4>>+(-1)*<<1,0,0,1:4>>+(-1)*<<0,0,1,1:4>>]
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
1.3.1 newsyz.fres, newsyz.minres | ||
1.3.2 newsyz.lres, newsyz.sres, newsyz.minsres, |
R を多項式環とし. F_i を R 上の自由加群, n_i を F_i のランクとする. 本節の関数は, F_0 の部分加群 I に対し, F_0/I の自由分解 0->F_l->...->F_0->F_0/I->0 を与える関数について解説する. この自由分解において phi_i:F_i->F_(i-1) とする.
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
newsyz.fres, newsyz.minres加群の自由分解を計算する.
多項式リストのリストのリスト
多項式リスト, または多項式リストのリスト
変数リスト
非負整数
項順序
newsyz.module_syz を逐次的に実行する.
newsyz.minres では, 得られた syzygy の生成系のうち, 定数を成分に持つものがある限り簡約を行う.
newsyz.minres は, f が斉次の場合, 極小自由分解を得る.
newsyz.module_syz と同様である.
[0] load("noro_module_syz.rr")$
[43] load("katsura")$
[47] F=hkatsura(4)$
[48] V=[t,u0,u1,u2,u3,u4]$
[49] R=newsyz.fres(F,V,0,0)$
[51] map(length,R);
[5,22,28,12,2]
[52] S=newsyz.minres(F,V,0,0)$
[5,10,10,5,1]
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
newsyz.lres, newsyz.sres, newsyz.minsres,加群の自由分解を計算する.
多項式リストのリストのリスト
多項式リスト, または多項式リストのリスト
変数リスト
0 または 1
項順序
newsyz.lres は F_0/I の自由分解を La Scala-Stillman アルゴリズムにより計算する.
newsyz.sres, newsyz.minsres は F_0/I の自由分解を Schreyer アルゴリズムにより計算する.
newsyz.lres において top=1 のとき, S-多項式の剰余計算は, 先頭項が簡約できなかった時点で修了する.
newsyz.lres および newsyz.minsres は極小自由分解を得る.
[0] load("noro_module_syz.rr")$
[43] F=[x00*x11-x01*x10,x01*x12-x02*x11,x02*x13-x03*x12,-x11*x20+x21*x10,
-x21*x12+x22*x11,-x22*x13+x23*x12,x31*x20-x30*x21,x32*x21-x31*x22,x33*x22-x32*x23]$
[44] V=[x00,x01,x02,x03,x10,x11,x12,x13,x20,x21,x22,x23,x30,x31,x32,x33]$
[45] cputime(1)$
1.8e-05sec(1.502e-05sec)
[46] R=newsyz.minres(F,V,0,0)$
333.4sec(339.6sec)
[47] S=newsyz.lres(F,V,0,0)$
85.34sec(85.56sec)
[48] T=newsyz.minsres(F,V,0,0)$
241.2sec(250.3sec)
[49] cputime(0)$
[50] map(length,R);
[9,75,456,1602,3391,4680,4388,2849,1290,393,72,6]
[51] map(length,S);
[9,75,456,1602,3391,4680,4388,2849,1290,393,72,6,0]
[52] map(length,T);
[9,75,456,1602,3391,4680,4388,2849,1290,393,72,6,0]
| [ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
| 移動: | N |
|---|
| 移動: | N |
|---|
| [冒頭] | [目次] | [見出し] | [ ? ] |
| [冒頭] | [目次] | [見出し] | [ ? ] |
| [冒頭] | [目次] | [見出し] | [ ? ] |
この文書は11月 5, 2025にtexi2html 5.0を用いて生成されました。
ナビゲーションパネル中のボタンには以下の意味があります。
| ボタン | 名称 | 移動先 | 1.2.3項からの移動先 |
|---|---|---|---|
| [ << ] | FastBack | Beginning of this chapter or previous chapter | 1 |
| [ < ] | Back | Previous section in reading order | 1.2.2 |
| [上] | Up | Up section | 1.2 |
| [ > ] | Forward | Next section in reading order | 1.2.4 |
| [ >> ] | FastForward | Next chapter | 2 |
| [冒頭] | 冒頭 | Cover (top) of document | |
| [目次] | 目次 | Table of contents | |
| [見出し] | 見出し | 見出し | |
| [ ? ] | About | About (help) |
例では、以下に示す構造を持つ文書の1.2.3項を現在位置に仮定しています。
この文書は11月 5, 2025にtexi2html 5.0を用いて生成されました。