REDUCE 3.6, 15-Jul-95, patched to 6 Mar 96 ...


% Test file for XIDEAL package (Groebner bases for exterior algebra)

% Just make sure excalc has been loaded

load_package excalc$


*** ^ redefined 


% Declare exterior form variables

pform x=0,y=0,z=0,t=0,u=1,v=1,w=1,f(i)=1,h=0,hx=0,ht=0;



% Set switches for reduced Groebner bases in graded ideals

on xfullreduce;



% Reductions with xmodulo (all should be zero)

d x^d y     xmodulo {d x - d y};


0

d x^d y^d z xmodulo {d x^d y - d z^d t};


0

d x^d z^d t xmodulo {d x^d y - d z^d t};


0

v^d x^d y   xmodulo {d t^u - v^w,
                     w^u - d x^d y};


0

d t^u^d z   xmodulo {d t^u - v^w,
                     u^d z - d x^d y,
                     d t^d y - d x^v};


0

f(3)^f(4)^f(5)^f(6)
            xmodulo {f(1)^f(2) + f(3)^f(4) + f(5)^f(6)};


0

f(1)^f(4)^f(5)^f(6)
           xmodulo {f(1)^f(2) + f(2)^f(3) + f(3)^f(4) + f(4)^f(5) + f(5)^f(6)};


0


% Exterior system for heat equation on 1st jet bundle

S := {d h - ht*d t - hx*d x,
      d ht^d t + d hx^d x,
      d hx^d t - ht*d x^d t};


s := {d h - d t*ht - d x*hx,

      d ht^d t + d hx^d x,

      d hx^d t + d t^d x*ht}


% Check that it's closed.

dS := (for each a in S collect d a) xmodulo S;


ds := {}


% Some Groebner bases (0-forms generate the trivial ideal)

gb := xideal {x, d y};


gb := {1}

gb := xideal {f(1)^f(2) + f(3)^f(4)};


        1  2    3  4
gb := {f ^f  + f ^f ,

        1  3  4
       f ^f ^f ,

        2  3  4
       f ^f ^f }

gb := xideal {f(1)^f(2), f(1)^f(3)+f(2)^f(4)+f(5)^f(6)};


        1  2
gb := {f ^f ,

        2  5  6
       f ^f ^f ,

        1  5  6
       f ^f ^f ,

        1  3    2  4    5  6
       f ^f  + f ^f  + f ^f ,

           2  3  4    3  5  6
        - f ^f ^f  + f ^f ^f ,

           3  4  5  6
        - f ^f ^f ^f }


% The same again, but not reduced

off xfullreduce;


gb := xideal {x, d y};


gb := {1}

gb := xideal {f(1)^f(2) + f(3)^f(4)};


        1  2    3  4
gb := {f ^f  + f ^f ,

        1  3  4
       f ^f ^f ,

        2  3  4
       f ^f ^f }

gb := xideal {f(1)^f(2), f(1)^f(3)+f(2)^f(4)+f(5)^f(6)};


        1  3    2  4    5  6
gb := {f ^f  + f ^f  + f ^f ,

        1  2  4    1  5  6
       f ^f ^f  + f ^f ^f ,

           2  3  4    3  5  6
        - f ^f ^f  + f ^f ^f ,

           1  2  5  6
        - f ^f ^f ^f ,

           1  4  5  6
        - f ^f ^f ^f ,

        2  3  5  6
       f ^f ^f ^f ,

           3  4  5  6
        - f ^f ^f ^f ,

          2  4  5  6
       2*f ^f ^f ^f ,

        1  2
       f ^f ,

        2  5  6
       f ^f ^f ,

        1  5  6
       f ^f ^f }


% Reductions with a ready Groebner basis (not all zero)

on xfullreduce;


gb := xideal {f(1)^f(2) + f(3)^f(4) + f(5)^f(6)};


        1  2    3  4    5  6
gb := {f ^f  + f ^f  + f ^f ,

        1  3  4    1  5  6
       f ^f ^f  + f ^f ^f ,

        2  3  4    2  5  6
       f ^f ^f  + f ^f ^f ,

           1  3  5  6
        - f ^f ^f ^f ,

           1  4  5  6
        - f ^f ^f ^f ,

           2  3  5  6
        - f ^f ^f ^f ,

           2  4  5  6
        - f ^f ^f ^f ,

          3  4  5  6
       2*f ^f ^f ^f }

f(1)^f(3)^f(4) xmodulop gb;


    1  5  6
 - f ^f ^f

f(3)^f(4)^f(5)^f(6) xmodulop gb;


0


% Non-graded ideals

on xfullreduce;



% Left and right ideals are no longer the same
 
d t^(d z+d x^d y) xmodulo {d z+d x^d y};


0

(d z+d x^d y)^d t xmodulo {d z+d x^d y};


 - 2*d t^d z


% Higher order forms can now reduce lower order ones

d x xmodulo {d y^d z + d x,d x^d y + d z};


0


% Anything with a 0-form term generates the trivial ideal!!

gb := xideal {x + d y};


gb := {1}

gb := xideal {1 + f(1) + f(1)^f(2) + f(2)^f(3)^f(4) + f(3)^f(4)^f(5)^f(6)};


gb := {1}


end;
(TIME:  xideal 1210 1250)
