x:= Mvp("x");; y:= Mvp("y");; z:= Mvp("z");; w:= Mvp("w"); H:= Hecke(W,[[x^2,y^2,z^2,w^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:= x^0 * List(rrr, rr-> List(rr, TraceMat)); xxt:= TransposedMat(xxx); # evaluate characters on the dual basis aa:= x^2 + y^2 + z^2 + w^2; bb:= -((z*w)^2 + (y*w)^2 + (x*w)^2 + (y*z)^2 + (x*z)^2 + (x*y)^2); cc:= (y*z*w)^2 + (x*z*w)^2 + (x*y*w)^2 + (x*y*z)^2; dd:= -(x*y*z*w)^2; map:= ["a", aa, "b", bb, "c", cc, "d", dd]; 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");