> The only reason we hit a fixed point is that And removes (exact) duplicate arguments automatically

Do we want `And` to perform logic here?  If we're doing a lot of this each round it may make sense to drop out of SymPy within a lot of Assumptions.  I'm imagining a polys type infrastructure here.