if for every $f$ we define a relation $R_f$ as follows: $$ x \ R_f \ y \iff \exists z \in x : y=f(z)$$
So, the binary relation $R_f$ sends a set to each image under $f$ of an element of it.
Define $R \text { is set-like } \iff \forall x \exists s: s=\{y \mid x \ R \ y\}$
We set $f_1=f$.
Now if $R_f$ is set like, then we can define another function call it $f_2$ as: $$f_2(x) = \{y \mid x \ R_f \ y\}$$ so $f_2(x)=f[x]=\{f(z) \mid z \in x\} $ using the usual terminology.
Now if $R_{f_2}$ is set-like, then we define $$f_3(x) = \{y \mid x \ R_{f_2} \ y\}= \{f_2(z) \mid z \in x\} = \{f[z] \mid z \in x\} $$
So, generally speaking we have: $$f_{n+1}(x) = \{y \mid x \ R_{f_n} \ y\}$$
We say a function $f$ is $n\text {-set-like}$, if and only if, $R_{f_n}$ is set-like.
We say a function $f$ is $\infty\text{-set-like}$ or simply set-like without grading, if and only if, for every natural $n$ we have $R_{f_n}$ is set like.
Obviously an automorphism would be set-like.
Is there a general manner to weaken an automorphism to a strict $n$-set like function? Strict here means not $m$-set like for every $m > n$.
More generally how do we construct such functions?