> Well, if we set all letters to equal 1, then what is stopping this from working out?

> Haven't they just shown that the product of any combination of 1's is equal to the product of any other combination of ones?

tl;dr they weren't trying to find a solution, they were trying to characterise the behaviour of all possible solutions; but it turns out that there are no "non-trivial" solutions (i.e. setting all letters to equal 1 is the only way to solve it).

Longer version:

Technically, yes. However, that's not really the goal of this kind of algebra.

In school, we only tend to do algebra where all of the constants and variables are numbers; e.g. 2 * x = 4. Our goal was usually to find a particular value for x which is consistent with the equations, e.g. "solve for x" to get x = 2. Your solution of "set all letters to equal 1" is a perfectly valid way of achieving this kind of goal.

However, for the kind of algebra this article is about, we don't restrict ourselves to working with numbers. Instead, we explicitly avoid talking about "concrete" representations at all. We only focus on the equations we've been given. Some sets of equations are so common that they're given names, like "group (laws)", "semigroup (laws)", "field (laws)", etc.

The quote in the article tells us what the equations are:

> Regard English as a left-cancellative and right-cancellative multiplicative semigroup with identity, i.e. obeying the relations XY=ZY or YZ=YX implies X=Z, and having an element “1” such that 1X=X1=X.

Lots of things satisfy these equations. Some HN-relevant examples:

- Positive integers, where "1" is the number one and multiplication (written as juxtaposition "xy") is integer multiplication. Notice that we can't allow zero, since 1 * 0 = 2 * 0 does not imply that 1 = 2.

- Integers, where "1" is the number zero and multiplication is integer addition.

- Booleans, where "1" is False and multiplication is OR.

- Booleans, where "1" is True and multiplication is AND.

- Sets, where "1" is the empty set and multiplication is set union.

- Lists, where "1" is the empty list and multiplication is concatenation.

- Functions, where "1" is the identity function (i.e. "identity = function(arg) { return arg; }") and multiplication is function composition (i.e. "compose(x, y) = function(arg) { return x(y(arg)); }")

- Commands, where "1" is the no-op command (i.e. it performs no actions) and multiplication is sequencing (i.e. "xy = x; y")

By focusing on the equations and ignoring any particular representation, our results will apply to all representations; making this "universal algebra" a very powerful method.

What these mathematicians have done is impose a whole load of extra equations on top of the semigroup laws, of the form "AISLE = ISLE", etc. They've then shown that this large set of equations is equivalent to the single equation "x = 1".

In other words, they've shown that your solution (AKA the "trivial" solution) is the only solution. In other words, by imposing these extra rules, we've gone from a relatively interesting system which can describe functions, commands, lists, etc. to a relatively boring one, where representations might include:

- The set {one}, where multiplication is integer multiplication.

- The set {zero}, where multiplication is integer addition.

- The set {False}, where multiplication is OR.

- The set {True}, where multiplication is AND.

- The set {{}}, where multiplication is set union.

- The set {[]}, where multiplication is concatenation.

- The set {identity}, where multiplication is function composition.

- The set {no-op}, where multiplication is sequencing.