version 1.9, 2000/12/29 07:19:37 |
version 1.13, 2003/07/29 08:36:39 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.8 2000/08/01 05:53:18 takayama Exp $ |
% $OpenXM: OpenXM/src/kan96xx/Doc/hol.sm1,v 1.12 2003/07/05 01:53:32 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. |
|
|
/gb.v 1 def |
/gb.v 1 def |
/gb.verbose 0 def |
/gb.verbose 0 def |
/gb.options [ ] def |
/gb.options [ ] def |
|
/gb.characteristic 0 def |
/gb { |
/gb { |
/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 |
|
|
} { } ifelse |
} { } ifelse |
wv isInteger { |
wv isInteger { |
[v ring_of_differential_operators |
[v ring_of_differential_operators |
0] define_ring |
gb.characteristic] 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 |
gb.characteristic] define_ring |
|
wv gb.isTermOrder /termorder set |
|
}{ |
|
[v ring_of_differential_operators |
|
wv weight_vector |
|
gb.characteristic |
|
[(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 |
|
|
} { } ifelse |
} { } ifelse |
wv isInteger { |
wv isInteger { |
[v ring_of_polynomials |
[v ring_of_polynomials |
0] define_ring |
gb.characteristic] define_ring |
/termorder 1 def |
/termorder 1 def |
}{ |
}{ |
[v ring_of_polynomials |
[v ring_of_polynomials |
wv weight_vector |
wv weight_vector |
0] define_ring |
gb.characteristic] define_ring |
wv gb.isTermOrder /termorder set |
wv gb.isTermOrder /termorder set |
} ifelse |
} ifelse |
} { |
} { |
|
|
(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 |
|
|
[(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 ; $ |