Skip to main content
1 of 3

Here is a cheap answer: if you can embed the semi-group in a group, then Ruzsa's theorems apply.

If $S$ is a commutative semi-group with cancellation, then you can embed it in its Grothendieck group $G(S)$. For non-commutative semi-groups, cancellation is sufficient for "right reversible" semi-groups, but not in general: http://math.stackexchange.com/questions/79453/when-a-semigroup-can-be-embedded-into-a-group

Perhaps it is possible prove a stand in for Ruzsa' triangle theorem (which seems to be the missing ingredient) by emulating an embedding locally for $A$ (e.g. perhaps weaker conditions suffice to find Freiman homomorphisms), although Malcev found a necessary and sufficient condition for embedding a semi-group into a group that involves a small number of elements (8?), so it may be that the 99% version you found is best possible (since perhaps a small number of elements can cause trouble).