I'm just anticipating people saying "why doesn't it just assume that the answer is real?" Actually...that should work. I'll look more carefully at why wrong answers are not being filtered out. e.g. solve(abs(x)-I) should return [].