u:= Mvp("u"); v:= Mvp("v"); w:= Mvp("w"); x:= Mvp("x");; y:= Mvp("y");; z:= Mvp("z");; H:= Hecke(W,[[u^2,v^2,w^2],[x^2,y^2,z^2]]); R:= Representations(H);; rrr:= List(R, r-> List(list, x-> Product(r{x})));; for rr in rrr do rr[1]:= rr[2]^0; od; xxx:= List(rrr, rr-> List(rr, TraceMat)); xxt:= TransposedMat(xxx); # evaluate characters on the dual basis aa:= u^2 + v^2 + w^2; bb:= -(v^2*w^2 + u^2*w^2 + u^2*v^2); cc:= (u*v*w)^2; dd:= x^2 + y^2 + z^2; ee:= -(y^2*z^2 + x^2*z^2 + x^2*y^2); ff:= (x*y*z)^2; map:= ["a", aa, "b", bb, "c", cc, "d", dd, "e", ee, "f", ff]; cols:= dual * xxt; xxd:= List(cols, x-> List(x, y-> Value(y, map))); # class polynomials! # nul0:= NullspaceMat(xxd); nul0:= NullspaceMat(TransposedMat(nul2)); nul0:= x^0 * List(nul0, x-> List(x, y-> Value(y, map))); Print("testing nullspace ...\n"); test:= nul0 * xxd; Print(test = 0 * test, "\n");