I have been dealing with this problem:
Let $S$ be a semigroup that meets the following condition: $$\forall x\ (x\in S\to\exists y\ (y\in S\wedge\forall z\ (z\in S\to zxy=z)))$$ Must $S$ be a group?
I have tried this as a counterexample:
Let $S=\{[a_1,\ldots,a_n]: n\ge 1, a_j\in\Bbb N^*, a_{j+1}-a_j\neq 1\text{ for } j\ge 2\}$. In words, the set of non-empty $n$-tuples of natural numbers with no two consecutive terms together (in increasing order), except the two first ones: they can be consecutive. The operation $*$ is concatenation and deleting possible illegal pairs. Note that $n\ge 1$, so I'm excluding the empty sequence to avoid having an identity.
For example, for $x=[7, 11, 13]$ we have $y=[14,12,8]$.
This definition implies that there are infinitely many identities at right for each element. For example, if $a$ does not end with $1$, $$a*[1,2]=a$$ $$a*[2,3]=a$$ So this can not be a group.
But I find this solution too complicated. Any simpler one?
EDIT: In a deleted answer there is an example that shows that my try is not even a semigroup, because it is not associative.
Take the semigroup $S = \{a,b\}$, where $aa=ab=a$ and $ba=bb=b$. Then, for each $x \in S$, take $y = x$. Then, for all $z \in S$, $zxy=zxx=z$. However, $S$ is not a group.