I remember getting a trivial solution, while testing. 
Are you trying to imply I can set the free_symbols, whose value is equal to zero as zero? 
Isn't that done by `chieq = chieq.subs(soldict)`? 
Maybe after doing that, I can examine `chieq`, again so that to see if there are free_symbols in the higher powers of chieq, that can be set to zero, but I think if that is possible, then chieq would be a polynomial of lower degree, and would have satisfied the condition previously.