1% Test file for XIDEAL package (Groebner bases for exterior algebra) 2 3% Declare EXCALC variables 4 5pform {x,y,z,t}=0,f(i)=1,{u,u(i),u(i,j)}=0; 6 7 8% Reductions with xmodideal (all should be zero) 9 10d x^d y xmodideal {d x - d y}; 11d x^d y^d z xmodideal {d x^d y - d z^d t}; 12d x^d z^d t xmodideal {d x^d y - d z^d t}; 13f(2)^d x^d y xmodideal {d t^f(1) - f(2)^f(3), 14 f(3)^f(1) - d x^d y}; 15d t^f(1)^d z xmodideal {d t^f(1) - f(2)^f(3), 16 f(1)^d z - d x^d y, 17 d t^d y - d x^f(2)}; 18f(3)^f(4)^f(5)^f(6) 19 xmodideal {f(1)^f(2) + f(3)^f(4) + f(5)^f(6)}; 20f(1)^f(4)^f(5)^f(6) 21 xmodideal {f(1)^f(2) + f(2)^f(3) + f(3)^f(4) 22 + f(4)^f(5) + f(5)^f(6)}; 23d x^d y^d z xmodideal {x**2+y**2+z**2-1,x*d x+y*d y+z*d z}; 24 25 26% Changing the division between exterior variables and parameters 27 28xideal {a*d x+y*d y}; 29xvars {a}; 30xideal {a*d x+y*d y}; 31xideal({a*d x+y*d y},{a,y}); 32xvars {}; % all 0-forms are coefficients 33excoeffs(d u - (a*p - q)*d y); 34exvars(d u - (a*p - q)*d y); 35xvars {p,q}; % p,q are no longer coefficients 36excoeffs(d u - (a*p - q)*d y); 37exvars(d u - (a*p - q)*d y); 38xvars nil; 39 40 41% Exterior system for heat equation on 1st jet bundle 42 43S := {d u - u(-t)*d t - u(-x)*d x, 44 d u(-t)^d t + d u(-x)^d x, 45 d u(-x)^d t - u(-t)*d x^d t}; 46 47% Check that it's closed. 48 49dS := d S xmodideal S; 50 51 52% Exterior system for a Monge-Ampere equation 53 54korder d u(-y,-y),d u(-x,-y),d u(-x,-x),d u(-y),d u(-x),d u; 55M := {u(-x,-x)*u(-y,-y) - u(-x,-y)**2, 56 d u - u(-x)*d x - u(-y)*d y, 57 d u(-x) - u(-x,-x)*d x - u(-x,-y)*d y, 58 d u(-y) - u(-x,-y)*d x - u(-y,-y)*d y}$ 59 60% Get the full Groebner basis 61 62gbdeg := xideal M; 63 64% Changing the term ordering can be dramatic 65 66xorder gradlex; 67gbgrad := xideal M; 68 69% But the bases are equivalent 70 71gbdeg xmod gbgrad; 72xorder deglex; 73gbgrad xmod gbdeg; 74 75 76% Some Groebner bases 77 78gb := xideal {f(1)^f(2) + f(3)^f(4)}; 79gb := xideal {f(1)^f(2), f(1)^f(3)+f(2)^f(4)+f(5)^f(6)}; 80 81 82% Non-graded ideals 83 84% Left and right ideals are not the same 85 86d t^(d z+d x^d y) xmodideal {d z+d x^d y}; 87(d z+d x^d y)^d t xmodideal {d z+d x^d y}; 88 89% Higher order forms can now reduce lower order ones 90 91d x xmodideal {d y^d z + d x,d x^d y + d z}; 92 93% Anything whose even part is a parameter generates the trivial ideal!! 94 95gb := xideal({x + d y},{}); 96gb := xideal {1 + f(1) + f(1)^f(2) + f(2)^f(3)^f(4) + f(3)^f(4)^f(5)^f(6)}; 97xvars nil; 98 99 100% Tracing Groebner basis calculations 101 102on trxideal; 103gb := xideal {x-y+y*d x-x*d y}; 104off trxideal; 105 106 107% Same thing in lexicographic order, without full reduction 108 109xorder lex; 110off xfullreduce; 111gblex := xideal {x-y+y*d x-x*d y}; 112 113% Manual autoreduction 114 115gblex := xauto gblex; 116 117 118% Tracing reduction 119 120on trxmod; 121first gb xmod gblex; 122 123 124% Restore defaults 125 126on xfullreduce; 127off trxideal,trxmod; 128xvars nil; 129xorder deglex; 130 131 132end; 133