`p_nf', `p_nf_mod', `p_true_nf', `p_true_nf_mod'
------------------------------------------------

p_nf(POLY,PLIST,VLIST,ORDER)
p_nf_mod(POLY,PLIST,VLIST,ORDER,MOD)
     :: 表現多項式の正規形を求める. (結果は定数倍されている可能性あり)

p_true_nf(POLY,PLIST,VLIST,ORDER)
p_true_nf_mod(POLY,PLIST,VLIST,ORDER,MOD)
     :: 表現多項式の正規形を求める. (真の結果を `[分子, 分母]'
     の形で返す)

RETURN
     `p_nf' : 多項式, `p_true_nf' : リスト

POLY
     多項式

PLIST VLIST
     リスト

ORDER
     数, リストまたは行列

MOD
     素数

   * `gr' で定義されている.

   * 多項式の, 多項式リストによる正規形を求める.

   * `dp_nf()', `dp_true_nf()', `dp_nf_mod()', `dp_true_nf_mod'
     に対するインタフェースである.

   * POLY および PLIST は, 変数順序 VLIST および 変数順序型 OTYPE
     に従って分散表現多項式に変換され, `dp_nf()', `dp_true_nf()',
     `dp_nf_mod()', `dp_true_nf_mod()' に渡される.

   * `dp_nf()', `dp_true_nf()', `dp_nf_mod()', `dp_true_nf_mod()' は
     FULLREDUCE が 1 で呼び出される.

   * 結果は多項式に変換されて出力される.

   * `p_true_nf()', `p_true_nf_mod()' の出力に関しては, `dp_true_nf()',
     `dp_true_nf_mod()' の項を参照.

     [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

参照
     *Note `dp_ptod': dp_ptod, *Note `dp_dtop': dp_dtop, *Note
     `dp_ord': dp_ord, *Note `dp_nf dp_nf_mod dp_true_nf
     dp_true_nf_mod': dp_nf dp_nf_mod dp_true_nf dp_true_nf_mod.

