Suppose you have $G$ a non-empty, finite set, with a $* $ law, and having the identity element $1_G$. Suppose also that all of $G$ elements are regular, that is: for a $a \in G$, $\forall b,c \in G $: $$a *b = a * c \implies b=c $$ and $$ b * a = c * a \implies b = c $$ Show that all elements of $G$ have an inverse on the left and on the right.
I've struggling to do anything with this exercise. I think I have to show that if $a *b = a*c$ implies that $b$ is the inverse element, but not sure how to proceed. I guess that $a * b \in G$, and that the operation of $*$ of $a$ by $b$ gives a unique result, that is there is no couple $c,d \in G$ such that $c \not = a$ and $c*d = a*b$.
For each $a\in G$ the map $b\mapsto a*b$ is injective.
Then - since $G$ is finite - it must also be surjective, so $a*b=1_G$ for some $b$, proving that $a$ has a right inverse..
Likewise for the other side.