All pure functions are idempotent but not all idempotent functions are pure. It has nothing to do with the domain/range of the function.
There are multiple definitions of idempotence, used even within computer science, and neither of you seem to be aware of the definition used by the other. The common mathematical definition of an idempotent function is that f(f(x)) = f(x) for all x. But in computer science there is another common definition which involves side effects not being repeated (that is, `f(); f();` is the same as `f();`).
where have you ever seen that definition ?!
https://en.wikipedia.org/wiki/Idempotence#Computer_science_m...