noro_module_syz

noro_module_syz User’s Manual

Edition 2.0

Sep 2020

by Masayuki Noro

Copyright © Masayuki Noro 2016. All rights reserved.


[ << ] [ < ] [上] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

1 noro_module_syz.rr

このマニュアルでは, asir-contrib パッケージに収録されている, 加群の syzygy および自由分解を計算するパッケージ ‘noro_module_syz.rr’ について解説する. このパッケージを使うには, まず ‘noro_module_syz.rr’ をロードする.

[...] load("noro_module_syz.rr");

このパッケージの函数を呼び出すには, 全て newsyz. を先頭につける.


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

1.1 多項式環上の加群

多項式環上の自由加群の元は, 加群単項式 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() により変換する方法もある.


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

1.2 加群の syzygy


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

1.2.1 newsyz.module_syz

newsyz.module_syz(f,v,h,O[|weyl=1,dp=1,f4=1])

syzygy の生成系 (グレブナー基底) を計算する.

return

要素が3つのリスト, 各要素は多項式リストまたは加群多項式のリスト

f

多項式リスト, または多項式リストのリスト

v

変数リスト

h

非負整数

O

項順序

[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 加群の自由分解

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) とする.


[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

1.3.1 newsyz.fres, newsyz.minres

newsyz.fres(f,v,h,O[|weyl=1])
newsyz.minres(f,v,h,O[|weyl=1])

加群の自由分解を計算する.

return

多項式リストのリストのリスト

f

多項式リスト, または多項式リストのリスト

v

変数リスト

h

非負整数

O

項順序

[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]

[ << ] [ < ] [] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

1.3.2 newsyz.lres, newsyz.sres, newsyz.minsres,

newsyz.lres(f,v,h,O[|dp=1,top=1])
newsyz.sres(f,v,h,O[|dp=1])
newsyz.minsres(f,v,h,O[|dp=1])

加群の自由分解を計算する.

return

多項式リストのリストのリスト

f

多項式リスト, または多項式リストのリスト

v

変数リスト

h

0 または 1

O

項順序

[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]


[ << ] [ < ] [上] [ > ] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

Index

移動:   N  
見出し一覧 

N
newsyz.fres 1.3.1 newsyz.fres, newsyz.minres
newsyz.lres 1.3.2 newsyz.lres, newsyz.sres, newsyz.minsres,
newsyz.minres 1.3.1 newsyz.fres, newsyz.minres
newsyz.minsres 1.3.2 newsyz.lres, newsyz.sres, newsyz.minsres,
newsyz.module_syz 1.2.1 newsyz.module_syz
newsyz.sres 1.3.2 newsyz.lres, newsyz.sres, newsyz.minsres,

移動:   N  

[冒頭] [目次] [見出し] [ ? ]

目次


[冒頭] [目次] [見出し] [ ? ]

簡略化した目次


[冒頭] [目次] [見出し] [ ? ]

この文書について

この文書は12月 2, 2022texi2html 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項を現在位置に仮定しています。


この文書は12月 2, 2022texi2html 5.0を用いて生成されました。