|This article does not cite any references or sources. (December 2009)|
An element a in a magma (M,*) has the left cancellation property (or is left-cancellative) if for all b and c in M, a * b = a * c always implies b = c.
An element a in a magma (M,*) has the right cancellation property (or is right-cancellative) if for all b and c in M, b * a = c * a always implies b = c.
An element a in a magma (M,*) has the two-sided cancellation property (or is cancellative) if it is both left- and right-cancellative.
A magma (M,*) has the left cancellation property (or is left-cancellative) if all a in the magma are left cancellative, and similar definitions apply for the right cancellative or two-sided cancellative properties.
A left-invertible element is left-cancellative, and analogously for right and two-sided.
To say that an element a in a magma (M,*) is left-cancellative, is to say that the function g: x ↦ a * x is injective, so a set monomorphism but as it is a set endomorphism it is a set section, i.e. there is a set epimorphism f such f(g(x)) = f(a*x) = x for all x, so f is a retraction. Moreover, we can be "constructive" with f taking the inverse in the range of g and sending the rest precisely to a.
Examples of cancellative monoids and semigroups 
In fact any free semigroup or monoid obeys the cancellative law, and in general any semigroup or monoid embedding into a group (as the above examples clearly do) will obey the cancellative law.
Non-cancellative algebraic structures 
Although, with the single exception of multiplication by zero and division of zero by another number, the cancellation law holds for addition, subtraction, multiplication and division of real and complex numbers, there are a number of algebraic structures where the cancellation law is not valid.
The cross product of two vectors does not obey the cancellation law. If a×b = a×c, then it does not follow that b=c even if a≠0.
Matrix multiplication also does not necessarily obey the cancellation law. If AB=AC and A≠O, then one must show that matrix A is invertible (i.e. has det(A)≠0) before one can conclude that B=C. If det(A)=0, then B might not equal C, because the matrix equation AX=B will not have a unique solution for a non-invertible matrix A.