[BACK]Return to groebner.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / parts

File: [local] / OpenXM / src / asir-doc / parts / groebner.texi (download)

Revision 1.1.1.1 (vendor branch), Wed Dec 8 05:47:44 1999 UTC (24 years, 6 months ago) by noro
Branch: NORO
CVS Tags: ASIR2000
Changes since 1.1: +0 -0 lines

Imported OpenXM/src/asir-doc. 

@node $B%0%l%V%J4pDl$N7W;;(B,,, Top
@chapter $B%0%l%V%J4pDl$N7W;;(B

@menu
* $BJ,;6I=8=B?9`<0(B::
* $B%U%!%$%k$NFI$_9~$_(B::
* $B4pK\E*$JH!?t(B::
* $B7W;;$*$h$SI=<($N@)8f(B::
* $B9`=g=x$N@_Dj(B::
* $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B::
* $B4pDlJQ49(B::
* $B%0%l%V%J4pDl$K4X$9$kH!?t(B::
@end menu

@node $BJ,;6I=8=B?9`<0(B,,, $B%0%l%V%J4pDl$N7W;;(B
@section $BJ,;6I=8=B?9`<0(B

@noindent
$BJ,;6I=8=B?9`<0$H$O(B, $BB?9`<0$NFbIt7A<0$N0l$D$G$"$k(B. $BDL>o$NB?9`<0(B 
(@code{type} $B$,(B 2) $B$O(B, $B:F5"I=8=$H8F$P$l$k7A<0$GI=8=$5$l$F$$$k(B. $B$9$J$o(B
$B$A(B, $BFCDj$NJQ?t$r<gJQ?t$H$9$k(B 1 $BJQ?tB?9`<0$G(B, $B$=$NB>$NJQ?t$O(B, $B$=$N(B 1 $BJQ(B
$B?tB?9`<0$N78?t$K(B, $B<gJQ?t$r4^$^$J$$B?9`<0$H$7$F8=$l$k(B. $B$3$N78?t$,(B, $B$^$?(B, 
$B$"$kJQ?t$r<gJQ?t$H$9$kB?9`<0$H$J$C$F$$$k$3$H$+$i:F5"I=8=$H8F$P$l$k(B.


@iftex
@tex
$(x+y+z)^2 = 1 \cdot x^2 + (2 \cdot y + (2 \cdot z)) \cdot x + ((2 \cdot z) \cdot y + (1 \cdot z^2 ))$
@end tex
@end iftex
@ifinfo
@example
(x+y+z)^2 = 1 x^2 + (2 y + (2 z)) x + ((2 z) y + (1 z^2 ))
@end example
@end ifinfo

@noindent
$B$3$l$KBP$7(B, $BB?9`<0$r(B, $BJQ?t$NQQ@Q$H78?t$N@Q$NOB$H$7$FI=8=$7$?$b$N$rJ,;6(B
$BI=8=$H8F$V(B. 

@iftex
@tex
$(x+y+z)^2 = 1 \cdot x^2 + 2 \cdot xy + 2 \cdot xz + 1 \cdot y^2 + 2 \cdot yz +1 \cdot z^2$
@end tex
@end iftex
@ifinfo
@example
(x+y+z)^2 = 1 x^2 + 2 xy + 2 xz + 1 y^2 + 2 yz +1 z^2$
@end example
@end ifinfo

@noindent
$B%0%l%V%J4pDl7W;;$K$*$$$F$O(B, $BC19`<0$KCmL\$7$FA`:n$r9T$&$?$aB?9`<0$,J,;6I=8=(B
$B$5$l$F$$$kJ}$,$h$j8zN($N$h$$1i;;$,2DG=$K$J$k(B. $B$3$N$?$a(B, $BJ,;6I=8=B?9`<0$,(B, 
$B<1JL;R(B 9 $B$N7?$H$7$F(B @b{Asir} $B$N%H%C%W%l%Y%k$+$iMxMQ2DG=$H$J$C$F$$$k(B. 
$B$3$3$G(B, $B8e$N@bL@$N$?$a$K(B, $B$$$/$D$+$N8@MU$rDj5A$7$F$*$/(B. 

@table @b
@item $B9`(B (term)
$BJQ?t$NQQ@Q(B. $B$9$J$o$A(B, $B78?t(B 1 $B$NC19`<0$N$3$H(B. @b{Asir} $B$K$*$$$F$O(B, 

@example
<<0,1,2,3,4>>
@end example

$B$H$$$&7A$GI=<($5$l(B, $B$^$?(B, $B$3$N7A$GF~NO2DG=$G$"$k(B. $B$3$NNc$O(B, 5 $BJQ?t$N9`(B
$B$r<($9(B. $B3FJQ?t$r(B @code{a}, @code{b}, @code{c}, @code{d}, @code{e} $B$H$9$k$H(B
$B$3$N9`$O(B @code{b*c^2*d^3*e^4} $B$rI=$9(B. 

@item $B9`=g=x(B (term order)
$BJ,;6I=8=B?9`<0$K$*$1$k9`$O(B, $B<!$N@-<A$rK~$?$9A4=g=x$K$h$j@0Ns$5$l$k(B. 

@enumerate
@item
$BG$0U$N9`(B @code{t} $B$KBP$7(B @code{t} > 1

@item
@code{t}, @code{s}, @code{u} $B$r9`$H$9$k;~(B, @code{t} > @code{s} $B$J$i$P(B
@code{tu} > @code{su}
@end enumerate

$B$3$N@-<A$rK~$?$9A4=g=x$r9`=g=x$H8F$V(B. $B$3$N=g=x$OJQ?t=g=x(B ($BJQ?t$N%j%9%H(B) 
$B$H9`=g=x7?(B ($B?t(B, $B%j%9%H$^$?$O9TNs(B) $B$K$h$j;XDj$5$l$k(B.

@item $BC19`<0(B (monomial)
$B9`$H78?t$N@Q(B. 

@example
2*<<0,1,2,3,4>>
@end example

$B$H$$$&7A$GI=<($5$l(B, $B$^$?(B, $B$3$N7A$GF~NO2DG=$G$"$k(B. 

@itemx $BF,C19`<0(B (head monomial)
@item $BF,9`(B (head term)
@itemx $BF,78?t(B (head coefficient)
$BJ,;6I=8=B?9`<0$K$*$1$k3FC19`<0$O(B, $B9`=g=x$K$h$j@0Ns$5$l$k(B. $B$3$N;~=g(B
$B=x:GBg$NC19`<0$rF,C19`<0(B, $B$=$l$K8=$l$k9`(B, $B78?t$r$=$l$>$lF,9`(B, $BF,78?t(B
$B$H8F$V(B. 
@end table

@node $B%U%!%$%k$NFI$_9~$_(B,,, $B%0%l%V%J4pDl$N7W;;(B
@section $B%U%!%$%k$NFI$_9~$_(B

@noindent
$B%0%l%V%J4pDl$r7W;;$9$k$?$a$N4pK\E*$JH!?t$O(B @code{dp_gr_main()} $B$*$h$S(B
@code{dp_gr_mod_main()} $B$J$k(B 2 $B$D$NAH$_9~$_H!?t$G$"$k$,(B, $BDL>o$O(B, $B%Q%i%a%?(B
$B@_Dj$J$I$r9T$C$?$N$A$3$l$i$r8F$S=P$9%f!<%6H!?t$rMQ$$$k$N$,JXMx$G$"$k(B. 
$B$3$l$i$N%f!<%6H!?t$O(B, $B%U%!%$%k(B @samp{gr} $B$r(B @code{load()} $B$K$h$jFI(B
$B$_9~$`$3$H$K$h$j;HMQ2DG=$H$J$k(B. @samp{gr} $B$O(B, @b{Asir} $B$NI8=`(B
$B%i%$%V%i%j%G%#%l%/%H%j$KCV$+$l$F$$$k(B. $B$h$C$F(B, $B4D6-JQ?t(B @code{ASIR_LIBDIR}
$B$rFC$K0[$J$k%Q%9$K@_Dj$7$J$$8B$j(B, $B%U%!%$%kL>$N$_$GFI$_9~$`$3$H$,$G$-$k(B. 

@example
[0] load("gr")$
@end example

@node $B4pK\E*$JH!?t(B,,, $B%0%l%V%J4pDl$N7W;;(B
@section $B4pK\E*$JH!?t(B

@noindent
@samp{gr} $B$G$O?tB?$/$NH!?t$,Dj5A$5$l$F$$$k$,(B, $BD>@\(B
$B%0%l%V%J4pDl$r7W;;$9$k$?$a$N%H%C%W%l%Y%k$O<!$N(B 3 $B$D$G$"$k(B. 
$B0J2<$G(B, @var{plist} $B$OB?9`<0$N%j%9%H(B, @var{vlist} $B$OJQ?t(B ($BITDj85(B) $B$N%j%9%H(B, 
@var{order} $B$OJQ?t=g=x7?(B, @var{p} $B$O(B @code{2^27} $BL$K~$NAG?t$G$"$k(B. 

@table @code
@item gr(@var{plist},@var{vlist},@var{order})

Gebauer-Moeller $B$K$h$k(B useless pair elimination criteria, sugar
strategy $B$*$h$S(B Traverso $B$K$h$k(B trace-lifting $B$rMQ$$$?(B Buchberger $B%"%k(B
$B%4%j%:%`$K$h$kM-M}?t78?t%0%l%V%J4pDl7W;;H!?t(B. $B0lHL$K$O$3$NH!?t$rMQ$$$k(B.

@item hgr(@var{plist},@var{vlist},@var{order})

$BF~NOB?9`<0$r@F<!2=$7$?8e(B @code{gr()} $B$N%0%l%V%J4pDl8uJd@8@.It$K$h$j8u(B
$BJd@8@.$7(B, $BHs@F<!2=(B, interreduce $B$7$?$b$N$r(B @code{gr()} $B$N%0%l%V%J4pDl(B
$B%A%'%C%/It$G%A%'%C%/$9$k(B. 0 $B<!85%7%9%F%`(B ($B2r$N8D?t$,M-8B8D$NJ}Dx<07O(B) 
$B$N>l9g(B, sugar strategy $B$,78?tKDD%$r0z$-5/$3$9>l9g$,$"$k(B. $B$3$N$h$&$J>l(B
$B9g(B, strategy $B$r@F<!2=$K$h$k(B strategy $B$KCV$-49$($k$3$H$K$h$j78?tKDD%$r(B
$BM^@)$9$k$3$H$,$G$-$k>l9g$,B?$$(B.

@item gr_mod(@var{plist},@var{vlist},@var{order},@var{p})

Gebauer-Moeller $B$K$h$k(B useless pair elimination criteria, sugar
strategy $B$*$h$S(B Buchberger $B%"%k%4%j%:%`$K$h$k(B GF(p) $B78?t%0%l%V%J4pDl7W(B
$B;;H!?t(B.

@end table

@node $B7W;;$*$h$SI=<($N@)8f(B,,, $B%0%l%V%J4pDl$N7W;;(B
@section $B7W;;$*$h$SI=<($N@)8f(B

@noindent
$B%0%l%V%J4pDl$N7W;;$K$*$$$F(B, $B$5$^$6$^$J%Q%i%a%?@_Dj$r9T$&$3$H$K$h$j7W;;(B, 
$BI=<($r@)8f$9$k$3$H$,$G$-$k(B. $B$3$l$i$O(B, $BAH$_9~$_H!?t(B @code{dp_gr_flags()}
$B$K$h$j@_Dj;2>H$9$k$3$H$,$G$-$k(B. $BL50z?t$G(B @code{dp_gr_flags()} $B$r<B9T$9$k(B
$B$H(B, $B8=:_@_Dj$5$l$F$$$k%Q%i%a%?$,(B, $BL>A0$HCM$N%j%9%H$GJV$5$l$k(B. 

@example
[100] dp_gr_flags();
[Demand,0,NoSugar,0,NoCriB,0,NoGC,0,NoMC,0,NoRA,0,NoGCD,0,Top,0,ShowMag,1,
Print,1,Stat,0,Reverse,0,InterReduce,0,Multiple,0]
[101]
@end example

$B0J2<$G(B, $B3F%Q%i%a%?$N0UL#$r@bL@$9$k(B. on $B$N>l9g$H$O(B, $B%Q%i%a%?$,(B 0 $B$G$J$$>l9g$r(B
$B$$$&(B. $B$3$l$i$N%Q%i%a%?$N=i4|CM$OA4$F(B 0 (off) $B$G$"$k(B. 


@table @code
@item NoSugar
on $B$N>l9g(B, sugar strategy $B$NBe$o$j$K(B Buchberger$B$N(B normal strategy $B$,MQ(B
$B$$$i$l$k(B.

@item NoCriB
on $B$N>l9g(B, $BITI,MWBP8!=P5,=`$N$&$A(B, $B5,=`(B B $B$rE,MQ$7$J$$(B.

@item NoGC
on $B$N>l9g(B, $B7k2L$,%0%l%V%J4pDl$K$J$C$F$$$k$+$I$&$+$N%A%'%C%/$r9T$o$J$$(B.

@item NoMC
on $B$N>l9g(B, $B7k2L$,F~NO%$%G%"%k$HF1Ey$N%$%G%"%k$G$"$k$+$I$&$+$N%A%'%C%/(B
$B$r9T$o$J$$(B.

@item NoRA
on $B$N>l9g(B, $B7k2L$r(B reduced $B%0%l%V%J4pDl$K$9$k$?$a$N(B
interreduce $B$r9T$o$J$$(B. 

@item NoGCD
on $B$N>l9g(B, $BM-M}<078?t$N%0%l%V%J4pDl7W;;$K$*$$$F(B, $B@8@.$5$l$?B?9`<0$N(B, 
$B78?t$N(B content $B$r$H$i$J$$(B.

@item Top
on $B$N>l9g(B, normal form $B7W;;$K$*$$$FF,9`>C5n$N$_$r9T$&(B. 

@item Interreduce
on $B$N>l9g(B, $BB?9`<0$r@8@.$9$kKh$K(B, $B$=$l$^$G@8@.$5$l$?4pDl$r$=$NB?9`<0$K(B
$B$h$k(B normal form $B$GCV$-49$($k(B.

@item Reverse
on $B$N>l9g(B, normal form $B7W;;$N:]$N(B reducer $B$r(B, $B?7$7$/@8@.$5$l$?$b$N$rM%(B
$B@h$7$FA*$V(B.

@item Print
on $B$N>l9g(B, $B%0%l%V%J4pDl7W;;$NESCf$K$*$1$k$5$^$6$^$J>pJs$rI=<($9$k(B. 

@item Stat
on $B$G(B @code{Print} $B$,(B off $B$J$i$P(B, @code{Print} $B$,(B on $B$N$H$-I=<($5(B
$B$l$k%G!<%?$NFb(B, $B=87W%G!<%?$N$_$,I=<($5$l$k(B. 

@item ShowMag
on $B$G(B @code{Print} $B$,(B on $B$J$i$P(B, $B@8@.$,@8@.$5$l$kKh$K(B, $B$=$NB?9`<0$N(B
$B78?t$N%S%C%HD9$NOB$rI=<($7(B, $B:G8e$K(B, $B$=$l$i$NOB$N:GBgCM$rI=<($9$k(B. 

@item Multiple
0 $B$G$J$$@0?t$N;~(B, $BM-M}?t>e$N@55,7A7W;;$K$*$$$F(B, $B78?t$N%S%C%HD9$NOB$,(B
@code{Multiple} $BG\$K$J$k$4$H$K78?tA4BN$N(B GCD $B$,7W;;$5$l(B, $B$=$N(B GCD $B$G(B
$B3d$C$?B?9`<0$r4JLs$9$k(B. @code{Multiple} $B$,(B 1 $B$J$i$P(B, $B4JLs$9$k$4$H$K(B
GCD $B7W;;$,9T$o$l0lHL$K$O8zN($,0-$/$J$k$,(B, @code{Multiple} $B$r(B 2 $BDxEY(B
$B$H$9$k$H(B, $B5pBg$J@0?t$,78?t$K8=$l$k>l9g(B, $B8zN($,NI$/$J$k>l9g$,$"$k(B. 

@item Demand
$B@5Ev$J%G%#%l%/%H%jL>(B ($BJ8;zNs(B) $B$rCM$K;}$D$H$-(B, $B@8@.$5$l$?B?9`<0$O%a%b%j(B
$BCf$K$*$+$l$:(B, $B$=$N%G%#%l%/%H%jCf$K%P%$%J%j%G!<%?$H$7$FCV$+$l(B, $B$=$NB?9`(B
$B<0$rMQ$$$k(B normal form $B7W;;$N:](B, $B<+F0E*$K%a%b%jCf$K%m!<%I$5$l$k(B. $B3FB?(B
$B9`<0$O(B, $BFbIt$G$N%$%s%G%C%/%9$r%U%!%$%kL>$K;}$D%U%!%$%k$K3JG<$5$l$k(B. 
$B$3$3$G;XDj$5$l$?%G%#%l%/%H%j$K=q$+$l$?%U%!%$%k$O<+F0E*$K$O>C5n$5$l$J$$(B
$B$?$a(B, $B%f!<%6$,@UG$$r;}$C$F>C5n$9$kI,MW$,$"$k(B. 
@end table

@noindent
@code{Print} $B$,(B 0 $B$G$J$$>l9g<!$N$h$&$J%G!<%?$,I=<($5$l$k(B.

@example
[93] gr(cyclic(4),[c0,c1,c2,c3],0)$
mod= 99999989, eval = []
(0)(0)<<0,2,0,0>>(2,3),nb=2,nab=5,rp=2,sugar=2,mag=4
(0)(0)<<0,1,2,0>>(1,2),nb=3,nab=6,rp=2,sugar=3,mag=4
(0)(0)<<0,1,1,2>>(0,1),nb=4,nab=7,rp=3,sugar=4,mag=6
.
(0)(0)<<0,0,3,2>>(5,6),nb=5,nab=8,rp=2,sugar=5,mag=4
(0)(0)<<0,1,0,4>>(4,6),nb=6,nab=9,rp=3,sugar=5,mag=4
(0)(0)<<0,0,2,4>>(6,8),nb=7,nab=10,rp=4,sugar=6,mag=6
....gb done
reduceall
.......
membercheck
(0,0)(0,0)(0,0)(0,0)
gbcheck total 8 pairs
........
UP=(0,0)SP=(0,0)SPM=(0,0)NF=(0,0)NFM=(0.010002,0)ZNFM=(0.010002,0)PZ=(0,0)
NP=(0,0)MP=(0,0)RA=(0,0)MC=(0,0)GC=(0,0)T=40,B=0 M=8 F=6 D=12 ZR=5 NZR=6
Max_mag=6
[94]
@end example

@noindent
$B:G=i$KI=<($5$l$k(B @code{mod}, @code{eval} $B$O(B, trace-lifting $B$GMQ$$$i$l$kK!(B
$B$G$"$k(B. @code{mod} $B$OAG?t(B, @code{eval} $B$OM-M}<078?t$N>l9g$KMQ$$$i$l$k(B
$B?t$N%j%9%H$G$"$k(B. 

@noindent
$B7W;;ESCf$GB?9`<0$,@8@.$5$l$kKh$K<!$N7A$N%G!<%?$,I=<($5$l$k(B. 

@example
(TNF)(TCONT)HT(INDEX),nb=NB,nab=NAB,rp=RP,sugar=S,mag=M
@end example

@noindent
$B$=$l$i$N0UL#$O<!$NDL$j(B. 

@table @code
@item TNF
normal form $B7W;;;~4V(B ($BIC(B)

@item TCONT
content $B7W;;;~4V(B ($BIC(B)

@item HT
$B@8@.$5$l$?B?9`<0$NF,9`(B

@item INDEX
S-$BB?9`<0$r9=@.$9$kB?9`<0$N%$%s%G%C%/%9$N%Z%"(B

@item NB
$B8=:_$N(B, $B>iD9@-$r=|$$$?4pDl$N?t(B

@item NAB
$B8=:_$^$G$K@8@.$5$l$?4pDl$N?t(B

@item RP
$B;D$j$N%Z%"$N?t(B

@item S
$B@8@.$5$l$?B?9`<0$N(B sugar $B$NCM(B

@item M
$B@8@.$5$l$?B?9`<0$N78?t$N%S%C%HD9$NOB(B (@code{ShowMag} $B$,(B on $B$N;~$KI=<($5$l$k(B. )
@end table

@noindent
$B:G8e$K(B, $B=87W%G!<%?$,I=<($5$l$k(B. $B0UL#$O<!$NDL$j(B. 
($B;~4V$NI=<($K$*$$$F(B, $B?t;z$,(B 2 $B$D$"$k$b$N$O(B, $B7W;;;~4V$H(B GC $B;~4V$N%Z%"$G$"$k(B.)


@table @code
@item UP
$B%Z%"$N%j%9%H$NA`:n$K$+$+$C$?;~4V(B

@item SP
$BM-M}?t>e$N(B S-$BB?9`<07W;;;~4V(B

@item SPM
$BM-8BBN>e$N(B S-$BB?9`<07W;;;~4V(B

@item NF
$BM-M}?t>e$N(B normal form $B7W;;;~4V(B

@item NFM
$BM-8BBN>e$N(B normal form $B7W;;;~4V(B

@item ZNFM
@code{NFM} $B$NFb(B, 0 $B$X$N(B reduction $B$K$+$+$C$?;~4V(B

@item PZ
content $B7W;;;~4V(B

@item NP
$BM-M}?t78?tB?9`<0$N78?t$KBP$9$k>jM>1i;;$N7W;;;~4V(B

@item MP
S-$BB?9`<0$r@8@.$9$k%Z%"$NA*Br$K$+$+$C$?;~4V(B

@item RA
interreduce $B7W;;;~4V(B

@item MC
trace-lifting $B$K$*$1$k(B, $BF~NOB?9`<0$N%a%s%P%7%C%W7W;;;~4V(B

@item GC
$B7k2L$N%0%l%V%J4pDl8uJd$N%0%l%V%J4pDl%A%'%C%/;~4V(B

@item T
$B@8@.$5$l$?%Z%"$N?t(B

@item B, M, F, D
$B3F(B criterion $B$K$h$j=|$+$l$?%Z%"$N?t(B
      
@item ZR
0 $B$K(B reduce $B$5$l$?%Z%"$N?t(B

@item NZR
0 $B$G$J$$B?9`<0$K(B reduce $B$5$l$?%Z%"$N?t(B

@item Max_mag
$B@8@.$5$l$?B?9`<0$N(B, $B78?t$N%S%C%HD9$NOB$N:GBgCM(B

@end table

@node $B9`=g=x$N@_Dj(B,,, $B%0%l%V%J4pDl$N7W;;(B
@section $B9`=g=x$N@_Dj(B

@noindent
$B9`$OFbIt$G$O(B, $B3FJQ?t$K4X$9$k;X?t$r@.J,$H$9$k@0?t%Y%/%H%k$H$7$FI=8=$5$l(B
$B$k(B. $BB?9`<0$rJ,;6I=8=B?9`<0$KJQ49$9$k:](B, $B3FJQ?t$,$I$N@.J,$KBP1~$9$k$+$r(B
$B;XDj$9$k$N$,(B, $BJQ?t%j%9%H$G$"$k(B. $B$5$i$K(B, $B$=$l$i@0?t%Y%/%H%k$NA4=g=x$r(B
$B;XDj$9$k$N$,9`=g=x$N7?$G$"$k(B. $B9`=g=x7?$O(B, $B?t(B, $B?t$N%j%9%H$"$k$$$O(B
$B9TNs$GI=8=$5$l$k(B. 

@noindent
$B4pK\E*$J9`=g=x7?$H$7$F<!$N(B 3 $B$D$,$"$k(B. 

@table @code
@item 0 (DegRevLex; @b{$BA4<!?t5U<-=q<0=g=x(B})

$B0lHL$K(B, $B$3$N=g=x$K$h$k%0%l%V%J4pDl7W;;$,:G$b9bB.$G$"$k(B. $B$?$@$7(B, 
$BJ}Dx<0$r2r$/$H$$$&L\E*$KMQ$$$k$3$H$O(B, $B0lHL$K$O$G$-$J$$(B. $B$3$N(B
$B=g=x$K$h$k%0%l%V%J4pDl$O(B, $B2r$N8D?t$N7W;;(B, $B%$%G%"%k$N%a%s%P%7%C%W$d(B, 
$BB>$NJQ?t=g=x$X$N4pDlJQ49$N$?$a$N%=!<%9$H$7$FMQ$$$i$l$k(B. 

@item 1 (DegLex; @b{$BA4<!?t<-=q<0=g=x(B})

$B$3$N=g=x$b(B, $B<-=q<0=g=x$KHf$Y$F9bB.$K%0%l%V%J4pDl$r5a$a$k$3$H$,$G$-$k$,(B, 
@code{DegRevLex} $B$HF1MMD>@\$=$N7k2L$rMQ$$$k$3$H$O:$Fq$G$"$k(B. $B$7$+$7(B, 
$B<-=q<0=g=x$N%0%l%V%J4pDl$r5a$a$k:]$K(B, $B@F<!2=8e$K$3$N=g=x$G%0%l%V%J4pDl(B
$B$r5a$a$F$$$k(B. 

@item 2 (Lex; @b{$B<-=q<0=g=x(B})

$B$3$N=g=x$K$h$k%0%l%V%J4pDl$O(B, $BJ}Dx<0$r2r$/>l9g$K:GE,$N7A$N4pDl$rM?$($k$,(B
$B7W;;;~4V$,$+$+$j2a$.$k$N$,FqE@$G$"$k(B. $BFC$K(B, $B2r$,M-8B8D$N>l9g(B, $B7k2L$N(B
$B78?t$,6K$a$FD9Bg$JB?G\D9?t$K$J$k>l9g$,B?$$(B. $B$3$N>l9g(B, @code{gr()}, 
@code{hgr()} $B$K$h$k7W;;$,6K$a$FM-8z$K$J$k>l9g$,B?$$(B. 
@end table

@noindent
$B$3$l$i$rAH$_9g$o$;$F%j%9%H$G;XDj$9$k$3$H$K$h$j(B, $BMM!9$J>C5n=g=x$,;XDj$G$-$k(B. 
$B$3$l$O(B, 

@code{[[O1,L1],[O2,L2],...]}

@noindent
$B$G;XDj$5$l$k(B. @code{Oi} $B$O(B 0, 1, 2 $B$N$$$:$l$+$G(B, @code{Li} $B$OJQ?t$N8D(B
$B?t$rI=$9(B. $B$3$N;XDj$O(B, $BJQ?t$r@hF,$+$i(B @code{L1}, @code{L2} , ...$B8D(B
$B$:$D$NAH$KJ,$1(B, $B$=$l$>$l$NJQ?t$K4X$7(B, $B=g$K(B @code{O1}, @code{O2},
...$B$N9`=g=x7?$GBg>.$,7hDj$9$k$^$GHf3S$9$k$3$H$r0UL#$9$k(B. $B$3$N7?$N(B
$B=g=x$O0lHL$K>C5n=g=x$H8F$P$l$k(B. 

@noindent
$B$5$i$K(B, $B9TNs$K$h$j9`=g=x$r;XDj$9$k$3$H$,$G$-$k(B. $B0lHL$K(B, @code{n} $B9T(B
@code{m} $BNs$N<B?t9TNs(B @code{M} $B$,<!$N@-<A$r;}$D$H$9$k(B. 

@enumerate
@item
$BD9$5(B @code{m} $B$N@0?t%Y%/%H%k(B @code{v} $B$KBP$7(B @code{Mv=0} $B$H(B @code{v=0} $B$OF1CM(B. 

@item
$BHsIi@.J,$r;}$DD9$5(B @code{m} $B$N(B 0 $B$G$J$$@0?t%Y%/%H%k(B @code{v} $B$KBP$7(B, 
@code{Mv} $B$N(B 0 $B$G$J$$:G=i$N@.J,$OHsIi(B.
@end enumerate

@noindent
$B$3$N;~(B, 2 $B$D$N%Y%/%H%k(B @code{t}, @code{s} $B$KBP$7(B, 
@code{t>s} $B$r(B, @code{M(t-s)} $B$N(B 0 $B$G$J$$:G=i$N@.J,$,HsIi(B,
$B$GDj5A$9$k$3$H$K$h$j9`=g=x$,Dj5A$G$-$k(B.

@noindent
$B9`=g=x7?$O(B, @code{gr()} $B$J$I$N0z?t$H$7$F;XDj$5$l$kB>(B, $BAH$_9~$_H!?t(B
@code{dp_ord()} $B$G;XDj$5$l(B, $B$5$^$6$^$JH!?t$N<B9T$N:]$K;2>H$5$l$k(B. 

@noindent
$B$3$l$i$N=g=x$N6qBNE*$JDj5A$*$h$S%0%l%V%J4pDl$K4X$9$k99$K>\$7$$2r@b$O(B
@code{[Becker,Weispfenning]} $B$J$I$r;2>H$N$3$H(B. 

@noindent
$B9`=g=x7?$N@_Dj$NB>$K(B, $BJQ?t$N=g=x<+BN$b7W;;;~4V$KBg$-$J1F6A$rM?$($k(B. 

@example
[90] B=[x^10-t,x^8-z,x^31-x^6-x-y]$
[91] gr(B,[x,y,z,t],2);
[x^2-2*y^7+(-41*t^2-13*t-1)*y^2+(2*t^17-12*t^14+42*t^12+30*t^11-168*t^9
-40*t^8+70*t^7+252*t^6+30*t^5-140*t^4-168*t^3+2*t^2-12*t+16)*z^2*y
+(-12*t^16+72*t^13-28*t^11-180*t^10+112*t^8+240*t^7+28*t^6-127*t^5
-167*t^4-55*t^3+30*t^2+58*t-15)*z^4,
(y+t^2*z^2)*x+y^7+(20*t^2+6*t+1)*y^2+(-t^17+6*t^14-21*t^12-15*t^11+84*t^9
+20*t^8-35*t^7-126*t^6-15*t^5+70*t^4+84*t^3-t^2+5*t-9)*z^2*y+(6*t^16-36*t^13
+14*t^11+90*t^10-56*t^8-120*t^7-14*t^6+64*t^5+84*t^4+27*t^3-16*t^2-30*t+7)*z^4,
(t^3-1)*x-y^6+(-6*t^13+24*t^10-20*t^8-36*t^7+40*t^5+24*t^4-6*t^3-20*t^2-6*t-1)*y
+(t^17-6*t^14+9*t^12+15*t^11-36*t^9-20*t^8-5*t^7+54*t^6+15*t^5+10*t^4-36*t^3
-11*t^2-5*t+9)*z^2,
-y^8-8*t*y^3+16*z^2*y^2+(-8*t^16+48*t^13-56*t^11-120*t^10+224*t^8+160*t^7
-56*t^6-336*t^5-112*t^4+112*t^3+224*t^2+24*t-56)*z^4*y+(t^24-8*t^21+20*t^19
+28*t^18-120*t^16-56*t^15+14*t^14+300*t^13+70*t^12-56*t^11-400*t^10-84*t^9
+84*t^8+268*t^7+84*t^6-56*t^5-63*t^4-36*t^3+46*t^2-12*t+1)*z,
2*t*y^5+z*y^2+(-2*t^11+8*t^8-20*t^6-12*t^5+40*t^3+8*t^2-10*t-20)*z^3*y+8*t^14
-32*t^11+48*t^8-t^7-32*t^5-6*t^4+9*t^2-t,
-z*y^3+(t^7-2*t^4+3*t^2+t)*y+(-2*t^6+4*t^3+2*t-2)*z^2,
2*t^2*y^3+z^2*y^2+(-2*t^5+4*t^2-6)*z^4*y+(4*t^8-t^7-8*t^5+2*t^4-4*t^3+5*t^2-t)*z,
z^3*y^2+2*t^3*y+(-t^7+2*t^4+t^2-t)*z^2,
-t*z*y^2-2*z^3*y+t^8-2*t^5-t^3+t^2,
-t^3*y^2-2*t^2*z^2*y+(t^6-2*t^3-t+1)*z^4,
z^5-t^4]
[93] gr(B,[t,z,y,x],2);
[x^10-t,x^8-z,x^31-x^6-x-y]
@end example

@noindent
$BJQ?t=g=x(B @code{[x,y,z,t]} $B$K$*$1$k%0%l%V%J4pDl$O(B, $B4pDl$N?t$bB?$/(B, $B$=$l$>$l$N(B
$B<0$bBg$-$$(B. $B$7$+$7(B, $B=g=x(B @code{[t,z,y,x]} $B$K$b$H$G$O(B, @code{B} $B$,$9$G$K(B
$B%0%l%V%J4pDl$H$J$C$F$$$k(B. $BBg;(GD$K$$$($P(B, $B<-=q<0=g=x$G%0%l%V%J4pDl$r5a$a$k(B
$B$3$H$O(B, $B:8B&$N(B ($B=g=x$N9b$$(B) $BJQ?t$r(B, $B1&B&$N(B ($B=g=x$NDc$$(B) $BJQ?t$G=q$-I=$9(B
$B$3$H$G$"$j(B, $B$3$NNc$N>l9g$O(B, @code{t},  @code{z}, @code{y} $B$,4{$K(B
@code{x} $B$GI=$5$l$F$$$k$3$H$+$i$3$N$h$&$J6KC<$J7k2L$H$J$C$?$o$1$G$"$k(B. 
$B<B:]$K8=$l$k7W;;$K$*$$$F$O(B, $B$3$N$h$&$KA*$V$Y$-JQ?t=g=x$,L@$i$+$G$"$k(B
$B$3$H$O>/$J$/(B, $B;n9T:x8m$,I,MW$J>l9g$b$"$k(B. 

@node $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B,,, $B%0%l%V%J4pDl$N7W;;(B
@section $BM-M}<0$r78?t$H$9$k%0%l%V%J4pDl7W;;(B

@noindent
@code{gr()} $B$J$I$N%H%C%W%l%Y%kH!?t$O(B, $B$$$:$l$b(B, $BF~NOB?9`<0%j%9%H$K(B
$B8=$l$kJQ?t(B ($BITDj85(B) $B$H(B, $BJQ?t%j%9%H$K8=$l$kJQ?t$rHf3S$7$F(B, $BJQ?t%j%9%H$K(B
$B$J$$JQ?t$,F~NOB?9`<0$K8=$l$F$$$k>l9g$K$O(B, $B<+F0E*$K(B, $B$=$NJQ?t$r(B, $B78?t(B
$BBN$N85$H$7$F07$&(B. 

@example
[64] gr([a*x+b*y-c,d*x+e*y-f],[x,y],2);
[(-e*a+d*b)*x-f*b+e*c,(-e*a+d*b)*y+f*a-d*c]
@end example

@noindent
$B$3$NNc$G$O(B, @code{a}, @code{b}, @code{c}, @code{d} $B$,78?tBN$N85$H$7$F(B
$B07$o$l$k(B. $B$9$J$o$A(B, $BM-M}H!?tBN(B 
@b{F} = @b{Q}(@code{a},@code{b},@code{c},@code{d}) $B>e$N(B 2 $BJQ?tB?9`<04D(B
@b{F}[@code{x},@code{y}] $B$K$*$1$k%0%l%V%J4pDl$r5a$a$k$3$H$K$J$k(B. 
$BCm0U$9$Y$-$3$H$O(B, 
$B78?t$,BN$H$7$F07$o$l$F$$$k$3$H$G$"$k(B. $B$9$J$o$A(B, $B78?t$N4V$KB?9`<0(B
$B$H$7$F$N6&DL0x;R$,$"$C$?>l9g$K$O(B, $B7k2L$+$i$=$N0x;R$O=|$+$l$F$$$k(B
$B$?$a(B, $BM-M}?tBN>e$NB?9`<04D>e$NLdBj$H$7$F9M$($?>l9g$N7k2L$H$O0lHL(B
$B$K$O0[$J$k(B. $B$^$?(B, $B<g$H$7$F7W;;8zN(>e$NLdBj$N$?$a(B, $BJ,;6I=8=B?9`<0(B
$B$N78?t$H$7$F<B:]$K5v$5$l$k$N$OB?9`<0$^$G$G$"$k(B. $B$9$J$o$A(B, $BJ,Jl$r(B
$B;}$DM-M}<0$OJ,;6I=8=B?9`<0$N78?t$H$7$F$O5v$5$l$J$$(B. 

@node $B4pDlJQ49(B,,, $B%0%l%V%J4pDl$N7W;;(B
@section $B4pDlJQ49(B

@noindent
$B<-=q<0=g=x$N%0%l%V%J4pDl$r5a$a$k>l9g(B, $BD>@\(B @code{gr()} $B$J$I$r5/F0$9$k(B
$B$h$j(B, $B0lC6B>$N=g=x(B ($BNc$($PA4<!?t5U<-=q<0=g=x(B) $B$N%0%l%V%J4pDl$r7W;;$7$F(B, 
$B$=$l$rF~NO$H$7$F<-=q<0=g=x$N%0%l%V%J4pDl$r7W;;$9$kJ}$,8zN($,$h$$>l9g(B
$B$,$"$k(B. $B$^$?(B, $BF~NO$,2?$i$+$N=g=x$G$N%0%l%V%J4pDl$K$J$C$F$$$k>l9g(B, $B4pDl(B
$BJQ49$H8F$P$l$kJ}K!$K$h$j(B, Buchberger $B%"%k%4%j%:%`$K$h$i$:$K8zN(NI$/(B
$B<-=q<0=g=x$N%0%l%V%J4pDl$,7W;;$G$-$k>l9g$,$"$k(B. $B$3$N$h$&$JL\E*$N$?$a$N(B
$BH!?t$,(B, $B%f!<%6Dj5AH!?t$H$7$F(B @samp{gr} $B$K$$$/$D$+Dj5A$5$l$F$$$k(B. 
$B0J2<$N(B 2 $B$D$NH!?t$O(B, $BJQ?t=g=x(B @var{vlist1}, $B9`=g=x7?(B @var{order} $B$G(B
$B4{$K%0%l%V%J4pDl$H$J$C$F$$$kB?9`<0%j%9%H(B @var{gbase} $B$r(B, $BJQ?t=g=x(B
@var{vlist2} $B$K$*$1$k<-=q<0=g=x$N%0%l%V%J4pDl$KJQ49$9$kH!?t$G$"$k(B. 

@table @code
@item tolex(@var{gbase},@var{vlist1},@var{order},@var{vlist2})

$B$3$NH!?t$O(B, @var{gbase} $B$,M-M}?tBN>e$N%7%9%F%`$N>l9g$K$N$_;HMQ2DG=$G$"$k(B. 
$B$3$NH!?t$O(B, $B<-=q<0=g=x$N%0%l%V%J4pDl$r(B, $BM-8BBN>e$G7W;;$5$l$?%0%l%V%J4pDl(B
$B$r?w7?$H$7$F(B, $BL$Dj78?tK!$*$h$S(B Hensel $B9=@.$K$h$j5a$a$k$b$N$G$"$k(B. 

@item tolex_tl(@var{gbase},@var{vlist1},@var{order},@var{vlist2},@var{homo})

$B$3$NH!?t$O(B, $B<-=q<0=g=x$N%0%l%V%J4pDl$r(B Buchberger $B%"%k%4%j%:%`$K$h$j5a(B
$B$a$k$b$N$G$"$k$,(B, $BF~NO$,$"$k=g=x$K$*$1$k%0%l%V%J4pDl$G$"$k>l9g$N(B 
trace-lifting$B$K$*$1$k%0%l%V%J4pDl8uJd$NF,9`(B, $BF,78?t$N@-<A$rMxMQ$7$F(B, 
$B:G=*E*$J%0%l%V%J4pDl%A%'%C%/(B, $B%$%G%"%k%a%s%P%7%C%W%A%'%C%/$r>JN,$7$F$$(B
$B$k$?$a(B, $BC1$K(BBuchberger $B%"%k%4%j%:%`$r7+$jJV$9$h$j8zN($h$/7W;;$G$-$k(B. 
$B99$K(B, $BF~NO$,(B 0 $B<!85%7%9%F%`$N>l9g(B, $B<+F0E*$K$b$&(B 1 $B$D$NCf4VE*$J9`=g=x$r(B
$B7PM3$7$F<-=q<0=g=x$N%0%l%V%J4pDl$r7W;;$9$k(B. $BB?$/$N>l9g(B, $B$3$NJ}K!$O(B, 
$BD>@\<-=q<0=g=x$N7W;;$r9T$&$h$j8zN($,$h$$(B. ($B$b$A$m$sNc30$"$j(B. )
$B0z?t(B @var{homo} $B$,(B 0 $B$G$J$$;~(B, @code{hgr()} $B$HF1MM$K@F<!2=$r7PM3$7$F(B
$B7W;;$r9T$&(B. 

@end table

@noindent
$B$=$NB>(B, 0 $B<!85%7%9%F%`$KBP$7(B, $BM?$($i$l$?B?9`<0$N:G>.B?9`<0$r5a$a$k(B
$BH!?t(B, 0 $B<!85%7%9%F%`$N2r$r(B, $B$h$j%3%s%Q%/%H$KI=8=$9$k$?$a$NH!?t$J$I$,(B
@samp{gr} $B$GDj5A$5$l$F$$$k(B. $B$3$l$i$K$D$$$F$O8D!9$NH!?t$N@bL@$r;2>H$N$3$H(B. 

@node $B%0%l%V%J4pDl$K4X$9$kH!?t(B,,, $B%0%l%V%J4pDl$N7W;;(B
@section $B%0%l%V%J4pDl$K4X$9$kH!?t(B

@menu
* gr hgr gr_mod::
* lex_hensel lex_tl tolex tolex_d tolex_tl::
* lex_hensel_gsl tolex_gsl tolex_gsl_d::
* gr_minipoly minipoly::
* tolexm minipolym::
* dp_gr_main dp_gr_mod_main::
* dp_f4_main dp_f4_mod_main::
* dp_gr_flags dp_gr_print::
* dp_ord::
* dp_ptod::
* dp_dtop::
* dp_mod dp_rat::
* dp_homo dp_dehomo::
* dp_ptozp dp_prim::
* dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod::
* dp_hm dp_ht dp_hc dp_rest::
* dp_td dp_sugar::
* dp_lcm::
* dp_redble::
* dp_subd::
* dp_mbase::
* dp_mag::
* dp_red dp_red_mod::
* dp_sp dp_sp_mod::
* p_nf p_nf_mod p_true_nf p_true_nf_mod ::
* p_terms::
* gb_comp::
* katsura hkatsura cyclic hcyclic::
* dp_vtoe dp_etov::
* lex_hensel_gsl tolex_gsl tolex_gsl_d::
@end menu

@node gr hgr gr_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{gr}, @code{hgr}, @code{gr_mod}, @code{dgr}
@findex gr
@findex hgr
@findex gr_mod
@findex dgr

@table @t
@item gr(@var{plist},@var{vlist},@var{order})
@itemx hgr(@var{plist},@var{vlist},@var{order})
@itemx gr_mod(@var{plist},@var{vlist},@var{order},@var{p})
@itemx dgr(@var{plist},@var{vlist},@var{order},@var{procs})
:: $B%0%l%V%J4pDl$N7W;;(B
@end table

@table @var
@item return
$B%j%9%H(B
@item plist, vlist, procs
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@item p
2^27 $BL$K~$NAG?t(B
@end table

@itemize @bullet
@item
$BI8=`%i%$%V%i%j$N(B @samp{gr} $B$GDj5A$5$l$F$$$k(B. 
@item
$B$$$:$l$b(B, $BB?9`<0%j%9%H(B @var{plist} $B$N(B, $BJQ?t=g=x(B @var{vlist}, $B9`=g=x7?(B
@var{order} $B$K4X$9$k%0%l%V%J4pDl$r5a$a$k(B. @code{gr()}, @code{hgr()}
$B$O(B $BM-M}?t78?t(B, @code{gr_mod()} $B$O(B GF(@var{p}) $B78?t$H$7$F7W;;$9$k(B. 
@item
@var{vlist} $B$OITDj85$N%j%9%H(B. @var{vlist} $B$K8=$l$J$$ITDj85$O(B, 
$B78?tBN$KB0$9$k$H8+$J$5$l$k(B. 
@item
@code{gr()}, trace-lifting ($B%b%8%e%i1i;;$rMQ$$$?9bB.2=(B) $B$*$h$S(B sugar
strategy $B$K$h$k7W;;(B, @code{hgr()} $B$O(B trace-lifting $B$*$h$S(B
$B@F<!2=$K$h$k(B $B6:@5$5$l$?(B sugar strategy $B$K$h$k7W;;$r9T$&(B. 
@item
@code{dgr()} $B$O(B, @code{gr()}, @code{dgr()} $B$r(B
$B;R%W%m%;%9%j%9%H(B @var{procs} $B$N(B 2 $B$D$N%W%m%;%9$K$h$jF1;~$K7W;;$5$;(B, 
$B@h$K7k2L$rJV$7$?J}$N7k2L$rJV$9(B. $B7k2L$OF10l$G$"$k$,(B, $B$I$A$i$NJ}K!$,(B
$B9bB.$+0lHL$K$OITL@$N$?$a(B, $B<B:]$N7P2a;~4V$rC;=L$9$k$N$KM-8z$G$"$k(B. 
@item
@code{dgr()} $B$GI=<($5$l$k;~4V$O(B, $B$3$NH!?t$,<B9T$5$l$F$$$k%W%m%;%9$G$N(B
CPU $B;~4V$G$"$j(B, $B$3$NH!?t$N>l9g$O$[$H$s$IDL?.$N$?$a$N;~4V$G$"$k(B. 
@end itemize

@example
[0] load("gr")$
[64] load("cyclic")$
[74] G=gr(cyclic(5),[c0,c1,c2,c3,c4],2);
[c4^15+122*c4^10-122*c4^5-1,...]
[75] GM=gr_mod(cyclic(5),[c0,c1,c2,c3,c4],2,31991)$
24628*c4^15+29453*c4^10+2538*c4^5+7363
[76] (G[0]*24628-GM[0])%31991;
0
@end example

@table @t
@item $B;2>H(B
@comment @fref{dp_gr_main dp_gr_mod_main},
@fref{dp_gr_main dp_gr_mod_main},
@fref{dp_ord}.
@end table

@node lex_hensel lex_tl tolex tolex_d tolex_tl,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{lex_hensel}, @code{lex_tl}, @code{tolex}, @code{tolex_d}, @code{tolex_tl}
@findex lex_hensel
@findex lex_tl
@findex tolex
@findex tolex_d
@findex tolex_tl

@table @t
@item lex_hensel(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo})
@itemx lex_tl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo})
:: $B4pDlJQ49$K$h$k<-=q<0=g=x%0%l%V%J4pDl$N7W;;(B
@item tolex(@var{plist},@var{vlist1},@var{order},@var{vlist2})
@itemx tolex_d(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{procs})
@itemx tolex_tl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo})
:: $B%0%l%V%J4pDl$rF~NO$H$9$k(B, $B4pDlJQ49$K$h$k<-=q<0=g=x%0%l%V%J4pDl$N7W;;(B
@end table

@table @var
@item return
$B%j%9%H(B
@item plist, vlist1, vlist2, procs
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@item homo
$B%U%i%0(B
@end table

@itemize @bullet
@item
$BI8=`%i%$%V%i%j$N(B @samp{gr} $B$GDj5A$5$l$F$$$k(B. 
@item
@code{lex_hensel()}, @code{lex_tl()} $B$O(B, 
$BB?9`<0%j%9%H(B @var{plist} $B$N(B, $BJQ?t=g=x(B @var{vlist1}, $B9`=g=x7?(B
@var{order} $B$K4X$9$k%0%l%V%J4pDl$r5a$a(B, $B$=$l$r(B, $BJQ?t=g=x(B @var{vlist2}
$B$N<-=q<0=g=x%0%l%V%J4pDl$KJQ49$9$k(B. 
@item
@code{tolex()}, @code{tolex_tl()} $B$O(B, 
$BJQ?t=g=x(B @var{vlist1}, $B9`=g=x7?(B @var{order} $B$K4X$9$k%0%l%V%J4pDl$G$"$k(B
$BB?9`<0%j%9%H(B @var{plist} $B$rJQ?t=g=x(B @var{vlist2} $B$N<-=q<0=g=x%0%l%V%J(B
$B4pDl$KJQ49$9$k(B. 
@code{tolex_d()} $B$O(B, @code{tolex()} $B$K$*$1$k(B, $B3F4pDl$N7W;;$r(B, $B;R%W%m%;%9(B
$B%j%9%H(B @var{procs} $B$N3F%W%m%;%9$KJ,;67W;;$5$;$k(B. 
@item
@code{lex_hensel()}, @code{lex_tl()} $B$K$*$$$F$O(B, $B<-=q<0=g=x%0%l%V%J4pDl$N(B
$B7W;;$O<!$N$h$&$K9T$o$l$k(B. (@code{[Noro,Yokoyama]} $B;2>H(B.)

@enumerate
@item
@var{vlist1}, @var{order} $B$K4X$9$k%0%l%V%J4pDl(B @var{G0} $B$r7W;;$9$k(B. 
(@code{lex_hensel()} $B$N$_(B. )
@item
@var{G0} $B$N3F85$N(B @var{vlist2} $B$K4X$9$k<-=q<0=g=x$K$*$1$kF,78?t$r3d$i$J$$(B
$B$h$&$JAG?t(B @var{p} $B$rA*$S(B, GF(@var{p}) $B>e$G$N<-=q<0=g=x%0%l%V%J4pDl(B
@var{Gp} $B$r7W;;$9$k(B. 
@item
@var{Gp} $B$K8=$l$k$9$Y$F$N9`$N(B, @var{G0} $B$K4X$9$k@55,7A(B @var{NF} $B$r7W;;$9$k(B. 
@item
@var{Gp} $B$N3F85(B @var{f} $B$K$D$-(B, @var{f} $B$N78?t$rL$Dj78?t$G(B, 
@var{f} $B$N3F9`$rBP1~$9$k(B @var{NF} $B$N85$GCV$-49$((B, $B3F9`$N78?t$r(B 0 $B$HCV$$$?(B,
$BL$Dj78?t$K4X$9$k@~7AJ}Dx<07O(B @var{Lf} $B$r:n$k(B. 
@item
@var{Lf} $B$,(B, $BK!(B @var{p} $B$G0l0U2r$r;}$D$3$H$rMQ$$$F(B @var{Lf} $B$N2r$r(B
$BK!(B @var{p}$B$N2r$+$i(B Hensel $B9=@.$K$h$j5a$a$k(B. 
@item
$B$9$Y$F$N(B @var{Gp} $B$N85$K$D$-@~7AJ}Dx<0$,2r$1$?$i$=$N2rA4BN$,5a$a$k(B
$B<-=q<0=g=x$G$N%0%l%V%J4pDl(B. $B$b$7$I$l$+$N@~7AJ}Dx<0$N5a2r$K<:GT$7$?$i(B, 
@var{p} $B$r$H$jD>$7$F$d$jD>$9(B. 
@end enumerate

@item
@code{lex_tl()}, @code{tolex_tl()} $B$K$*$$$F$O(B, $B<-=q<0=g=x%0%l%V%J4pDl$N(B
$B7W;;$O<!$N$h$&$K9T$o$l$k(B. 

@enumerate
@item
@var{vlist1}, @var{order} $B$K4X$9$k%0%l%V%J4pDl(B @var{G0} $B$r7W;;$9$k(B. 
(@code{lex_hensel()} $B$N$_(B. )
@item
@var{G0} $B$,(B 0 $B<!85%7%9%F%`$G$J$$$H$-(B, @var{G0} $B$rF~NO$H$7$F(B, 
@var{G0} $B$N3F85$N(B @var{vlist2} $B$K4X$9$k<-=q<0=g=x$K$*$1$kF,78?t$r3d$i$J$$(B
$B$h$&$JAG?t(B @var{p} $B$rA*$S(B, @var{p} $B$rMQ$$$?(B trace-lifting $B$K$h$j<-=q<0(B
$B=g=x$N%0%l%V%J4pDl8uJd$r5a$a(B, $B$b$75a$^$C$?$J$i%A%'%C%/$J$7$K$=$l$,5a$a$k(B
$B%0%l%V%J4pDl$H$J$k(B. $B$b$7<:GT$7$?$i(B, @var{p} $B$r$H$jD>$7$F$d$jD>$9(B. 
@item
@var{G0} $B$,(B 0 $B<!85%7%9%F%`$N$H$-(B, @var{G0} $B$rF~NO$H$7$F(B, 
$B$^$:(B, @var{vlist2} $B$N:G8e$NJQ?t0J30$r>C5n$9$k>C5n=g=x$K$h$j(B
$B%0%l%V%J4pDl(B @var{G1} $B$r7W;;$7(B, $B$=$l$+$i<-=q<0=g=x$N%0%l%V%J4pDl$r(B
$B7W;;$9$k(B. $B$=$N:](B, $B3F%9%F%C%W$G$O(B, $BF~NO$N3F85$N(B, $B5a$a$k=g=x$K$*$1$k(B
$BF,78?t$r3d$i$J$$AG?t$rMQ$$$?(B trace-lifting $B$G%0%l%V%J4pDl8uJd$r5a$a(B, 
$B$b$75a$^$C$?$i%A%'%C%/$J$7$K$=$l$,$=$N=g=x$G$N%0%l%V%J4pDl$H$J$k(B. 
@end enumerate

@item
$BM-M}<078?t$N7W;;$O(B, @code{lex_tl()}, @code{tolex_tl()} $B$N$_<u$1IU$1$k(B. 
@item
@code{homo} $B$,(B 0 $B$G$J$$>l9g(B, $BFbIt$G5/F0$5$l$k(B Buchberger $B%"%k%4%j%:%`$K(B
$B$*$$$F(B, $B@F<!2=$,9T$o$l$k(B.
@item
@code{tolex_d()} $B$GI=<($5$l$k;~4V$O(B, $B$3$NH!?t$,<B9T$5$l$F$$$k%W%m%;%9$K(B
$B$*$$$F9T$o$l$?7W;;$KBP1~$7$F$$$F(B, $B;R%W%m%;%9$K$*$1$k;~4V$O4^$^$l$J$$(B. 
@end itemize

@example
[78] K=katsura(5)$ 
30msec + gc : 20msec
[79] V=[u5,u4,u3,u2,u1,u0]$
0msec
[80] G0=hgr(K,V,2)$
91.558sec + gc : 15.583sec
[81] G1=lex_hensel(K,V,0,V,0)$
49.049sec + gc : 9.961sec
[82] G2=lex_tl(K,V,0,V,1)$
31.186sec + gc : 3.500sec
[83] gb_comp(G0,G1);
1
10msec
[84] gb_comp(G0,G2);
1
@end example

@table @t
@item $B;2>H(B
@fref{dp_gr_main dp_gr_mod_main},
@fref{dp_ord}, @fref{$BJ,;67W;;(B}
@end table

@node lex_hensel_gsl tolex_gsl tolex_gsl_d,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{lex_hensel_gsl}, @code{tolex_gsl}, @code{tolex_gsl_d}
@findex lex_hensel_gsl
@findex tolex_gsl
@findex tolex_gsl_d

@table @t
@item lex_hensel_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo})
:: GSL $B7A<0$N%$%G%"%k4pDl$N7W;;(B
@item tolex_gsl(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo})
@itemx tolex_gsl_d(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{homo},@var{procs})
:: $B%0%l%V%J4pDl$rF~NO$H$9$k(B, GSL $B7A<0$N%$%G%"%k4pDl$N7W;;(B
@end table

@table @var
@item return
$B%j%9%H(B
@item plist, vlist1, vlist2, procs
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@item homo
$B%U%i%0(B
@end table

@itemize @bullet
@item
@code{lex_hensel_gsl()} $B$O(B @code{lex_hensel()} $B$N(B, @code{tolex_gsl()} $B$O(B
@code{tolex()} $B$NJQ<o$G(B, $B7k2L$N$_$,0[$J$k(B. 
@code{tolex_gsl_d()} $B$O(B, $B4pDl7W;;$r(B, @code{procs} $B$G;XDj$5$l$k;R%W%m%;%9$K(B
$BJ,;67W;;$5$;$k(B. 
@item
$BF~NO$,(B 0 $B<!85%7%9%F%`$G(B, $B$=$N<-=q<0=g=x%0%l%V%J4pDl$,(B
@code{[f0,x1-f1,...,xn-fn]} (@code{f0},...,@code{fn} $B$O(B
@code{x0} $B$N(B 1 $BJQ?tB?9`<0(B) $B$J$k7A(B ($B$3$l$r(B SL $B7A<0$H8F$V(B) $B$r;}$D>l9g(B, 
@code{[[x1,g1,d1],...,[xn,gn,dn],[x0,f0,f0']]} $B$J$k%j%9%H(B ($B$3$l$r(B GSL $B7A<0$H8F$V(B)
$B$rJV$9(B. 
$B$3$3$G(B, @code{gi} $B$O(B, @code{f0'fi-gi} $B$,(B @code{f0} $B$G3d$j@Z$l$k$h$&$J(B
@code{x0} $B$N(B1 $BJQ?tB?9`<0$G(B, 
$B2r$O(B @code{f0(x0)=0} $B$J$k(B @code{x0} $B$KBP$7(B, @code{[x1=g1/(d1*f0'),...,xn=gn/(dn*f0')]}
$B$H$J$k(B. $B<-=q<0=g=x%0%l%V%J4pDl$,>e$N$h$&$J7A$G$J$$>l9g(B, @code{tolex()} $B$K(B
$B$h$kDL>o$N%0%l%V%J4pDl$rJV$9(B. 
@item
GSL $B7A<0$K$h$jI=$5$l$k4pDl$O%0%l%V%J4pDl$G$O$J$$$,(B, $B0lHL$K78?t$,(B SL $B7A<0(B
$B$N%0%l%V%J4pDl$h$jHs>o$K>.$5$$$?$a7W;;$bB.$/(B, $B2r$b5a$a$d$9$$(B. 
@code{tolex_gsl_d()} $B$GI=<($5$l$k;~4V$O(B, $B$3$NH!?t$,<B9T$5$l$F$$$k%W%m%;%9$K(B
$B$*$$$F9T$o$l$?7W;;$KBP1~$7$F$$$F(B, $B;R%W%m%;%9$K$*$1$k;~4V$O4^$^$l$J$$(B. 
@end itemize

@example
[103] K=katsura(5)$
[104] V=[u5,u4,u3,u2,u1,u0]$
[105] G0=gr(K,V,0)$
[106] GSL=tolex_gsl(G0,V,0,V)$ 
[107] GSL[0];
[u1,8635837421130477667200000000*u0^31-...]
[108] GSL[1];
[u2,10352277157007342793600000000*u0^31-...]
[109] GSL[5];
[u0,11771021876193064124640000000*u0^32-...,376672700038178051988480000000*u0^31-...]
@end example

@table @t
@item $B;2>H(B
@fref{lex_hensel lex_tl tolex tolex_d tolex_tl},
@fref{$BJ,;67W;;(B}
@end table

@node gr_minipoly minipoly,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{gr_minipoly}, @code{minipoly}
@findex gr_minipoly
@findex minipoly

@table @t
@item gr_minipoly(@var{plist},@var{vlist},@var{order},@var{poly},@var{v},@var{homo})
:: $BB?9`<0$N(B, $B%$%G%"%k$rK!$H$7$?:G>.B?9`<0$N7W;;(B
@item minipoly(@var{plist},@var{vlist},@var{order},@var{poly},@var{v})
:: $B%0%l%V%J4pDl$rF~NO$H$9$k(B, $BB?9`<0$N:G>.B?9`<0$N7W;;(B
@end table

@table @var
@item return
$BB?9`<0(B
@item plist, vlist
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@item poly
$BB?9`<0(B
@item v
$BITDj85(B
@item homo
$B%U%i%0(B
@end table

@itemize @bullet
@item
@code{gr_minipoly()} $B$O%0%l%V%J4pDl$N7W;;$+$i9T$$(B, @code{minipoly()} $B$O(B
$BF~NO$r%0%l%V%J4pDl$H$_$J$9(B. 
@item
$B%$%G%"%k(B I $B$,BN(B K $B>e$NB?9`<04D(B K[X] $B$N(B 0 $B<!85%$%G%"%k$N;~(B, 
K[@var{v}] $B$N85(B f(@var{v}) $B$K(B f(@var{p}) mod I $B$rBP1~$5$;$k(B
$B4D=`F17?$N3K$O(B 0 $B$G$J$$B?9`<0$K$h$j@8@.$5$l$k(B. $B$3$N@8@.85$r(B @var{p}
$B$N(B, $BK!(B @var{I} $B$G$N:G>.B?9`<0$H8F$V(B. 
@item
@code{gr_minipoly()}, @code{minipoly()} $B$O(B, $BB?9`<0(B @var{p} $B$N:G>.B?9`<0(B
$B$r5a$a(B, @var{v} $B$rJQ?t$H$9$kB?9`<0$H$7$FJV$9(B. 
@item
$B:G>.B?9`<0$O(B, $B%0%l%V%J4pDl$N(B 1 $B$D$N85$H$7$F7W;;$9$k$3$H$b$G$-$k$,(B, 
$B:G>.B?9`<0$N$_$r5a$a$?$$>l9g(B, @code{minipoly()}, @code{gr_minipoly()} $B$O(B
$B%0%l%V%J4pDl$rMQ$$$kJ}K!$KHf$Y$F8zN($,$h$$(B. 
@item
@code{gr_minipoly()} $B$K;XDj$9$k9`=g=x$H$7$F$O(B, $BDL>oA4<!?t5U<-=q<0=g=x$r(B
$BMQ$$$k(B. 
@end itemize

@example
[117] G=tolex(G0,V,0,V)$      
43.818sec + gc : 11.202sec
[118] GSL=tolex_gsl(G0,V,0,V)$
17.123sec + gc : 2.590sec
[119] MP=minipoly(G0,V,0,u0,z)$
4.370sec + gc : 780msec
@end example

@table @t
@item $B;2>H(B
@fref{lex_hensel lex_tl tolex tolex_d tolex_tl}.
@end table

@node tolexm minipolym,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{tolexm}, @code{minipolym}
@findex tolexm
@findex minipolym

@table @t
@item tolexm(@var{plist},@var{vlist1},@var{order},@var{vlist2},@var{mod})
:: $BK!(B @var{mod} $B$G$N4pDlJQ49$K$h$k%0%l%V%J4pDl7W;;(B
@item minipolym(@var{plist},@var{vlist1},@var{order},@var{poly},@var{v},@var{mod})
:: $BK!(B @var{mod} $B$G$N%0%l%V%J4pDl$K$h$kB?9`<0$N:G>.B?9`<0$N7W;;(B
@end table

@table @var
@item return
@code{tolexm()} : $B%j%9%H(B, @code{minipolym()} : $BB?9`<0(B
@item plist, vlist1, vlist2
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@item mod
$BAG?t(B
@end table

@itemize @bullet
@item
$BF~NO(B @var{plist} $B$O$$$:$l$b(B $BJQ?t=g=x(B @var{vlist1}, $B9`=g=x7?(B @var{order},
$BK!(B @var{mod} $B$K$*$1$k%0%l%V%J4pDl$G$J$1$l$P$J$i$J$$(B. 
@item
@code{minipolym()} $B$O(B @code{minipoly} $B$KBP1~$9$k7W;;$rK!(B @var{mod}$B$G9T$&(B. 
@item
@code{tolexm()} $B$O(B FGLM $BK!$K$h$k4pDlJQ49$K$h$j(B @var{vlist2},
$B<-=q<0=g=x$K$h$k%0%l%V%J4pDl$r7W;;$9$k(B. 
@end itemize

@example
[197] tolexm(G0,V,0,V,31991);
[8271*u0^31+10435*u0^30+816*u0^29+26809*u0^28+...,...]
[198] minipolym(G0,V,0,u0,z,31991);
z^32+11405*z^31+20868*z^30+21602*z^29+...
@end example

@table @t
@item $B;2>H(B
@fref{lex_hensel lex_tl tolex tolex_d tolex_tl},
@fref{gr_minipoly minipoly}.
@end table

@node dp_gr_main dp_gr_mod_main,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_gr_main}, @code{dp_gr_mod_main}
@findex dp_gr_main
@findex dp_gr_mod_main

@table @t
@item dp_gr_main(@var{plist},@var{vlist},@var{homo},@var{modular},@var{order})
@itemx dp_gr_mod_main(@var{plist},@var{vlist},@var{homo},@var{modular},@var{order})
:: $B%0%l%V%J4pDl$N7W;;(B ($BAH$_9~$_H!?t(B)
@end table

@table @var
@item return
$B%j%9%H(B
@item plist, vlist
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@item homo
$B%U%i%0(B
@item modular
$B%U%i%0$^$?$OAG?t(B
@end table

@itemize @bullet
@item
$B$3$l$i$NH!?t$O(B, $B%0%l%V%J4pDl7W;;$N4pK\E*AH$_9~$_H!?t$G$"$j(B, @code{gr()},
@code{hgr()}, @code{gr_mod()} $B$J$I$O$9$Y$F$3$l$i$NH!?t$r8F$S=P$7$F7W;;(B
$B$r9T$C$F$$$k(B. 
@item
$B%U%i%0(B @var{homo} $B$,(B 0 $B$G$J$$;~(B, $BF~NO$r@F<!2=$7$F$+$i(B Buchberger $B%"%k%4%j%:%`(B
$B$r<B9T$9$k(B. 
@item
@code{dp_gr_mod_main()} $B$KBP$7$F$O(B, @var{modular} $B$O(B, GF(@var{modular}) $B>e(B
$B$G$N7W;;$r0UL#$9$k(B. 
@code{dp_gr_main()} $B$KBP$7$F$O(B, @var{modular} $B$O<!$N$h$&$J0UL#$r;}$D(B. 
@enumerate
@item
@var{modular} $B$,(B 1 $B$N;~(B, trace-lifting $B$K$h$k7W;;$r9T$&(B. $BAG?t$O(B
@code{lprime(0)} $B$+$i=g$K@.8y$9$k$^$G(B @code{lprime()} $B$r8F$S=P$7$F@8@.$9$k(B. 
@item
@var{modular} $B$,(B 2 $B0J>e$N<+A3?t$N;~(B, $B$=$NCM$rAG?t$H$_$J$7$F(B trace-lifting
$B$r9T$&(B. $B$=$NAG?t$G<:GT$7$?>l9g(B, 0 $B$rJV$9(B. 
@item
@var{modular} $B$,Ii$N>l9g(B, 
@var{-modular} $B$KBP$7$F>e=R$N5,B'$,E,MQ$5$l$k$,(B, trace-lifting $B$N:G=*(B
$BCJ3,$N%0%l%V%J4pDl%A%'%C%/$H%$%G%"%k%a%s%P%7%C%W%A%'%C%/$,>JN,$5$l$k(B. 
@end enumerate

@item
@code{gr(P,V,O)} $B$O(B @code{dp_gr_main(P,V,0,1,O)}, @code{hgr(P,V,O)} $B$O(B
@code{dp_gr_main(P,V,1,1,O)}, @code{gr_mod(P,V,O,M)} $B$O(B
@code{dp_gr_mod_main(P,V,0,M,O)} $B$r$=$l$>$l<B9T$9$k(B. 
@item
@var{homo}, @var{modular} $B$NB>$K(B, @code{dp_gr_flags()} $B$G@_Dj$5$l$k(B
$B$5$^$6$^$J%U%i%0$K$h$j7W;;$,@)8f$5$l$k(B. 
@end itemize

@table @t
@item $B;2>H(B
@fref{dp_ord},
@fref{dp_gr_flags dp_gr_print},
@fref{gr hgr gr_mod},
@fref{$B7W;;$*$h$SI=<($N@)8f(B}.
@end table

@node dp_f4_main dp_f4_mod_main,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_f4_main}, @code{dp_f4_mod_main}
@findex dp_f4_main
@findex dp_f4_mod_main

@table @t
@item dp_f4_main(@var{plist},@var{vlist},@var{order})
@itemx dp_f4_mod_main(@var{plist},@var{vlist},@var{order})
:: F4 $B%"%k%4%j%:%`$K$h$k%0%l%V%J4pDl$N7W;;(B ($BAH$_9~$_H!?t(B)
@end table

@table @var
@item return
$B%j%9%H(B
@item plist, vlist
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@end table

@itemize @bullet
@item
F4 $B%"%k%4%j%:%`$K$h$j%0%l%V%J4pDl$N7W;;$r9T$&(B. 
@item
F4 $B%"%k%4%j%:%`$O(B, J.C. Faugere $B$K$h$jDs>'$5$l$??7@$Be%0%l%V%J4pDl(B
$B;;K!$G$"$j(B, $BK\<BAu$O(B, $BCf9q>jM>DjM}$K$h$k@~7AJ}Dx<05a2r$rMQ$$$?(B
$B;n83E*$J<BAu$G$"$k(B. 
@item
$B0z?t$*$h$SF0:n$O$=$l$>$l(B @code{dp_gr_main()}, @code{dp_gr_mod_main()}
$B$HF1MM$G$"$k(B. 
@end itemize

@table @t
@item $B;2>H(B
@fref{dp_ord},
@fref{dp_gr_flags dp_gr_print},
@fref{gr hgr gr_mod},
@fref{$B7W;;$*$h$SI=<($N@)8f(B}.
@end table

@node dp_gr_flags dp_gr_print,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_gr_flags}, @code{dp_gr_print}
@findex dp_gr_flags
@findex dp_gr_print

@table @t
@item dp_gr_flags([@var{list}])
@itemx dp_gr_print([@var{0|1}])
:: $B7W;;$*$h$SI=<(MQ%Q%i%a%?$N@_Dj(B, $B;2>H(B
@end table

@table @var
@item return
$B@_DjCM(B
@item list
$B%j%9%H(B
@end table

@itemize @bullet
@item
@code{dp_gr_main()}, @code{dp_gr_mod_main()} $B<B9T;~$K$*$1$k$5$^$6$^(B
$B$J%Q%i%a%?$r@_Dj(B, $B;2>H$9$k(B. 
@item
$B0z?t$,$J$$>l9g(B, $B8=:_$N@_Dj$,JV$5$l$k(B. 
@item
$B0z?t$O(B, @code{["Print",1,"NoSugar",1,...]} $B$J$k7A$N%j%9%H$G(B, $B:8$+$i=g$K(B
$B@_Dj$5$l$k(B. $B%Q%i%a%?L>$OJ8;zNs$GM?$($kI,MW$,$"$k(B. 
@item
@code{dp_gr_print()} $B$O(B, $BFC$K%Q%i%a%?(B @code{Print} $B$NCM$rD>@\@_Dj(B, $B;2>H(B
$B$G$-$k(B. $B$3$l$O(B, @code{dp_gr_main()} $B$J$I$r%5%V%k!<%A%s$H$7$FMQ$$$k%f!<%6(B
$BH!?t$K$*$$$F(B, @code{Print} $B$NCM$r8+$F(B, $B$=$N%5%V%k!<%A%s$,Cf4V>pJs$NI=<((B
$B$r9T$&:]$K(B, $B?WB.$K%U%i%0$r8+$k$3$H$,$G$-$k$h$&$KMQ0U$5$l$F$$$k(B. 
@end itemize

@table @t
@item $B;2>H(B
@fref{$B7W;;$*$h$SI=<($N@)8f(B}
@end table

@node dp_ord,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_ord}
@findex dp_ord

@table @t
@item dp_ord([@var{order}])
:: $BJQ?t=g=x7?$N@_Dj(B, $B;2>H(B
@end table

@table @var
@item return
$BJQ?t=g=x7?(B ($B?t(B, $B%j%9%H$^$?$O9TNs(B)
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@end table

@itemize @bullet
@item
$B0z?t$,$"$k;~(B, $BJQ?t=g=x7?$r(B @var{order} $B$K@_Dj$9$k(B. $B0z?t$,$J$$;~(B, 
$B8=:_@_Dj$5$l$F$$$kJQ?t=g=x7?$rJV$9(B. 

@item
$BJ,;6I=8=B?9`<0$K4X$9$kH!?t(B, $B1i;;$O0z?t$H$7$FJQ?t=g=x7?$r$H$k$b$N$H$H$i$J$$$b$N(B
$B$,$"$j(B, $B$H$i$J$$$b$N$K4X$7$F$O(B, $B$=$N;~E@$G@_Dj$5$l$F$$$kCM$rMQ$$$F7W;;$,(B
$B9T$o$l$k(B. 

@item
@code{gr()} $B$J$I(B, $B0z?t$H$7$FJQ?t=g=x7?$r$H$k$b$N$O(B, $BFbIt$G(B @code{dp_ord()}
$B$r8F$S=P$7(B, $BJQ?t=g=x7?$r@_Dj$9$k(B. $B$3$N@_Dj$O(B, $B7W;;=*N;8e$b@8$-;D$k(B. 

@item
$BJ,;6I=8=B?9`<0$N;MB'1i;;$b(B, $B@_Dj$5$l$F$$$kCM$rMQ$$$F7W;;$5$l$k(B. $B=>$C$F(B, 
$B$=$NB?9`<0$,@8@.$5$l$?;~E@$K$*$1$kJQ?t=g=x7?$,(B, $B;MB'1i;;;~$K@5$7$/@_Dj(B
$B$5$l$F$$$J$1$l$P$J$i$J$$(B. $B$^$?(B, $B1i;;BP>]$H$J$kB?9`<0$O(B, $BF10l$NJQ?t=g=x(B
$B7?$K4p$E$$$F@8@.$5$l$?$b$N$G$J$1$l$P$J$i$J$$(B. 

@item
$B%H%C%W%l%Y%kH!?t0J30$NH!?t$rD>@\8F$S=P$9>l9g$K$O(B, $B$3$NH!?t$K$h$j(B
$BJQ?t=g=x7?$r@5$7$/@_Dj$7$J$1$l$P$J$i$J$$(B. 
@end itemize

@example
[19] dp_ord(0)$          
[20] <<1,2,3>>+<<3,1,1>>;
(1)*<<1,2,3>>+(1)*<<3,1,1>>
[21] dp_ord(2)$          
[22] <<1,2,3>>+<<3,1,1>>;
(1)*<<3,1,1>>+(1)*<<1,2,3>>
@end example

@table @t
@item $B;2>H(B
@fref{$B9`=g=x$N@_Dj(B}
@end table

@node dp_ptod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_ptod}
@findex dp_ptod

@table @t
@item dp_ptod(@var{poly},@var{vlist})
:: $BB?9`<0$rJ,;6I=8=B?9`<0$KJQ49$9$k(B. 
@end table

@table @var
@item return
$BJ,;6I=8=B?9`<0(B
@item poly
$BB?9`<0(B
@item vlist
$B%j%9%H(B
@end table

@itemize @bullet
@item
$BJQ?t=g=x(B @var{vlist} $B$*$h$S8=:_$NJQ?t=g=x7?$K=>$C$FJ,;6I=8=B?9`<0$KJQ49$9$k(B. 
@item
@var{vlist} $B$K4^$^$l$J$$ITDj85$O(B, $B78?tBN$KB0$9$k$H$7$FJQ49$5$l$k(B. 
@end itemize

@example
[50] dp_ord(0);
1
[51] dp_ptod((x+y+z)^2,[x,y,z]);
(1)*<<2,0,0>>+(2)*<<1,1,0>>+(1)*<<0,2,0>>+(2)*<<1,0,1>>+(2)*<<0,1,1>>
+(1)*<<0,0,2>>
[52] dp_ptod((x+y+z)^2,[x,y]);  
(1)*<<2,0>>+(2)*<<1,1>>+(1)*<<0,2>>+(2*z)*<<1,0>>+(2*z)*<<0,1>>+(z^2)*<<0,0>>
@end example

@table @t
@item $B;2>H(B
@fref{dp_dtop},
@fref{dp_ord}.
@end table

@node dp_dtop,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_dtop}
@findex dp_dtop

@table @t
@item dp_dtop(@var{dpoly},@var{vlist})
:: $BJ,;6I=8=B?9`<0$rB?9`<0$KJQ49$9$k(B. 
@end table

@table @var
@item return
$BB?9`<0(B
@item dpoly
$BJ,;6I=8=B?9`<0(B
@item vlist
$B%j%9%H(B
@end table

@itemize @bullet
@item
$BJ,;6I=8=B?9`<0$r(B, $BM?$($i$l$?ITDj85%j%9%H$rMQ$$$FB?9`<0$KJQ49$9$k(B. 
@item
$BITDj85%j%9%H$O(B, $BD9$5J,;6I=8=B?9`<0$NJQ?t$N8D?t$H0lCW$7$F$$$l$P2?$G$b$h$$(B. 
@end itemize

@example
[53] T=dp_ptod((x+y+z)^2,[x,y]);
(1)*<<2,0>>+(2)*<<1,1>>+(1)*<<0,2>>+(2*z)*<<1,0>>+(2*z)*<<0,1>>+(z^2)*<<0,0>>
[54] P=dp_dtop(T,[a,b]);
z^2+(2*a+2*b)*z+a^2+2*b*a+b^2
@end example

@node dp_mod dp_rat,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_mod}, @code{dp_rat}
@findex dp_mod
@findex dp_rat

@table @t
@item dp_mod(@var{p},@var{mod},@var{subst})
:: $BM-M}?t78?tJ,;6I=8=B?9`<0$NM-8BBN78?t$X$NJQ49(B
@item dp_rat(@var{p})
:: $BM-8BBN78?tJ,;6I=8=B?9`<0$NM-M}?t78?t$X$NJQ49(B
@end table

@table @var
@item return
$BJ,;6I=8=B?9`<0(B
@item p
$BJ,;6I=8=B?9`<0(B
@item mod
$BAG?t(B
@item subst
$B%j%9%H(B
@end table

@itemize @bullet
@item
@code{dp_nf_mod()}, @code{dp_true_nf_mod()} $B$O(B, $BF~NO$H$7$FM-8BBN78?t$N(B
$BJ,;6I=8=B?9`<0$rI,MW$H$9$k(B. $B$3$N$h$&$J>l9g(B, @code{dp_mod()} $B$K$h$j(B
$BM-M}?t78?tJ,;6I=8=B?9`<0$rJQ49$7$FMQ$$$k$3$H$,$G$-$k(B. $B$^$?(B, $BF@$i$l$?(B
$B7k2L$O(B, $BM-8BBN78?tB?9`<0$H$O1i;;$G$-$k$,(B, $BM-M}?t78?tB?9`<0$H$O1i;;$G$-$J$$(B
$B$?$a(B, @code{dp_rat()} $B$K$h$jJQ49$9$kI,MW$,$"$k(B. 
@item
$BM-8BBN78?t$N1i;;$K$*$$$F$O(B, $B$"$i$+$8$a(B @code{setmod()} $B$K$h$jM-8BBN$N85$N(B
$B8D?t$r;XDj$7$F$*$/I,MW$,$"$k(B. 
@item
@var{subst} $B$O(B, $B78?t$,M-M}<0$N>l9g(B, $B$=$NM-M}<0$NJQ?t$K$"$i$+$8$a?t$rBeF~(B
$B$7$?8eM-8BBN78?t$KJQ49$9$k$H$$$&A`:n$r9T$&:]$N(B, $BBeF~CM$r;XDj$9$k$b$N$G(B, 
@code{[[@var{var},@var{value}],...]} $B$N7A$N%j%9%H$G$"$k(B. 
@end itemize

@example
@end example

@table @t
@item $B;2>H(B
@fref{dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod},
@fref{subst psubst},
@fref{setmod}.
@end table

@node dp_homo dp_dehomo,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_homo}, @code{dp_dehomo}
@findex dp_homo
@findex dp_dehomo

@table @t
@item dp_homo(@var{dpoly})
:: $BJ,;6I=8=B?9`<0$N@F<!2=(B
@item dp_dehomo(@var{dpoly})
:: $B@F<!J,;6I=8=B?9`<0$NHs@F<!2=(B
@end table

@table @var
@item return
$BJ,;6I=8=B?9`<0(B
@item dpoly
$BJ,;6I=8=B?9`<0(B
@end table

@itemize @bullet
@item
@code{dp_homo()} $B$O(B, @var{dpoly} $B$N(B $B3F9`(B @var{t} $B$K$D$$$F(B, $B;X?t%Y%/%H%k$ND9$5$r(B
1 $B?-$P$7(B, $B:G8e$N@.J,$NCM$r(B @var{d}-@code{deg(@var{t})} 
(@var{d} $B$O(B @var{dpoly} $B$NA4<!?t(B) $B$H$7$?J,;6I=8=B?9`<0$rJV$9(B. 
@item
@code{dp_dehomo()} $B$O(B, @var{dpoly} $B$N3F9`$K$D$$$F(B, $B;X?t%Y%/%H%k$N:G8e$N@.J,(B
$B$r<h$j=|$$$?J,;6B?9`<0$rJV$9(B. 
@item
$B$$$:$l$b(B, $B@8@.$5$l$?B?9`<0$rMQ$$$?1i;;$r9T$&>l9g(B, $B$=$l$i$KE,9g$9$k9`=g=x$r(B
$B@5$7$/@_Dj$9$kI,MW$,$"$k(B. 
@item
@code{hgr()} $B$J$I$K$*$$$F(B, $BFbItE*$KMQ$$$i$l$F$$$k(B.
@end itemize

@example
[202] X=<<1,2,3>>+3*<<1,2,1>>;
(1)*<<1,2,3>>+(3)*<<1,2,1>>
[203] dp_homo(X);
(1)*<<1,2,3,0>>+(3)*<<1,2,1,2>>
[204] dp_dehomo(@@);
(1)*<<1,2,3>>+(3)*<<1,2,1>>
@end example

@table @t
@item $B;2>H(B
@fref{gr hgr gr_mod}.
@end table

@node dp_ptozp dp_prim,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_ptozp}, @code{dp_prim}
@findex dp_ptozp
@findex dp_prim

@table @t
@item dp_ptozp(@var{dpoly})
:: $BDj?tG\$7$F78?t$r@0?t78?t$+$D78?t$N@0?t(B GCD $B$r(B 1 $B$K$9$k(B. 
@itemx dp_prim(@var{dpoly})
:: $BM-M}<0G\$7$F78?t$r@0?t78?tB?9`<078?t$+$D78?t$NB?9`<0(B GCD $B$r(B 1 $B$K$9$k(B. 
@end table

@table @var
@item return
$BJ,;6I=8=B?9`<0(B
@item dpoly
$BJ,;6I=8=B?9`<0(B
@end table

@itemize @bullet
@item
@code{dp_ptozp()} $B$O(B,  @code{ptozp()} $B$KAjEv$9$kA`:n$rJ,;6I=8=B?9`<0$K(B
$BBP$7$F9T$&(B. $B78?t$,B?9`<0$r4^$`>l9g(B, $B78?t$K4^$^$l$kB?9`<06&DL0x;R$O(B
$B<h$j=|$+$J$$(B. 
@item
@code{dp_prim()} $B$O(B, $B78?t$,B?9`<0$r4^$`>l9g(B, $B78?t$K4^$^$l$kB?9`<06&DL0x;R(B
$B$r<h$j=|$/(B. 
@end itemize

@example
[208] X=dp_ptod(3*(x-y)*(y-z)*(z-x),[x]);
(-3*y+3*z)*<<2>>+(3*y^2-3*z^2)*<<1>>+(-3*z*y^2+3*z^2*y)*<<0>>
[209] dp_ptozp(X);                       
(-y+z)*<<2>>+(y^2-z^2)*<<1>>+(-z*y^2+z^2*y)*<<0>>
[210] dp_prim(X);                        
(1)*<<2>>+(-y-z)*<<1>>+(z*y)*<<0>>
@end example

@table @t
@item $B;2>H(B
@fref{ptozp}.
@end table

@node dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_nf}, @code{dp_nf_mod}, @code{dp_true_nf}, @code{dp_true_nf_mod}
@findex dp_nf
@findex  dp_true_nf
@findex dp_nf_mod
@findex  dp_true_nf_mod

@table @t
@item dp_nf(@var{indexlist},@var{dpoly},@var{dpolyarray},@var{fullreduce})
@item dp_nf_mod(@var{indexlist},@var{dpoly},@var{dpolyarray},@var{fullreduce},@var{mod})
:: $BJ,;6I=8=B?9`<0$N@55,7A$r5a$a$k(B. ($B7k2L$ODj?tG\$5$l$F$$$k2DG=@-$"$j(B)

@item dp_true_nf(@var{indexlist},@var{dpoly},@var{dpolyarray},@var{fullreduce})
@item dp_true_nf_mod(@var{indexlist},@var{dpoly},@var{dpolyarray},@var{fullreduce},@var{mod})
:: $BJ,;6I=8=B?9`<0$N@55,7A$r5a$a$k(B. ($B??$N7k2L$r(B @code{[$BJ,;R(B, $BJ,Jl(B]} $B$N7A$GJV$9(B)
@end table

@table @var
@item return
@code{dp_nf()} : $BJ,;6I=8=B?9`<0(B, @code{dp_true_nf()} : $B%j%9%H(B
@item indexlist
$B%j%9%H(B
@item dpoly
$BJ,;6I=8=B?9`<0(B
@item dpolyarray
$BG[Ns(B
@item fullreduce
$B%U%i%0(B
@item mod
$BAG?t(B
@end table

@itemize @bullet
@item
$BJ,;6I=8=B?9`<0(B @var{dpoly} $B$N@55,7A$r5a$a$k(B. 
@item
@code{dp_nf_mod()}, @code{dp_true_nf_mod()} $B$NF~NO$O(B, @code{dp_mod()} $B$J$I(B
$B$K$h$j(B, $BM-8BBN>e$NJ,;6I=8=B?9`<0$K$J$C$F$$$J$1$l$P$J$i$J$$(B. 
@item
$B7k2L$KM-M}?t(B, $BM-M}<0$,4^$^$l$k$N$rHr$1$k$?$a(B, @code{dp_nf()} $B$O(B
$B??$NCM$NDj?tG\$NCM$rJV$9(B. $BM-M}<078?t$N>l9g$N(B @code{dp_nf_mod()} $B$bF1MM(B
$B$G$"$k$,(B, $B78?tBN$,M-8BBN$N>l9g(B @code{dp_nf_mod()} $B$O??$NCM$rJV$9(B. 
@item
@code{dp_true_nf()}, @code{dp_true_nf_mod()} $B$O(B, 
@code{[@var{nm},@var{dn}]} $B$J$k7A$N%j%9%H$rJV$9(B. 
$B$?$@$7(B, @var{nm} $B$O78?t$KJ,?t(B, $BM-M}<0$r4^$^$J$$J,;6I=8=B?9`<0(B, @var{dn} $B$O(B
$B?t$^$?$OB?9`<0$G(B @var{nm}/@var{dn} $B$,??$NCM$H$J$k(B. 
@item
@var{dpolyarray} $B$OJ,;6I=8=B?9`<0$rMWAG$H$9$k%Y%/%H%k(B, 
@var{indexlist} $B$O@55,2=7W;;$KMQ$$$k(B @var{dpolyarray} $B$NMWAG$N%$%s%G%C%/%9(B
$B$N%j%9%H(B. 
@item
@var{fullreduce} $B$,(B 0 $B$G$J$$$H$-A4$F$N9`$KBP$7$F4JLs$r9T$&(B. @var{fullreduce}
$B$,(B 0 $B$N$H$-F,9`$N$_$KBP$7$F4JLs$r9T$&(B. 
@item
@var{indexlist} $B$G;XDj$5$l$?B?9`<0$O(B, $BA0$NJ}$N$b$N$,M%@hE*$K;H$o$l$k(B. 
@item
$B0lHL$K$O(B @var{indexlist} $B$NM?$(J}$K$h$jH!?t$NCM$O0[$J$k2DG=@-$,$"$k$,(B, 
$B%0%l%V%J4pDl$KBP$7$F$O0l0UE*$KDj$^$k(B. 
@item
$BJ,;6I=8=$G$J$$8GDj$5$l$?B?9`<0=89g$K$h$k@55,7A$rB??t5a$a$kI,MW$,$"$k>l9g(B
$B$KJXMx$G$"$k(B. $BC10l$N1i;;$K4X$7$F$O(B, @code{p_nf}, @code{p_true_nf} $B$r(B
$BMQ$$$k$H$h$$(B. 

@end itemize

@example
[0] load("gr")$
[64] load("katsura")$
[69] K=katsura(4)$
[70] dp_ord(2)$
[71] V=[u0,u1,u2,u3,u4]$
[72] DP1=newvect(length(K),map(dp_ptod,K,V))$
[73] G=gr(K,V,2)$
[74] DP2=newvect(length(G),map(dp_ptod,G,V))$
[75] T=dp_ptod((u0-u1+u2-u3+u4)^2,V)$
[76] dp_dtop(dp_nf([0,1,2,3,4],T,DP1,1),V);
u4^2+(6*u3+2*u2+6*u1-2)*u4+9*u3^2+(6*u2+18*u1-6)*u3+u2^2+(6*u1-2)*u2+9*u1^2-6*u1+1
[77] dp_dtop(dp_nf([4,3,2,1,0],T,DP1,1),V);
-5*u4^2+(-4*u3-4*u2-4*u1)*u4-u3^2-3*u3-u2^2+(2*u1-1)*u2-2*u1^2-3*u1+1
[78] dp_dtop(dp_nf([0,1,2,3,4],T,DP2,1),V);
-1138087976845165778088612297273078520347097001020471455633353049221045677593
0005716505560062087150928400876150217079820311439477560587583488*u4^15+...
[79] dp_dtop(dp_nf([4,3,2,1,0],T,DP2,1),V);
-1138087976845165778088612297273078520347097001020471455633353049221045677593
0005716505560062087150928400876150217079820311439477560587583488*u4^15+...
[80] @@78==@@79;
1
@end example

@table @t
@item $B;2>H(B
@fref{dp_dtop},
@fref{dp_ord},
@fref{dp_mod dp_rat},
@fref{p_nf p_nf_mod p_true_nf p_true_nf_mod}.
@end table

@node dp_hm dp_ht dp_hc dp_rest,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_hm}, @code{dp_ht}, @code{dp_hc}, @code{dp_rest}
@findex dp_hm
@findex dp_ht
@findex dp_hc
@findex dp_rest

@table @t
@item dp_hm(@var{dpoly})
:: $BF,C19`<0$r<h$j=P$9(B. 
@item dp_ht(@var{dpoly})
:: $BF,9`$r<h$j=P$9(B. 
@item dp_hc(@var{dpoly})
:: $BF,78?t$r<h$j=P$9(B. 
@item dp_rest(@var{dpoly})
:: $BF,C19`<0$r<h$j=|$$$?;D$j$rJV$9(B. 
@end table

@table @var
@item return
@code{dp_hm()}, @code{dp_ht()}, @code{dp_rest()} : $BJ,;6I=8=B?9`<0(B,
@code{dp_hc()} : $B?t$^$?$OB?9`<0(B
@item dpoly
$BJ,;6I=8=B?9`<0(B
@end table

@itemize @bullet
@item
$B$3$l$i$O(B, $BJ,;6I=8=B?9`<0$N3FItJ,$r<h$j=P$9$?$a$NH!?t$G$"$k(B. 
@item
$BJ,;6I=8=B?9`<0(B @var{p} $B$KBP$7<!$,@.$jN)$D(B. 
@table @code
@item @var{p} = dp_hm(@var{p}) + dp_rest(@var{p})
@item dp_hm(@var{p}) = dp_hc(@var{p}) dp_ht(@var{p})
@end table
@end itemize

@example
[87] dp_ord(0)$
[88] X=ptozp((a46^2+7/10*a46+7/48)*u3^4-50/27*a46^2-35/27*a46-49/216)$
[89] T=dp_ptod(X,[u3,u4,a46])$                                        
[90] dp_hm(T);                                                        
(2160)*<<4,0,2>>
[91] dp_ht(T);
(1)*<<4,0,2>>
[92] dp_hc(T);
2160
[93] dp_rest(T);
(1512)*<<4,0,1>>+(315)*<<4,0,0>>+(-4000)*<<0,0,2>>+(-2800)*<<0,0,1>>
+(-490)*<<0,0,0>>
@end example

@node dp_td dp_sugar,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_td}, @code{dp_sugar}
@findex dp_td
@findex dp_sugar

@table @t
@item dp_td(@var{dpoly})
:: $BF,9`$NA4<!?t$rJV$9(B. 
@item dp_sugar(@var{dpoly})
:: $BB?9`<0$N(B @code{sugar} $B$rJV$9(B. 
@end table

@table @var
@item return
$B<+A3?t(B
@item dpoly
$BJ,;6I=8=B?9`<0(B
@item onoff
$B%U%i%0(B
@end table

@itemize @bullet
@item
@code{dp_td()} $B$O(B, $BF,9`$NA4<!?t(B, $B$9$J$o$A3FJQ?t$N;X?t$NOB$rJV$9(B. 
@item
$BJ,;6I=8=B?9`<0$,@8@.$5$l$k$H(B, @code{sugar} $B$H8F$P$l$k$"$k@0?t$,IUM?(B
$B$5$l$k(B. $B$3$NCM$O(B $B2>A[E*$K@F<!2=$7$F7W;;$7$?>l9g$K7k2L$,;}$DA4<!?t$NCM$H$J$k(B. 
@item
@code{sugar} $B$O(B, $B%0%l%V%J4pDl7W;;$K$*$1$k@55,2=BP$NA*Br$N%9%H%i%F%8$r(B
$B7hDj$9$k$?$a$N=EMW$J;X?K$H$J$k(B.
@end itemize

@example
[74] dp_ord(0)$
[75] X=<<1,2>>+<<0,1>>$
[76] Y=<<1,2>>+<<1,0>>$
[77] Z=X-Y;
(-1)*<<1,0>>+(1)*<<0,1>>
[78] dp_sugar(T);
3
@end example

@node dp_lcm,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_lcm}
@findex dp_lcm

@table @t
@item dp_lcm(@var{dpoly1},@var{dpoly2})
:: $B:G>.8xG\9`$rJV$9(B. 
@end table

@table @var
@item return
$BJ,;6I=8=B?9`<0(B
@item dpoly1, dpoly2
$BJ,;6I=8=B?9`<0(B
@end table

@itemize @bullet
@item
$B$=$l$>$l$N0z?t$NF,9`$N:G>.8xG\9`$rJV$9(B. $B78?t$O(B 1 $B$G$"$k(B. 
@end itemize

@example
[100] dp_lcm(<<1,2,3,4,5>>,<<5,4,3,2,1>>);
(1)*<<5,4,3,4,5>>
@end example

@table @t
@item $B;2>H(B
@fref{p_nf p_nf_mod p_true_nf p_true_nf_mod}.
@end table

@node dp_redble,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_redble}
@findex dp_redble

@table @t
@item dp_redble(@var{dpoly1},@var{dpoly2})
:: $BF,9`$I$&$7$,@0=|2DG=$+$I$&$+D4$Y$k(B. 
@end table

@table @var
@item return
$B@0?t(B
@item dpoly1, dpoly2
$BJ,;6I=8=B?9`<0(B
@end table

@itemize @bullet
@item
@var{dpoly1} $B$NF,9`$,(B @var{dpoly2} $B$NF,9`$G3d$j@Z$l$l$P(B 1, $B3d$j@Z$l$J$1$l$P(B
0 $B$rJV$9(B. 
@item
$BB?9`<0$N4JLs$r9T$&:](B, $B$I$N9`$r4JLs$G$-$k$+$rC5$9$N$KMQ$$$k(B. 
@end itemize

@example
[148] C;
(1)*<<1,1,1,0,0>>+(1)*<<0,1,1,1,0>>+(1)*<<1,1,0,0,1>>+(1)*<<1,0,0,1,1>>
[149] T;
(3)*<<2,1,0,0,0>>+(3)*<<1,2,0,0,0>>+(1)*<<0,3,0,0,0>>+(6)*<<1,1,1,0,0>>
[150] for ( ; T; T = dp_rest(T)) print(dp_redble(T,C));
0
0
0
1
@end example

@table @t
@item $B;2>H(B
@fref{dp_red dp_red_mod}.
@end table

@node dp_subd,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_subd}
@findex dp_subd

@table @t
@item dp_subd(@var{dpoly1},@var{dpoly2})
:: $BF,9`$N>&C19`<0$rJV$9(B. 
@end table

@table @var
@item return
$BJ,;6I=8=B?9`<0(B
@item dpoly1, dpoly2
$BJ,;6I=8=B?9`<0(B
@end table

@itemize @bullet
@item
@code{dp_ht(@var{dpoly1})/dp_ht(@var{dpoly2})} $B$r5a$a$k(B. $B7k2L$N78?t$O(B 1 
$B$G$"$k(B. 
@item
$B3d$j@Z$l$k$3$H$,$"$i$+$8$a$o$+$C$F$$$kI,MW$,$"$k(B.
@end itemize

@example
[162] dp_subd(<<1,2,3,4,5>>,<<1,1,2,3,4>>);
(1)*<<0,1,1,1,1>>
@end example

@table @t
@item $B;2>H(B
@fref{dp_red dp_red_mod}.
@end table

@node dp_vtoe dp_etov,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_vtoe}, @code{dp_etov}
@findex dp_vtoe
@findex dp_etov

@table @t
@item dp_vtoe(@var{vect})
:: $B;X?t%Y%/%H%k$r9`$KJQ49(B
@item dp_etov(@var{dpoly})
:: $BF,9`$r;X?t%Y%/%H%k$KJQ49(B
@end table

@table @var
@item return
@code{dp_vtoe} : $BJ,;6I=8=B?9`<0(B, @code{dp_etov} : $B%Y%/%H%k(B
@item vect
$B%Y%/%H%k(B
@item dpoly
$BJ,;6I=8=B?9`<0(B
@end table

@itemize @bullet
@item
@code{dp_vtoe()} $B$O(B, $B%Y%/%H%k(B @var{vect} $B$r;X?t%Y%/%H%k$H$9$k9`$r@8@.$9$k(B. 
@item
@code{dp_etov()} $B$O(B, $BJ,;6I=8=B?9`<0(B @code{dpoly} $B$NF,9`$N;X?t%Y%/%H%k$r(B
$B%Y%/%H%k$KJQ49$9$k(B. 
@end itemize

@example
[211] X=<<1,2,3>>;
(1)*<<1,2,3>>
[212] V=dp_etov(X);
[ 1 2 3 ]
[213] V[2]++$
[214] Y=dp_vtoe(V);
(1)*<<1,2,4>>
@end example

@node dp_mbase,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_mbase}
@findex dp_mbase

@table @t
@item dp_mbase(@var{dplist})
:: monomial $B4pDl$N7W;;(B
@end table

@table @var
@item return
$BJ,;6I=8=B?9`<0$N%j%9%H(B
@item dplist
$BJ,;6I=8=B?9`<0$N%j%9%H(B
@end table

@itemize @bullet
@item
$B$"$k=g=x$G%0%l%V%J4pDl$H$J$C$F$$$kB?9`<0=89g$N(B, $B$=$N=g=x$K4X$9$kJ,;6I=8=(B
$B$G$"$k(B @var{dplist} $B$K$D$$$F(B, 
@var{dplist} $B$,(B K[X] $BCf$G@8@.$9$k%$%G%"%k(B I $B$,(B 0 $B<!85$N;~(B, 
K $B>eM-8B<!85@~7A6u4V$G$"$k(B K[X]/I $B$N(B monomial $B$K$h$k4pDl$r5a$a$k(B. 
@item
$BF@$i$l$?4pDl$N8D?t$,(B, K[X]/I $B$N(B K-$B@~7A6u4V$H$7$F$N<!85$KEy$7$$(B. 
@end itemize

@example
[215] K=katsura(5)$
[216] V=[u5,u4,u3,u2,u1,u0]$
[217] G0=gr(K,V,0)$
[218] H=map(dp_ptod,G0,V)$
[219] map(dp_ptod,dp_mbase(H),V)$
[u0^5,u4*u0^3,u3*u0^3,u2*u0^3,u1*u0^3,u0^4,u3^2*u0,u2*u3*u0,u1*u3*u0,
u1*u2*u0,u1^2*u0,u4*u0^2,u3*u0^2,u2*u0^2,u1*u0^2,u0^3,u3^2,u2*u3,u1*u3,
u1*u2,u1^2,u4*u0,u3*u0,u2*u0,u1*u0,u0^2,u4,u3,u2,u1,u0,1]
@end example

@table @t
@item $B;2>H(B
@fref{gr hgr gr_mod}.
@end table

@node dp_mag,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_mag}
@findex dp_mag

@table @t
@item dp_mag(@var{p})
:: $B78?t$N%S%C%HD9$NOB$rJV$9(B
@end table

@table @var
@item return
$B?t(B
@item p
$BJ,;6I=8=B?9`<0(B
@end table

@itemize @bullet
@item
$BJ,;6I=8=B?9`<0$N78?t$K8=$l$kM-M}?t$K$D$-(B, $B$=$NJ,JlJ,;R(B ($B@0?t$N>l9g$OJ,;R(B)
$B$N%S%C%HD9$NAmOB$rJV$9(B. 
@item
$BBP>]$H$J$kB?9`<0$NBg$-$5$NL\0B$H$7$FM-8z$G$"$k(B. $BFC$K(B, 0 $B<!85%7%9%F%`$K$*$$$F$O(B
$B78?tKDD%$,LdBj$H$J$j(B, $BESCf@8@.$5$l$kB?9`<0$,78?tKDD%$r5/$3$7$F$$$k$+$I$&$+(B
$B$NH=Dj$KLrN)$D(B. 
@item
@code{dp_gr_flags()} $B$G(B, @code{ShowMag}, @code{Print} $B$r(B on $B$K$9$k$3$H$K$h$j(B
$BESCf@8@.$5$l$kB?9`<0$K$?$$$9$k(B @code{dp_mag()} $B$NCM$r8+$k$3$H$,$G$-$k(B. 
@end itemize

@example
[221] X=dp_ptod((x+2*y)^10,[x,y])$
[222] dp_mag(X);
115
@end example

@table @t
@item $B;2>H(B
@fref{dp_gr_flags dp_gr_print}.
@end table

@node dp_red dp_red_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_red}, @code{dp_red_mod}
@findex dp_red
@findex dp_red_mod

@table @t
@item dp_red(@var{dpoly1},@var{dpoly2},@var{dpoly3})
@item dp_red_mod(@var{dpoly1},@var{dpoly2},@var{dpoly3},@var{mod})
:: $B0l2s$N4JLsA`:n(B
@end table

@table @var
@item return
$B%j%9%H(B
@item dpoly1, dpoly2, dpoly3
$BJ,;6I=8=B?9`<0(B
@item vlist
$B%j%9%H(B
@item mod
$BAG?t(B
@end table

@itemize @bullet
@item
@var{dpoly1} + @var{dpoly2} $B$J$kJ,;6I=8=B?9`<0$r(B @var{dpoly3} $B$G(B
1 $B2s4JLs$9$k(B.
@item
@code{dp_red_mod()} $B$NF~NO$O(B, $BA4$FM-8BBN78?t$KJQ49$5$l$F$$$kI,MW$,$"$k(B. 
@item
$B4JLs$5$l$k9`$O(B @var{dpoly2} $B$NF,9`$G$"$k(B. $B=>$C$F(B, @var{dpoly2} $B$N(B
$BF,9`$,(B @var{dpoly3} $B$NF,9`$G3d$j@Z$l$k$3$H$,$"$i$+$8$a$o$+$C$F$$$J$1$l$P(B
$B$J$i$J$$(B. 
@item
$B0z?t$,@0?t78?t$N;~(B, $B4JLs$O(B, $BJ,?t$,8=$l$J$$$h$&(B, $B@0?t(B @var{a}, @var{b}, 
$B9`(B @var{t} $B$K$h$j(B @var{a(dpoly1 + dpoly2)-bt dpoly3} $B$H$7$F7W;;$5$l$k(B. 
@item
$B7k2L$O(B, @code{[@var{a dpoly1},@var{a dpoly2 - bt dpoly3}]} $B$J$k%j%9%H$G$"$k(B.
@end itemize

@example
[157] D=(3)*<<2,1,0,0,0>>+(3)*<<1,2,0,0,0>>+(1)*<<0,3,0,0,0>>;
(3)*<<2,1,0,0,0>>+(3)*<<1,2,0,0,0>>+(1)*<<0,3,0,0,0>>
[158] R=(6)*<<1,1,1,0,0>>;                                    
(6)*<<1,1,1,0,0>>
[159] C=12*<<1,1,1,0,0>>+(1)*<<0,1,1,1,0>>+(1)*<<1,1,0,0,1>>; 
(12)*<<1,1,1,0,0>>+(1)*<<0,1,1,1,0>>+(1)*<<1,1,0,0,1>>
[160] dp_red(D,R,C);                                         
[(6)*<<2,1,0,0,0>>+(6)*<<1,2,0,0,0>>+(2)*<<0,3,0,0,0>>,(-1)*<<0,1,1,1,0>>
+(-1)*<<1,1,0,0,1>>]
@end example

@table @t
@item $B;2>H(B
@fref{dp_mod dp_rat}.
@end table

@node dp_sp dp_sp_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{dp_sp}, @code{dp_sp_mod}
@findex dp_sp
@findex dp_sp_mod

@table @t
@item dp_sp(@var{dpoly1},@var{dpoly2})
@item dp_sp_mod(@var{dpoly1},@var{dpoly2},@var{mod})
:: S-$BB?9`<0$N7W;;(B
@end table

@table @var
@item return
$BJ,;6I=8=B?9`<0(B
@item dpoly1, dpoly2
$BJ,;6I=8=B?9`<0(B
@item mod
$BAG?t(B
@end table

@itemize @bullet
@item
@var{dpoly1}, @var{dpoly2} $B$N(B S-$BB?9`<0$r7W;;$9$k(B. 
@item
@code{dp_sp_mod()} $B$NF~NO$O(B, $BA4$FM-8BBN78?t$KJQ49$5$l$F$$$kI,MW$,$"$k(B. 
@item
$B7k2L$KM-M}?t(B, $BM-M}<0$,F~$k$N$rHr$1$k$?$a(B, $B7k2L$,Dj?tG\(B, $B$"$k$$$OB?9`<0(B
$BG\$5$l$F$$$k2DG=@-$,$"$k(B. 
@end itemize

@example
[227] X=dp_ptod(x^2*y+x*y,[x,y]);
(1)*<<2,1>>+(1)*<<1,1>>
[228] Y=dp_ptod(x*y^2+x*y,[x,y]);
(1)*<<1,2>>+(1)*<<1,1>>
[229] dp_sp(X,Y);
(-1)*<<2,1>>+(1)*<<1,2>>
@end example

@table @t
@item $B;2>H(B
@fref{dp_mod dp_rat}.
@end table
@node p_nf p_nf_mod p_true_nf p_true_nf_mod,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{p_nf}, @code{p_nf_mod}, @code{p_true_nf}, @code{p_true_nf_mod}
@findex p_nf
@findex p_nf_mod
@findex p_true_nf
@findex p_true_nf_mod

@table @t
@item p_nf(@var{poly},@var{plist},@var{vlist},@var{order})
@itemx p_nf_mod(@var{poly},@var{plist},@var{vlist},@var{order},@var{mod})
:: $BI=8=B?9`<0$N@55,7A$r5a$a$k(B. ($B7k2L$ODj?tG\$5$l$F$$$k2DG=@-$"$j(B)
@item p_true_nf(@var{poly},@var{plist},@var{vlist},@var{order})
@itemx p_true_nf_mod(@var{poly},@var{plist},@var{vlist},@var{order},@var{mod})
:: $BI=8=B?9`<0$N@55,7A$r5a$a$k(B. ($B??$N7k2L$r(B @code{[$BJ,;R(B, $BJ,Jl(B]} $B$N7A$GJV$9(B)
@end table

@table @var
@item return
@code{p_nf} : $BB?9`<0(B, @code{p_true_nf} : $B%j%9%H(B
@item poly
$BB?9`<0(B
@item plist,vlist
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@item mod
$BAG?t(B
@end table

@itemize @bullet
@item
@samp{gr} $B$GDj5A$5$l$F$$$k(B. 
@item
$BB?9`<0$N(B, $BB?9`<0%j%9%H$K$h$k@55,7A$r5a$a$k(B. 
@item
@code{dp_nf()}, @code{dp_true_nf()}, @code{dp_nf_mod()}, @code{dp_true_nf_mod}
$B$KBP$9$k%$%s%?%U%'!<%9$G$"$k(B. 
@item
@var{poly} $B$*$h$S(B @var{plist} $B$O(B, $BJQ?t=g=x(B @var{vlist} $B$*$h$S(B
$BJQ?t=g=x7?(B @var{otype} $B$K=>$C$FJ,;6I=8=B?9`<0$KJQ49$5$l(B, 
@code{dp_nf()}, @code{dp_true_nf()}, @code{dp_nf_mod()},
@code{dp_true_nf_mod()} $B$KEO$5$l$k(B. 
@item
@code{dp_nf()}, @code{dp_true_nf()}, @code{dp_nf_mod()},
@code{dp_true_nf_mod()} $B$O(B @var{fullreduce} $B$,(B 1 $B$G8F$S=P$5$l$k(B. 
@item
$B7k2L$OB?9`<0$KJQ49$5$l$F=PNO$5$l$k(B. 
@item
@code{p_true_nf()}, @code{p_true_nf_mod()} $B$N=PNO$K4X$7$F$O(B,
@code{dp_true_nf()}, @code{dp_true_nf_mod()} $B$N9`$r;2>H(B. 
@end itemize

@example
[79] K = katsura(5)$
[80] V = [u5,u4,u3,u2,u1,u0]$
[81] G = hgr(K,V,2)$
[82] p_nf(K[1],G,V,2);
0
[83] L = p_true_nf(K[1]+1,G,V,2);
[-1503...,-1503...]
[84] L[0]/L[1];
1
@end example

@table @t
@item $B;2>H(B
@fref{dp_ptod},
@fref{dp_dtop},
@fref{dp_ord},
@fref{dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod}.
@end table

@node p_terms,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{p_terms}
@findex p_terms

@table @t
@item p_terms(@var{poly},@var{vlist},@var{order})
:: $BB?9`<0$K$"$i$o$l$kC19`$r%j%9%H$K$9$k(B. 
@end table

@table @var
@item return
$B%j%9%H(B
@item poly
$BB?9`<0(B
@item vlist
$B%j%9%H(B
@item order
$B?t(B, $B%j%9%H$^$?$O9TNs(B
@end table

@itemize @bullet
@item
@samp{gr} $B$GDj5A$5$l$F$$$k(B. 
@item
$BB?9`<0$rC19`$KE83+$7$?;~$K8=$l$k9`$r%j%9%H$K$7$FJV$9(B.
@var{vlist} $B$*$h$S(B @var{order} $B$K$h$jDj$^$k9`=g=x$K$h$j(B, $B=g=x$N9b$$$b$N(B
$B$,%j%9%H$N@hF,$KMh$k$h$&$K%=!<%H$5$l$k(B. 
@item
$B%0%l%V%J4pDl$O$7$P$7$P78?t$,5pBg$K$J$k$?$a(B, $B<B:]$K$I$N9`$,8=$l$F(B
$B$$$k$N$+$r8+$k$?$a$J$I$KMQ$$$k(B. 
@end itemize

@example
[233] G=gr(katsura(5),[u5,u4,u3,u2,u1,u0],2)$
[234] p_terms(G[0],[u5,u4,u3,u2,u1,u0],2);
[u5,u0^31,u0^30,u0^29,u0^28,u0^27,u0^26,u0^25,u0^24,u0^23,u0^22,u0^21,u0^20,
u0^19,u0^18,u0^17,u0^16,u0^15,u0^14,u0^13,u0^12,u0^11,u0^10,u0^9,u0^8,u0^7,
u0^6,u0^5,u0^4,u0^3,u0^2,u0,1]
@end example

@node gb_comp,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{gb_comp}
@findex gb_comp

@table @t
@item gb_comp(@var{plist1}, @var{plist2})
:: $BB?9`<0%j%9%H$,(B, $BId9f$r=|$$$F=89g$H$7$FEy$7$$$+$I$&$+D4$Y$k(B. 
@end table

@table @var
@item return 0 $B$^$?$O(B 1
@item plist1, plist2
@end table

@itemize @bullet
@item
@var{plist1}, @var{plist2} $B$K$D$$$F(B, $BId9f$r=|$$$F=89g$H$7$FEy$7$$$+$I$&$+(B
$BD4$Y$k(B. 
@item
$B0[$J$kJ}K!$G5a$a$?%0%l%V%J4pDl$O(B, $B4pDl$N=g=x(B, $BId9f$,0[$J$k>l9g$,$"$j(B, 
$B$=$l$i$,Ey$7$$$+$I$&$+$rD4$Y$k$?$a$KMQ$$$k(B. 
@end itemize

@example
[243] C=cyclic(6)$
[244] V=[c0,c1,c2,c3,c4,c5]$
[245] G0=gr(C,V,0)$
[246] G=tolex(G0,V,0,V)$
[247] GG=lex_tl(C,V,0,V,0)$
[248] gb_comp(G,GG);
1
@end example

@node katsura hkatsura cyclic hcyclic,,, $B%0%l%V%J4pDl$K4X$9$kH!?t(B
@subsection @code{katsura}, @code{hkatsura}, @code{cyclic}, @code{hcyclic}
@findex katsura
@findex hkatsura
@findex cyclic
@findex hcyclic

@table @t
@item katsura(@var{n})
@item hkatsura(@var{n})
@item cyclic(@var{n})
@item hcyclic(@var{n})
:: $BB?9`<0%j%9%H$N@8@.(B
@end table

@table @var
@item return
$B%j%9%H(B
@item n
$B@0?t(B
@end table

@itemize @bullet
@item
@code{katsura()} $B$O(B @samp{katsura}, @code{cyclic()} $B$O(B @samp{cyclic}
$B$GDj5A$5$l$F$$$k(B. 
@item
$B%0%l%V%J4pDl7W;;$G$7$P$7$P%F%9%H(B, $B%Y%s%A%^!<%/$KMQ$$$i$l$k(B @code{katsura}, 
@code{cyclic} $B$*$h$S$=$N@F<!2=$r@8@.$9$k(B. 
@item
@code{cyclic} $B$O(B @code{Arnborg}, @code{Lazard}, @code{Davenport} $B$J$I$N(B
$BL>$G8F$P$l$k$3$H$b$"$k(B. 
@end itemize

@example
[74] load("katsura")$
[79] load("cyclic")$ 
[89] katsura(5);
[u0+2*u4+2*u3+2*u2+2*u1+2*u5-1,2*u4*u0-u4+2*u1*u3+u2^2+2*u5*u1,
2*u3*u0+2*u1*u4-u3+(2*u1+2*u5)*u2,2*u2*u0+2*u2*u4+(2*u1+2*u5)*u3-u2+u1^2,
2*u1*u0+(2*u3+2*u5)*u4+2*u2*u3+2*u1*u2-u1,
u0^2-u0+2*u4^2+2*u3^2+2*u2^2+2*u1^2+2*u5^2]
[90] hkatsura(5);
[-t+u0+2*u4+2*u3+2*u2+2*u1+2*u5,
-u4*t+2*u4*u0+2*u1*u3+u2^2+2*u5*u1,-u3*t+2*u3*u0+2*u1*u4+(2*u1+2*u5)*u2,
-u2*t+2*u2*u0+2*u2*u4+(2*u1+2*u5)*u3+u1^2,
-u1*t+2*u1*u0+(2*u3+2*u5)*u4+2*u2*u3+2*u1*u2,
-u0*t+u0^2+2*u4^2+2*u3^2+2*u2^2+2*u1^2+2*u5^2]
[91] cyclic(6);
[c5*c4*c3*c2*c1*c0-1,
((((c4+c5)*c3+c5*c4)*c2+c5*c4*c3)*c1+c5*c4*c3*c2)*c0+c5*c4*c3*c2*c1,
(((c3+c5)*c2+c5*c4)*c1+c5*c4*c3)*c0+c4*c3*c2*c1+c5*c4*c3*c2,
((c2+c5)*c1+c5*c4)*c0+c3*c2*c1+c4*c3*c2+c5*c4*c3,
(c1+c5)*c0+c2*c1+c3*c2+c4*c3+c5*c4,c0+c1+c2+c3+c4+c5]
[92] hcyclic(6);
[-c^6+c5*c4*c3*c2*c1*c0,
((((c4+c5)*c3+c5*c4)*c2+c5*c4*c3)*c1+c5*c4*c3*c2)*c0+c5*c4*c3*c2*c1,
(((c3+c5)*c2+c5*c4)*c1+c5*c4*c3)*c0+c4*c3*c2*c1+c5*c4*c3*c2,
((c2+c5)*c1+c5*c4)*c0+c3*c2*c1+c4*c3*c2+c5*c4*c3,
(c1+c5)*c0+c2*c1+c3*c2+c4*c3+c5*c4,c0+c1+c2+c3+c4+c5]
@end example

@table @t
@item $B;2>H(B
@fref{dp_dtop}.
@end table