I think the solution would be to write a modified version of
contextLimitedPolynomial.pl that allows negative powers, and that handles
k/x^p (and knows that this is the same as
k x^(-p) for the purposes of checking that each power is only used once). The
contextLimitedPolynomial.pl file would be a good starting point, and I don't think it would be too hard to add the required functionality. But then I haven't looked at it in a while, so perhaps there would be complications that I'm not remembering. I'll see if I can give it a shot, but I'm not sure when I will have time. you see how long it has taken for me to reply!