> restart; > with(LinearAlgebra): > with(Involutive): > > pol := proc(a,n) > t^n+add((-1)^i*a[i]*t^(n-i),i=1..n); > end proc: > > REL := proc(a,n,b,m,c) > local A,B,C; > A:=CompanionMatrix(pol(a,n),t); > B:=CompanionMatrix(pol(b,m),t); > C:=Matrix(convert(Matrix(n,n,(i,j)->A[i,j]*B),listlist)); > map(i->coeff(CharacteristicPolynomial(C,t)-pol(c,n*m),t,n*m-i),[$1..n* > m]); > end proc: > > DEG := proc(p) > degree(subs(map(i->c[i]=t^i,[$1..9]),LeadingMonomial(p,map(i->c[i]=i,[ > $1..9])))); > end proc: > > > L := REL(a,2,b,4,c); L := [-a[1] b[1] + c[1], 2 2 -2 a[2] b[2] + b[1] a[2] + a[1] b[2] - c[2], 3 3 a[1] a[2] b[3] - b[1] a[2] a[1] b[2] - a[1] b[3] + c[3], 2 2 2 2 a[2] b[4] - 2 b[3] a[2] b[1] - 4 a[1] a[2] b[4] 2 4 2 2 + a[2] b[1] a[1] b[3] + a[1] b[4] + a[2] b[2] - c[4], 2 2 -a[2] a[1] b[3] b[2] + 3 a[2] a[1] b[4] b[1] 3 3 2 - b[1] a[2] a[1] b[4] + c[5], a[2] b[3] 3 2 2 - 2 a[2] b[2] b[4] + a[2] a[1] b[4] b[2] - c[6], 3 4 2 -a[2] a[1] b[3] b[4] + c[7], a[2] b[4] - c[8]] > sL := solve({op(L)},map(i->c[i],{$1..8})); 4 2 3 sL := {c[8] = a[2] b[4] , c[7] = a[2] a[1] b[3] b[4], 3 c[3] = -3 a[1] a[2] b[3] + b[1] a[2] a[1] b[2] + a[1] b[3], 2 2 c[5] = a[2] a[1] b[3] b[2] - 3 a[2] a[1] b[4] b[1] 3 + b[1] a[2] a[1] b[4], c[1] = a[1] b[1], 2 2 c[2] = -2 a[2] b[2] + b[1] a[2] + a[1] b[2], c[4] = 2 2 2 2 a[2] b[4] - 2 b[3] a[2] b[1] - 4 a[1] a[2] b[4] 2 4 2 2 + a[2] b[1] a[1] b[3] + a[1] b[4] + a[2] b[2] , c[6] = 3 2 3 2 2 a[2] b[3] - 2 a[2] b[2] b[4] + a[2] a[1] b[4] b[2]} > > L1 := subs([c[8]=1,b[4]=1,a[2]=1],L)[1..-2]; 2 2 L1 := [-a[1] b[1] + c[1], -2 b[2] + b[1] + a[1] b[2] - c[2], 3 3 a[1] b[3] - b[1] a[1] b[2] - a[1] b[3] + c[3], 2 2 2 4 2 - 2 b[3] b[1] - 4 a[1] + b[1] a[1] b[3] + a[1] + b[2] 3 - c[4], -a[1] b[3] b[2] + 3 a[1] b[1] - b[1] a[1] + c[5], 2 2 b[3] - 2 b[2] + a[1] b[2] - c[6], -a[1] b[3] + c[7]] > sL1 := solve({op(L1)},map(i->c[i],{$1..7})); 2 2 sL1 := {c[7] = a[1] b[3], c[6] = b[3] - 2 b[2] + a[1] b[2], 3 c[3] = -3 a[1] b[3] + b[1] a[1] b[2] + a[1] b[3], 2 2 c[2] = -2 b[2] + b[1] + a[1] b[2], c[1] = a[1] b[1], 3 c[5] = a[1] b[3] b[2] - 3 a[1] b[1] + b[1] a[1] , c[4] = 2 2 4 2 2 - 2 b[3] b[1] - 4 a[1] + b[1] a[1] b[3] + a[1] + b[2] } > > v := [c[7] = 14, c[6] = 12, c[5] = 10, c[4] = 8, c[3] = 6, c[2] = 4, > c[1] = 2, b[3]=3,b[2]=2,b[1]=1,a[1]=1]; v := [c[7] = 14, c[6] = 12, c[5] = 10, c[4] = 8, c[3] = 6, c[2] = 4, c[1] = 2, b[3] = 3, b[2] = 2, b[1] = 1, a[1] = 1] > > DegreeSteering := proc(v,gg) > local an1,an2,aa; > global J; > aa := lhs(v[-1]); > J := InvolutiveBasisGINV(J,[op(v[1..-2]),aa=gg]): > an1 := nops(map(r->if not has(r,aa) then r end if,J)); > an2 := nops(map(r->if not > has(LeadingMonomial(r,[op(v[1..-2]),aa=gg]),aa) then r end if,J)); > return(an1,an2,gg,nops(J)); > end proc: > > > ssys := ssystem("date"): > t_start := cat("start ", ssys[2]): > > # 1) > > J := L1; 2 2 J := [-a[1] b[1] + c[1], -2 b[2] + b[1] + a[1] b[2] - c[2], 3 3 a[1] b[3] - b[1] a[1] b[2] - a[1] b[3] + c[3], 2 2 2 4 2 - 2 b[3] b[1] - 4 a[1] + b[1] a[1] b[3] + a[1] + b[2] 3 - c[4], -a[1] b[3] b[2] + 3 a[1] b[1] - b[1] a[1] + c[5], 2 2 b[3] - 2 b[2] + a[1] b[2] - c[6], -a[1] b[3] + c[7]] > v := [c[7]=14, c[6]=12, c[5]=10, c[4]=8, c[3]=6, c[2]=4, c[1]=2, > b[3]=3, b[2]=2, b[1]=1,a[1]=1]; v := [c[7] = 14, c[6] = 12, c[5] = 10, c[4] = 8, c[3] = 6, c[2] = 4, c[1] = 2, b[3] = 3, b[2] = 2, b[1] = 1, a[1] = 1] > DegreeSteering(v,5);DegreeSteering(v,10);DegreeSteering(v,15); 61, 136, 5, 326 Warning, resulting involutive basis is big; reading it may take a while... 524, 525, 10, 1146 Warning, resulting involutive basis is big; reading it may take a while... 420, 420, 15, 888 > J := select(r->not has(r,a[1]),J): > nops(J); 420 > v := [c[7]=14, c[6]=12, c[5]=10, c[4]=8, c[3]=6, c[2]=4, c[1]=2, > b[3]=3, b[2]=2, b[1]=1]; v := [c[7] = 14, c[6] = 12, c[5] = 10, c[4] = 8, c[3] = 6, c[2] = 4, c[1] = 2, b[3] = 3, b[2] = 2, b[1] = 1] > DegreeSteering(v,1);DegreeSteering(v,4);DegreeSteering(v,8);DegreeStee > ring(v,16);DegreeSteering(v,24); 1, 136, 1, 220 Warning, resulting involutive basis is big; reading it may take a while... 1, 118, 4, 305 Warning, resulting involutive basis is big; reading it may take a while... 22, 182, 8, 484 Warning, resulting involutive basis is big; reading it may take a while... 252, 267, 16, 634 Warning, resulting involutive basis is big; reading it may take a while... 274, 274, 24, 641 > J := select(r->not has(r,b[1]),J): > nops(J); 274 > indets(J); {c[4], c[5], c[6], c[7], c[3], c[2], c[1], b[2], b[3]} > v := [c[7]=14, c[6]=12, c[5]=10, c[4]=8, c[3]=6, c[2]=4, c[1]=2, > b[3]=3, b[2]=2]; v := [c[7] = 14, c[6] = 12, c[5] = 10, c[4] = 8, c[3] = 6, c[2] = 4, c[1] = 2, b[3] = 3, b[2] = 2] > DegreeSteering(v,4); > Warning, resulting involutive basis is big; reading it may take a while... 0, 94, 4, 260 > DegreeSteering(v,10); > Warning, resulting involutive basis is big; reading it may take a while... 0, 81, 10, 408 > DegreeSteering(v,14); > Warning, resulting involutive basis is big; reading it may take a while... 0, 104, 14, 508 > DegreeSteering(v,20); > Warning, resulting involutive basis is big; reading it may take a while... 0, 167, 20, 795 > DegreeSteering(v,25); > Warning, resulting involutive basis is big; reading it may take a while... 191, 193, 25, 811 > DegreeSteering(v,30); > Warning, resulting involutive basis is big; reading it may take a while... 191, 193, 30, 811 > DegreeSteering(v,35); > Warning, resulting involutive basis is big; reading it may take a while... 191, 193, 35, 811 > DegreeSteering(v,40); > J := select(r->not has(r,b[2]),J): Warning, resulting involutive basis is big; reading it may take a while... 193, 193, 40, 806 > v := [c[7]=14, c[6]=12, c[5]=10, c[4]=8, c[3]=6, c[2]=4, c[1]=2, > b[3]=3]; v := [c[7] = 14, c[6] = 12, c[5] = 10, c[4] = 8, c[3] = 6, c[2] = 4, c[1] = 2, b[3] = 3] > DegreeSteering(v,6);DegreeSteering(v,12);DegreeSteering(v,18); Warning, resulting involutive basis is big; reading it may take a while... 1, 69, 6, 224 Warning, resulting involutive basis is big; reading it may take a while... 125, 126, 12, 307 Warning, resulting involutive basis is big; reading it may take a while... 131, 131, 18, 301 > J := select(r->not has(r,b[3]),J): > nops(J); 131 > indets(J); {c[4], c[5], c[6], c[7], c[3], c[2], c[1]} > v := map(i->c[8-i]=8-i,[$1..7]); v := [c[7] = 7, c[6] = 6, c[5] = 5, c[4] = 4, c[3] = 3, c[2] = 2, c[1] = 1] > J := InvolutiveBasisGINV(J,v): Warning, resulting involutive basis is big; reading it may take a while... > Jdet1 := J: > nops(J); 131 > > ssys := ssystem("date"): > t_finish_det1 := cat("finish det 1 ", ssys[2]): > > > > # 2) homogenize: > > J := Jdet1: > > Homo:=proc(p) > algsubs(t^4=z[4],evala(algsubs(t^8=c[8],evala(subs(map(i->c[i]=c[i]/t^ > i,[$1..7]),p)*t^DEG(p))))); > end proc: > > JH := map(Homo, J): > indets(JH); {c[4], c[5], c[6], c[7], c[8], c[3], c[2], c[1], z[4]} > > v := [z[4]=4, c[8]=8, c[7]=7, c[6]=6, c[5]=5, c[4]=4, c[3]=3, c[2]=2, > c[1]=1]; v := [z[4] = 4, c[8] = 8, c[7] = 7, c[6] = 6, c[5] = 5, c[4] = 4, c[3] = 3, c[2] = 2, c[1] = 1] > J := InvolutiveBasisGINV([z[4]^2-c[8], op(JH)], v): Warning, resulting involutive basis is big; reading it may take a while... > nops(J); 104 > v := [z[4]=5, c[8]=8, c[7]=7, c[6]=6, c[5]=5, c[4]=4, c[3]=3, c[2]=2, > c[1]=1]; v := [z[4] = 5, c[8] = 8, c[7] = 7, c[6] = 6, c[5] = 5, c[4] = 4, c[3] = 3, c[2] = 2, c[1] = 1] > J := InvolutiveBasisGINV(J, v): Warning, resulting involutive basis is big; reading it may take a while... > nops(J); 629 > J_elim := remove(has, J, z[4]): > nops(J_elim); 233 > an1:=nops(map(r->if not has(r,z[4]) then r end if,J)); > an2:=nops(map(r->if not has(LeadingMonomial(r, [z[4]=5, > op(v[2..-1])]), z[4]) then r end if,J)); an1 := 233 an2 := 233 > > > v := map(i->c[9-i]=9-i,[$1..8]); v := [c[8] = 8, c[7] = 7, c[6] = 6, c[5] = 5, c[4] = 4, c[3] = 3, c[2] = 2, c[1] = 1] > AssertInvBasis(J_elim, v): > F := FactorModuleBasis(v): > simplify(subs([seq(c[i]=t^i, i=1..8)], F)); 8 10 27 21 44 5 7 12 20 - (1 + t + t + 2 t + 2 t - 5 t + t + t + t + 2 t 26 34 46 13 14 37 41 + 2 t - 12 t + 3 t + t + t + 19 t - 13 t 36 47 45 32 15 42 35 + 20 t + 3 t + 7 t - 33 t + 2 t - 18 t + 4 t 43 40 24 29 30 23 31 - 14 t + 5 t + 2 t + 3 t - 8 t + 2 t - 6 t 33 28 39 16 22 25 38 - 17 t + 2 t + 8 t + t + 2 t + 2 t + 34 t 19 18 17 / 6 4 3 + t + t + t ) / ((-1 + t ) (-1 + t ) (-1 + t ) / 2 (-1 + t ) (-1 + t)) > > map(DEG,J_elim); [28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 46, 46, 46, 46, 46, 46, 47, 47, 48, 48, 48, 48, 48, 48, 49, 50, 50, 50, 50, 50, 51, 51, 52, 52, 52, 53, 54, 54, 54, 55] > > ssys := ssystem("date"): > t_finish2 := cat("finish general det ", ssys[2]): > > t_start; "start Thu Apr 26 15:31:08 CEST 2007 " > t_finish_det1; "finish det 1 Thu Apr 26 17:24:23 CEST 2007 " > t_finish2; "finish general det Thu Apr 26 22:28:30 CEST 2007 " > > > > # Minimal generating set > vcx := v: > Jz_elim := J_elim: > nops(Jz_elim); 233 > indets(Jz_elim); {c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8]} > > > natdeg:=proc(p) > degree(subs(map(i->c[i]=t^i,[$1..8]),LeadingMonomial(p,vcx))); > end proc: > > natdeg(Jz_elim[1]); 28 > > Jz_elim_lm := LeadingMonomial(Jz_elim, vcx): > nops(Jz_elim_lm); 233 > > > > # prevent Maple from crashing because of undefined variables: > if not assigned(sL) then > ERROR(`define sL first!`); > fi; > > if not assigned(natdeg) then > ERROR(`define natdeg first!`); > fi; > > > AssertInvBasis(Jz_elim,vcx): > save_P_T_List := P_T_List: > save_PolTab_Var := PolTab_Var: > > Jz_elim_multvar := map(i->i[5], P_T_List): > > FJz_elim:=FactorModuleBasis(vcx): > > # Startzeit: > > ssystem("date"); [0, "Sat May 10 22:42:01 CEST 2008 "] > > > ithprime(1599); 13487 > InvolutiveOptions("char", %); 0 > var := map(lhs, vcx); > nvar := nops(var); var := [c[8], c[7], c[6], c[5], c[4], c[3], c[2], c[1]] nvar := 8 > n_Jz_elim := nops(Jz_elim); n_Jz_elim := 233 > Jz_elim_degs := map(natdeg, Jz_elim); Jz_elim_degs := [28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 46, 46, 46, 46, 46, 46, 47, 47, 48, 48, 48, 48, 48, 48, 49, 50, 50, 50, 50, 50, 51, 51, 52, 52, 52, 53, 54, 54, 54, 55] > > degs := [Jz_elim_degs[1]]: > first_deg := [1]: > for i from 2 to nops(Jz_elim_degs) do > if Jz_elim_degs[i] > degs[-1] then > degs := [op(degs), Jz_elim_degs[i]]; > first_deg := [op(first_deg), i]; > elif Jz_elim_degs[i] < degs[-1] then > ERROR(`not sorted!`); > fi; > od: > first_deg := [op(first_deg), nops(Jz_elim_degs)+1]: > > first_deg; [1, 2, 13, 22, 58, 81, 105, 119, 140, 146, 158, 164, 172, 176, 186, 191, 201, 204, 210, 212, 218, 219, 224, 226, 229, 230, 233, 234] > nops(degs); 27 > > JJ := [[1]]: > for i from 2 to nops(degs) do > print("degree", degs[i]); > > # in the present context, the following 3 lines are equivalent to > # AssertInvBasis(Jz_elim, vcx, "extract"=1..(first_deg[i]-1)): > # but are much faster > P_T_List := save_P_T_List[1..(first_deg[i]-1)]: > PolTab_Var := save_PolTab_Var[1..(first_deg[i]-1)]: > pnumber_t := first_deg[i]-1: > > ind := [seq(select(j->Jz_elim_degs[j] = degs[i]-k, > [$1..(first_deg[i]-1)]), k=1..8)]; > LL := []: > for k from 1 to 8 do > for l from 1 to nops(ind[k]) do > if Jz_elim_multvar[ind[k][l]][8-k+1] = 0 then > LL := [op(LL), var[8-k+1]*Jz_elim[ind[k][l]]]; > fi: > od: > od: > if LL = [] then > JJ := [op(JJ), [$first_deg[i]..(first_deg[i+1]-1)]]: > else > RR := []; > RL := []; > RC := []; > for j from 1 to nops(LL) do > print("j", j); > gaussred := true; > p := LL[j]; > while p <> 0 and gaussred do > gaussred := false; > p := PolInvReduce(p); > > lm := LeadingMonomial(p, vcx, "C"); > lc := coeffs(lm, var, 'mon'); > lm := mon; > > k := 1; > while k <= nops(RL) and lm <> RL[k] do > k := k+1; > od; > if k <= nops(RL) then > print("Gauss reduction"); > p := normal(p - lc/RC[k]*RR[k]); > gaussred := true; > fi; > od; > if p <> 0 then > RR := [op(RR), p]; > RL := [op(RL), lm]; > RC := [op(RC), lc]; > fi; > od; > JJ := [op(JJ), select(j->not member(Jz_elim_lm[j], RL), > [$first_deg[i]..(first_deg[i+1]-1)])]: > fi: > print(JJ[-1]); > print(nops(JJ[-1])); > od: "degree", 30 [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 11 "degree", 31 [13, 14, 15, 16, 17, 18, 19, 20, 21] 9 "degree", 32 [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57] 36 "degree", 33 "j", 1 "j", 2 "j", 3 "j", 4 [58, 59, 60, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80] 20 "degree", 34 "j", 1 "j", 2 "j", 3 "Gauss reduction" "j", 4 "j", 5 "Gauss reduction" "Gauss reduction" "j", 6 "j", 7 "Gauss reduction" "Gauss reduction" "j", 8 "Gauss reduction" "j", 9 "Gauss reduction" "Gauss reduction" [81, 82, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104] 22 "degree", 35 "j", 1 "j", 2 "j", 3 "j", 4 "j", 5 "j", 6 "j", 7 "j", 8 "j", 9 "j", 10 "j", 11 "j", 12 "j", 13 "Gauss reduction" "j", 14 "Gauss reduction" "Gauss reduction" "j", 15 "j", 16 "j", 17 "Gauss reduction" "j", 18 "j", 19 "j", 20 "j", 21 "Gauss reduction" "j", 22 "j", 23 "j", 24 "Gauss reduction" "Gauss reduction" "j", 25 "Gauss reduction" "j", 26 "Gauss reduction" "Gauss reduction" [105, 109, 111, 112, 113, 114, 115, 116, 117, 118] 10 "degree", 36 "j", 1 "j", 2 "j", 3 "j", 4 "j", 5 "j", 6 "Gauss reduction" "j", 7 "Gauss reduction" "j", 8 "j", 9 "j", 10 "j", 11 "j", 12 "j", 13 "j", 14 "j", 15 "j", 16 "j", 17 "j", 18 "Gauss reduction" "j", 19 "j", 20 "j", 21 "j", 22 "j", 23 "Gauss reduction" "j", 24 "Gauss reduction" "Gauss reduction" "j", 25 "j", 26 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 27 "Gauss reduction" "j", 28 "Gauss reduction" "Gauss reduction" "j", 29 "j", 30 "j", 31 "j", 32 "j", 33 "Gauss reduction" "j", 34 "j", 35 "Gauss reduction" "Gauss reduction" "j", 36 "j", 37 "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 38 "Gauss reduction" "Gauss reduction" "j", 39 "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 40 "Gauss reduction" "Gauss reduction" "j", 41 "Gauss reduction" "j", 42 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 43 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 44 "j", 45 "j", 46 "j", 47 [123, 125, 126, 133, 134, 136, 138, 139] 8 "degree", 37 "j", 1 "j", 2 "j", 3 "j", 4 "j", 5 "j", 6 "j", 7 "j", 8 "j", 9 "Gauss reduction" "j", 10 "j", 11 "j", 12 "j", 13 "j", 14 "j", 15 "j", 16 "j", 17 "j", 18 "j", 19 "j", 20 "j", 21 "j", 22 "j", 23 "j", 24 "j", 25 "j", 26 "j", 27 "j", 28 "j", 29 "j", 30 "j", 31 "j", 32 "j", 33 "j", 34 "j", 35 "j", 36 "j", 37 "j", 38 "j", 39 "j", 40 "j", 41 "j", 42 "j", 43 "j", 44 "j", 45 "j", 46 "j", 47 "j", 48 "j", 49 "j", 50 "Gauss reduction" "j", 51 "j", 52 "j", 53 "j", 54 "j", 55 "j", 56 "j", 57 "j", 58 "j", 59 "Gauss reduction" "j", 60 "j", 61 "j", 62 "j", 63 "j", 64 "j", 65 "j", 66 "j", 67 "j", 68 "j", 69 "Gauss reduction" "j", 70 "j", 71 [143, 144, 145] 3 "degree", 38 "j", 1 "j", 2 "j", 3 "Gauss reduction" "j", 4 "Gauss reduction" "j", 5 "j", 6 "j", 7 "j", 8 "Gauss reduction" "j", 9 "j", 10 "Gauss reduction" "Gauss reduction" "j", 11 "j", 12 "j", 13 "Gauss reduction" "j", 14 "Gauss reduction" "Gauss reduction" "j", 15 "j", 16 "j", 17 "j", 18 "j", 19 "j", 20 "j", 21 "j", 22 "j", 23 "j", 24 "j", 25 "j", 26 "Gauss reduction" "j", 27 "j", 28 "Gauss reduction" "Gauss reduction" "j", 29 "Gauss reduction" "j", 30 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 31 "j", 32 "j", 33 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 34 "j", 35 "j", 36 "j", 37 "j", 38 "j", 39 "j", 40 "Gauss reduction" "Gauss reduction" "j", 41 "j", 42 "j", 43 "Gauss reduction" "Gauss reduction" "j", 44 "j", 45 "j", 46 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 47 "Gauss reduction" "Gauss reduction" "j", 48 "Gauss reduction" "Gauss reduction" "j", 49 "Gauss reduction" "Gauss reduction" "j", 50 "Gauss reduction" "Gauss reduction" "j", 51 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 52 "Gauss reduction" "Gauss reduction" "j", 53 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 54 "Gauss reduction" "Gauss reduction" "j", 55 "Gauss reduction" "Gauss reduction" "j", 56 "Gauss reduction" "Gauss reduction" "j", 57 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 58 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 59 "Gauss reduction" "Gauss reduction" "j", 60 "Gauss reduction" "Gauss reduction" "j", 61 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 62 "j", 63 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 64 "Gauss reduction" "Gauss reduction" "j", 65 "j", 66 "j", 67 "Gauss reduction" "Gauss reduction" "j", 68 "j", 69 "j", 70 "j", 71 "j", 72 "j", 73 "j", 74 "j", 75 "j", 76 "j", 77 "j", 78 "j", 79 "j", 80 "j", 81 "j", 82 "j", 83 "j", 84 "j", 85 "j", 86 "Gauss reduction" "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 87 "j", 88 "Gauss reduction" "Gauss reduction" "Gauss reduction" [] 0 "degree", 39 "j", 1 "j", 2 "j", 3 "j", 4 "j", 5 "j", 6 "j", 7 "j", 8 "j", 9 "j", 10 "j", 11 "j", 12 "j", 13 "j", 14 "j", 15 "j", 16 "j", 17 "j", 18 "j", 19 "j", 20 "j", 21 "j", 22 "j", 23 "j", 24 "j", 25 "j", 26 "Gauss reduction" "Gauss reduction" "j", 27 "j", 28 "j", 29 "j", 30 "j", 31 "j", 32 "j", 33 "Gauss reduction" "j", 34 "j", 35 "j", 36 "j", 37 "j", 38 "j", 39 "j", 40 "j", 41 "Gauss reduction" "Gauss reduction" "j", 42 "Gauss reduction" "Gauss reduction" "j", 43 "j", 44 "j", 45 "j", 46 "j", 47 "Gauss reduction" "Gauss reduction" "j", 48 "j", 49 "j", 50 "j", 51 "j", 52 "j", 53 "j", 54 "j", 55 "j", 56 "j", 57 "j", 58 "j", 59 "j", 60 "j", 61 "j", 62 "j", 63 "j", 64 "j", 65 "j", 66 "j", 67 "j", 68 "j", 69 "j", 70 "j", 71 "j", 72 "j", 73 "j", 74 "j", 75 "j", 76 "j", 77 "Gauss reduction" "j", 78 "j", 79 "j", 80 "j", 81 "j", 82 "j", 83 "Gauss reduction" "j", 84 "j", 85 "j", 86 "j", 87 "j", 88 "j", 89 "j", 90 "j", 91 "j", 92 [159] 1 "degree", 40 "j", 1 "j", 2 "j", 3 "j", 4 "j", 5 "j", 6 "j", 7 "Gauss reduction" "j", 8 "Gauss reduction" "Gauss reduction" "j", 9 "j", 10 "j", 11 "j", 12 "j", 13 "j", 14 "j", 15 "Gauss reduction" "Gauss reduction" "j", 16 "Gauss reduction" "Gauss reduction" "j", 17 "j", 18 "Gauss reduction" "Gauss reduction" "j", 19 "Gauss reduction" "Gauss reduction" "j", 20 "j", 21 "j", 22 "j", 23 "j", 24 "j", 25 "Gauss reduction" "Gauss reduction" "j", 26 "j", 27 "Gauss reduction" "Gauss reduction" "j", 28 "j", 29 "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 30 "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 31 "Gauss reduction" "Gauss reduction" "j", 32 "Gauss reduction" "Gauss reduction" "j", 33 "Gauss reduction" "Gauss reduction" "j", 34 "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 35 "Gauss reduction" "Gauss reduction" "j", 36 "Gauss reduction" "Gauss reduction" "j", 37 "j", 38 "Gauss reduction" "Gauss reduction" "j", 39 "j", 40 "Gauss reduction" "Gauss reduction" "j", 41 "j", 42 "j", 43 "j", 44 "j", 45 "j", 46 "j", 47 "j", 48 "j", 49 "j", 50 "j", 51 "j", 52 "j", 53 "j", 54 "j", 55 "j", 56 "Gauss reduction" "Gauss reduction" "j", 57 "Gauss reduction" "Gauss reduction" "j", 58 "j", 59 "Gauss reduction" "Gauss reduction" "j", 60 "j", 61 "j", 62 "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 63 "Gauss reduction" "Gauss reduction" "j", 64 "j", 65 "j", 66 "j", 67 "j", 68 "j", 69 "j", 70 "j", 71 "j", 72 "j", 73 "j", 74 "j", 75 "j", 76 "j", 77 "j", 78 "j", 79 "j", 80 "j", 81 "Gauss reduction" "Gauss reduction" "j", 82 "j", 83 "j", 84 "j", 85 "j", 86 "j", 87 "Gauss reduction" "Gauss reduction" "j", 88 "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 89 "j", 90 "Gauss reduction" "Gauss reduction" "Gauss reduction" "j", 91 "j", 92 "j", 93 "j", 94 "j", 95 "j", 96 "Gauss reduction" "Gauss reduction" "j", 97 "j", 98 "j", 99 "Gauss reduction" "Gauss reduction" "Gauss reduction" [171] 1 "degree", 41 "j", 1 "j", 2 "j", 3 "j", 4 "j", 5 "j", 6 "j", 7 "j", 8 "j", 9 "j", 10 "j", 11 Warning, computation interrupted > > # going up to degree 40 is sufficient > > > > ssystem("date"); [0, "Thu May 15 06:04:11 CEST 2008 "] > > # verify in characteristic 0 > > InvolutiveOptions("char", 0); 13487 > Ji := InvolutiveBasisGINV(map(i->Jz_elim[i], map(op, JJ)), vcx, > "quiet"=true): > nops(Ji); nops(Jz_elim); 233 233 > > AssertInvBasis(Ji, vcx): > Fi := FactorModuleBasis(vcx): > simplify(Fi - FJz_elim); 0 > > > indizes_min_gen := map(op, JJ); indizes_min_gen := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 109, 111, 112, 113, 114, 115, 116, 117, 118, 123, 125, 126, 133, 134, 136, 138, 139, 143, 144, 145, 159, 171] > > # End-Zeit: > ssystem("date"); [0, "Thu May 15 07:39:18 CEST 2008 "] > > dd := map(i->natdeg(Jz_elim[i]), indizes_min_gen); dd := [28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 39, 40] > map(numboccur, [$28..40], dd); [1, 0, 11, 9, 36, 20, 22, 10, 8, 3, 0, 1, 1] > > nops(indizes_min_gen); 122 > > > > > > > > > #