Skip to content

Instantly share code, notes, and snippets.

@protometa
Last active November 17, 2015 23:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save protometa/431f2b6e7e89a2073b5d to your computer and use it in GitHub Desktop.
Save protometa/431f2b6e7e89a2073b5d to your computer and use it in GitHub Desktop.
Abelian Exponentiation - A Generalization of Fields with More than Two Binary Operations

Abelian Exponentiation

3 ** 4 = 9
4 ** 3 = 9

where
x ** 2 = x
x // x = 2

Binary operations can be generalized to express the relationship between 4 elements. a * b = c can be generalized as the identity is to a as b is to c, or the identity is to b as a is to c if the operation is commutative. In these terms the identity element for the operation can be understood as arbitrary. This is very useful when no clear identity element exists.

For example, we can add and multiply points on the real number line, but only because it comes with points that represent the identity elements of addition and multiplication, the origin and the unit. It doesn't make sense to add points on an unmarked line unless we choose one point to be an origin. The points then take on a magnitude relative to the origin which can be applied to other points to find additive results. Likewise it still doesn't make sense then to multiply these points, unless we choose another point to be the unit. The magnitude of the points then has a ratio with the unit magnitude which can be applied to other points to find multiplicative results. Following this abstraction, in order to exponentiate points on this line we should choose one to represent the base, which will serve as an identity element of exponentiation. The points then take on an exponential relationship relative to the base which can be applied to other points to find exponential results.

With three separate points labeled as the origin, the unit, and the base of the set of points on the line, we can generalize addition and multiplication with a new kind of exponentiation to create an algrebra where all three operations form abelian groups, and where exponentiation distributes left or right over multiplication. With other labeled points we could even extend this to tetration and beyond.

These generalized operations with arbitrary identity elements can be expressed as follows:

x + y - o = z
x * y / u = z
x ^ log y base b = z

Where o, u, and b are the arbitrary but distinct identity elements, the origin, unit, and base respectively.

Notice how the exponentiation is then commutable:

x ^ log y base b = y ^ log x base b

This known logrithmic identity could be thought of as the hidden commutative property of exponentiation. To represent this operation we will use ** and // for its inverse. The inverse opperation x // ycan be defined as b ^ log x base y.


So let's choose a base of 2 and see what that looks like. When we combine additive terms we add the coefficients:

x + x + x = x * 3

Note that when the coefficients are absent we can think of it as adding the multiplicative identity element which we are leaving as 1.

x * 1 + x * 1 + x * 1 = x * 3

The same applies to our basic, abelian exponentiation:

x * x * x = x ** 8

Notice that the exponential factor is 8 because our chosen base, the exponential identity element, is 2. We multiply the identities together in the same way as when we add coefficients of 1:

x ** 2 * x ** 2 * x ** 2 = x ** 8

In the same way that addition and multiplication are commutative, associative, distributive, and invertible, so is this kind of exponentiation. All the following hold:

  x ** y = y ** x
  (x ** y) ** z = x ** (y ** z)
  x ** (y * z) = (x ** y) * (x ** z)
  x // y = x ** (b // y)

These algebraic rules can then be defined for all operations, such as a general distributive property:

x <n+1> (y <n> z) = (x <n+1> y) <n> (x <n+1> z)

Or invertability:

x <-n> y = x <n> (i(n) <-n> y)

Where n is the non-zero hierarchical order of the operation (<1> being addition, <2> being multiplication, <3> being basic exponentiation and so forth) their negation is their respective inverse operations and i(n) is the chosen identity element of the operation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment