> I know I should be the one providing it but I find it hard to give a formal argument.

Right now, it seems to be correct.  Please, try to prove it, as this helps you cases when `f` is not an injection.

> but I think only one solution is sufficient

No.  Just try your example with `other=Interval(0, oo)` and `base_set=Interval(-oo, 0)`.  If you keep only `f_inv(x) = sqrt(x)` - the result is empty (or zero?  anyway, you get the idea).