Semigroup with left neutral element where every element is left-invertible equals group

Statement
Suppose $$(S,*)$$ is a semigroup containing an element $$e$$ satisfying the following two conditions:


 * 1) $$e$$ is a left neutral element for $$S$$, i.e., $$e * a = a \ \forall \ a \in S$$
 * 2) For all $$a \in S$$, there exists $$b \in S$$ such that $$b * a = e$$.

Then, $$S$$ is a group under $$*$$ with $$e$$ as the identity element and the two-sided inverse of $$a$$ being the unique $$b$$ that satisfies condition (2).

Similar facts

 * Equivalence of definitions of gyrogroup
 * Monoid where every element is left-invertible equals group
 * Equality of left and right neutral element
 * Equality of left and right inverses in monoid
 * Left neutral element is unique idempotent with left inverse in semigroup

Opposite facts

 * Semigroup with left neutral element where every element is right-invertible not equals group: In fact, any set with a multiplication $$a * b := b$$ satisfies the condition but is not a group.

Facts used

 * 1) uses::Monoid where every element is left-invertible equals group

Proof
Thanks to Fact (1), it suffices to prove that $$S$$ is a monoid with two-sided identity element (neutral element) $$e$$ -- Fact (1) does the rest of our work.

Given: $$(S,*)$$ is a semigroup containing an element $$e$$ satisfying the following two conditions:


 * 1) $$e$$ is a left neutral element for $$S$$, i.e., $$e * a = a \ \forall \ a \in S$$
 * 2) For all $$a \in S$$, there exists $$b \in S$$ such that $$b * a = e$$.

To prove: For any element $$a \in S$$, we have $$a * e = a$$.

Proof: We fix the element $$a$$ for the proof.

Note that a little more work with the same steps would also show that $$a = c$$ and so $$b$$ is a two-sided inverse, completing the proof directly instead of invoking Fact (1). There's no substantive difference between completing the proof directly and invoking Fact (1), which in any case uses the same construction albeit in a simpler setting.