Let Sn be a set with n elements. Can we find a binary operation * on S which satisfies (1) right cancellation: a*c = b*c implies a = b (for all a, b, c), and (2) non-associativity: a * (b * c) ≠ (a * b) * c for all a, b, c? Note that we are not just requiring that * is not associative, but that it is never associative.
Solution
Answer: yes.
Let the elements be a1, ... , an. Define ai*b = ai+1 for all b (taking an+1 to be a1). Then we certainly have right cancellation, because if ai*c = aj*c, then ai+1 = aj+1, so i = j. We also have non-associativity, because ai*(b*c) = ai+1, but (ai*b)*c = ai+1*c = ai+2.
© John Scholes
jscholes@kalva.demon.co.uk
7 Jan 2001