version 1.7, 2000/06/12 08:03:56 |
version 1.12, 2003/07/05 01:53:32 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.6 2000/06/09 08:02:01 takayama Exp $ |
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.11 2003/06/26 08:14:45 takayama Exp $ |
%% hol.sm1, 1998, 11/8, 11/10, 11/14, 11/25, 1999, 5/18, 6/5. 2000, 6/8 |
%% hol.sm1, 1998, 11/8, 11/10, 11/14, 11/25, 1999, 5/18, 6/5. 2000, 6/8 |
%% rank, rrank, characteristic |
%% rank, rrank, characteristic |
%% This file is error clean. |
%% This file is error clean. |
|
|
/arg1 set |
/arg1 set |
[/in-gb /aa /typev /setarg /f /v |
[/in-gb /aa /typev /setarg /f /v |
/gg /wv /termorder /vec /ans /rr /mm |
/gg /wv /termorder /vec /ans /rr /mm |
|
/degreeShift /env2 |
] pushVariables |
] pushVariables |
[(CurrentRingp) (KanGBmessage)] pushEnv |
[(CurrentRingp) (KanGBmessage)] pushEnv |
[ |
[ |
|
|
aa isArray { } { ( << array >> gb) error } ifelse |
aa isArray { } { ( << array >> gb) error } ifelse |
/setarg 0 def |
/setarg 0 def |
/wv 0 def |
/wv 0 def |
|
/degreeShift 0 def |
aa { tag } map /typev set |
aa { tag } map /typev set |
typev [ ArrayP ] eq |
typev [ ArrayP ] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
|
|
/v aa 1 get def |
/v aa 1 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP] eq |
typev [ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
/wv aa 2 get def |
/wv aa 2 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP StringP ArrayP ArrayP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/wv aa 2 get def |
|
/degreeShift aa 3 get def |
|
/setarg 1 def |
|
} { } ifelse |
|
typev [ArrayP ArrayP ArrayP ArrayP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get from_records def |
|
/wv aa 2 get def |
|
/degreeShift aa 3 get def |
|
/setarg 1 def |
|
} { } ifelse |
|
|
|
/env1 getOptions def |
|
|
setarg { } { (gb : Argument mismatch) error } ifelse |
setarg { } { (gb : Argument mismatch) error } ifelse |
|
|
[(KanGBmessage) gb.verbose ] system_variable |
[(KanGBmessage) gb.verbose ] system_variable |
|
|
%%% Start of the preprocess |
%%% Start of the preprocess |
f getRing /rr set |
v tag RingP eq { |
|
/rr v def |
|
}{ |
|
f getRing /rr set |
|
} ifelse |
%% To the normal form : matrix expression. |
%% To the normal form : matrix expression. |
f gb.toMatrixOfString /f set |
f gb.toMatrixOfString /f set |
/mm gb.itWasMatrix def |
/mm gb.itWasMatrix def |
|
|
0] define_ring |
0] define_ring |
/termorder 1 def |
/termorder 1 def |
}{ |
}{ |
[v ring_of_differential_operators |
degreeShift isInteger { |
wv weight_vector |
[v ring_of_differential_operators |
0] define_ring |
wv weight_vector |
wv gb.isTermOrder /termorder set |
0] define_ring |
|
wv gb.isTermOrder /termorder set |
|
}{ |
|
[v ring_of_differential_operators |
|
wv weight_vector |
|
0 |
|
[(degreeShift) degreeShift] |
|
] define_ring |
|
wv gb.isTermOrder /termorder set |
|
} ifelse |
} ifelse |
} ifelse |
} { |
} { |
%% Use the ring structre given by the input. |
%% Use the ring structre given by the input. |
|
|
}{ } |
}{ } |
ifelse |
ifelse |
%% |
%% |
|
env1 restoreOptions %% degreeShift changes "grade" |
|
|
/arg1 ans def |
/arg1 ans def |
] pop |
] pop |
|
|
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f v]; array f; string v; v is the variables. ) |
(a : [f v]; array f; string v; v is the variables. ) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
|
(a : [f v w ds]; array f; string v; array of array w; w is the weight matirx.) |
|
( array ds; ds is the degree shift ) |
( ) |
( ) |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -1) ( x y Dx Dy -1)] (x,y) $ |
$ [ [ (Dx) 1 ] ] ] gb pmat ; $ |
$ [ [ (Dx) 1 ] ] ] gb pmat ; $ |
|
|
$Example 4: [[ [(x^2) (y+x)] [(x+y) (y^3)] [(2 x^2+x y) (y+x+x y^3)]] (x,y) $ |
$Example 4: [[ [(x^2) (y+x)] [(x+y) (y^3)] [(2 x^2+x y) (y+x+x y^3)]] (x,y) $ |
$ [ [ (x) -1 (y) -1] ] ] gb pmat ; $ |
$ [ [ (x) -1 (y) -1] ] ] gb pmat ; $ |
( ) |
( ) |
|
$Example 5: [[ [(x^2) (y+x)] [(x+y) (y^3)] [(2 x^2+x y) (y+x+x y^3)]] (x,y) $ |
|
$ [ [ (x) -1 (y) -1] ] [[0 1] [-3 1] ] ] gb pmat ; $ |
|
( ) |
(cf. gb, groebner, groebner_sugar, syz. ) |
(cf. gb, groebner, groebner_sugar, syz. ) |
]] putUsages |
]] putUsages |
|
|
|
|
/v aa 1 get def |
/v aa 1 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP] eq |
typev [ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
/wv aa 2 get def |
/wv aa 2 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP ArrayP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/wv aa 2 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP ArrayP] eq |
typev [ArrayP ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
|
|
|
|
%%% Start of the preprocess |
%%% Start of the preprocess |
f getRing /rr set |
v tag RingP eq { |
|
/rr v def |
|
}{ |
|
f getRing /rr set |
|
} ifelse |
%% To the normal form : matrix expression. |
%% To the normal form : matrix expression. |
f gb.toMatrixOfString /f set |
f gb.toMatrixOfString /f set |
/mm gb.itWasMatrix def |
/mm gb.itWasMatrix def |
|
|
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f v]; array f; string v; v is the variables.) |
(a : [f v]; array f; string v; v is the variables.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
|
( v may be a ring object. ) |
$Example 1: [(x,y) ring_of_polynomials 0] define_ring $ |
$Example 1: [(x,y) ring_of_polynomials 0] define_ring $ |
$ [ [(x^2+y^2-4). (x y -1).] ] syz :: $ |
$ [ [(x^2+y^2-4). (x y -1).] ] syz :: $ |
$Example 2: [ [(x^2+y^2) (x y)] (x,y) [ [(x) -1 (y) -1] ] ] syz :: $ |
$Example 2: [ [(x^2+y^2) (x y)] (x,y) [ [(x) -1 (y) -1] ] ] syz :: $ |
|
|
/v aa 1 get def |
/v aa 1 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP] eq |
typev [ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
[(KanGBmessage) gb.verbose ] system_variable |
[(KanGBmessage) gb.verbose ] system_variable |
|
|
%%% Start of the preprocess |
%%% Start of the preprocess |
f getRing /rr set |
v tag RingP eq { |
|
/rr v def |
|
}{ |
|
f getRing /rr set |
|
} ifelse |
%% To the normal form : matrix expression. |
%% To the normal form : matrix expression. |
f gb.toMatrixOfString /f set |
f gb.toMatrixOfString /f set |
/mm gb.itWasMatrix def |
/mm gb.itWasMatrix def |
|
|
$ [(Homogenize_vec) 0] system_variable (grade) (module1v) switch_function$ |
$ [(Homogenize_vec) 0] system_variable (grade) (module1v) switch_function$ |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f v]; array f; string v; v is the variables. ) |
(a : [f v]; array f; string v; v is the variables. ) |
|
(a : [f r]; array f; ring r ) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
( ) |
( ) |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -h^4) ( x y Dx Dy -h^4)] (x,y) $ |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -h^4) ( x y Dx Dy -h^4)] (x,y) $ |
|
|
/v aa 1 get def |
/v aa 1 get def |
/setarg 1 def |
/setarg 1 def |
} { } ifelse |
} { } ifelse |
|
typev [ArrayP RingP] eq |
|
{ /f aa 0 get def |
|
/v aa 1 get def |
|
/setarg 1 def |
|
} { } ifelse |
typev [ArrayP ArrayP] eq |
typev [ArrayP ArrayP] eq |
{ /f aa 0 get def |
{ /f aa 0 get def |
/v aa 1 get from_records def |
/v aa 1 get from_records def |
|
|
|
|
|
|
%%% Start of the preprocess |
%%% Start of the preprocess |
f getRing /rr set |
v tag RingP eq { |
|
/rr v def |
|
}{ |
|
f getRing /rr set |
|
} ifelse |
%% To the normal form : matrix expression. |
%% To the normal form : matrix expression. |
f gb.toMatrixOfString /f set |
f gb.toMatrixOfString /f set |
/mm gb.itWasMatrix def |
/mm gb.itWasMatrix def |
|
|
$ [(Homogenize_vec) 0] system_variable (grade) (module1v) switch_function$ |
$ [(Homogenize_vec) 0] system_variable (grade) (module1v) switch_function$ |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f ]; array f; f is a set of generators of an ideal in a ring.) |
(a : [f v]; array f; string v; v is the variables.) |
(a : [f v]; array f; string v; v is the variables.) |
|
(a : [f r]; array f; ring r ) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
(a : [f v w]; array f; string v; array of array w; w is the weight matirx.) |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -h^4) ( x y Dx Dy -h^4)] (x,y) $ |
$Example 1: [ [( (x Dx)^2 + (y Dy)^2 -h^4) ( x y Dx Dy -h^4)] (x,y) $ |
$ [ [ (Dx) 1 ] ] ] syz_h pmat ; $ |
$ [ [ (Dx) 1 ] ] ] syz_h pmat ; $ |
|
|
jjgg 0 get { [ (toe_) 3 -1 roll ] gbext } map |
jjgg 0 get { [ (toe_) 3 -1 roll ] gbext } map |
/jjgg set |
/jjgg set |
|
|
|
gb.verbose { (Comparing) message iigg message (and) message jjgg message } |
|
{ } ifelse |
gb.verbose { ( ii < jj ?) messagen } { } ifelse |
gb.verbose { ( ii < jj ?) messagen } { } ifelse |
iigg length /n set |
iigg length /n set |
0 1 n 1 sub { |
0 1 n 1 sub { |