Skip to main content

James Numbers

Written August 9, 2021. Minor edits December 13, 2023. Reposted April 1, 2026.

I invented a system of numbers.

How cool is that? Not a lot of people can say that. I’ve always been good at math but ultimately chose software engineering over higher level mathematics. Still, I had this one foray into mathematical obscurity. While this work seems to illuminate something fundamental about numbers, I have no clue whether it is genuinely useful or has any place in intellectual history.

James Numbers build from an obscure representation of logic. Let’s begin by reviewing that system, invented by G. Spencer Brown and Charles S. Pierce. The former has a cult following. In this alternative symbolic universe, there are no values, only empty space and distinctions. Distinctions are drawn as non-overlapping boundaries in space. By convention, in text form we use parentheses and similar paired delimiters. In spatial logic, there is a single distinction, with logical arithmetic and algebra defined thus:

::: captioned-image-container

:::

Axioms of Spatial Logic

What about commutativity and associativity? That’s where the space comes in. Space is inherently unordered. Traditional operations like “a and b” are ordered because of the linear representation and binary operator. Space is neither linear, nor binary. The spatial approach breaks from those constraints at a fundamental level. In this work, read ”()()()” as an unordered non-binary collection of three distinctions and ”((()))” as three nested distinctions.

You might object to the blurring between operations and values. That blurring is actually quite common in numerical representation. The number 23 is short for “2 * 10 + 3”, just as 2/3 is, well, two divided by three. It keeps going, including sqrt(2), 2+3i, and 3.0*10⁸. Operators are everywhere in numerical representation once you look for them. In our alternative symbolic universe, distinction operations against empty space create the values, including “not()” in the spatial logic.

These spatial forms have multiple interpretations back in traditional mathematics. In the case of logic, space can be true or false. When space is false, a distinction creates true and aggregation in that space is disjunction. When space is true, distinction creates false and aggregation is conjunction. I won’t go into further detail of the logic here, as that work was my starting place. I covered it only to set context for the numbers.

Now that you’ve digested distinctions and logic, let’s switch to James Numbers. While spatial logic has a single distinction, James Numbers has three, which we will represent with parentheses (), square brackets [], and angle brackets <>. It turns out a great deal of numbers and algebra can be derived from these simple substitution rules:

::: captioned-image-container

:::

Axioms of James Numbers

Here’s a sampling. When space is addition, the void is zero and () is one, so counting 1, 2, 3… looks like this in James Numbers:

(), ()(), ()()(), …

You might argue these aren’t numbers per se but tallies, and that “true” numbers must be more recognizable at scale, like “MMXXI” or “2021”. Welcome to the vagaries of representation. James Numbers makes different choices here. Multiplication looks like this:

a * b -> ([a][b])
2 * 3 -> ([()()][()()()])
= ([()][()()()])([()][()()()]) Arrangement
= ([()()()])([()()()]) Inversion
= ()()()()()() Inversion

Division looks like this:

a / b -> ([a]<[b]>)
4 / 2 -> ([()()()()]<[()()]>)
= ([()()]<[()()]>)([()()]<[()()]>) Arrangement
= ()() Reflection

Exponent looks like this:

a^b -> (([[a]][b]))
2 ^ 3 -> (([[()()]][()()()]))
= (([[()()]][()]) ([[()()]][()]) ([[()()]][()])) Arrangement
= (([[()()]])([[()()]])([[()()]])) Inversion
= ([()()][()()][()()]) Inversion
= ([()()])([()()])([()()])([()()]) Arrangement
= ()()()()()()()() Inversion

Square root look like this:

root(a,b) -> (([[a]]<[b]>))
sqrt(3) * sqrt(3) -> ([(([[()()()]]<[()()]>))][(([[()()()]]<[()()]>))])
= (([[()()()]]<[()()]>)([[()()()]]<[()()]>)) Inversion
= (([[()()()]]<[()()]>[()()])) Theorem: (A) (A) = (A [()()])
= (([[()()()]])) Reflection
= ()()() Inversion

James Numbers can represent and manipulate complex numbers as well.

i = sqrt(-1) -> (([[<()>]]<[()()]>))

Here’s a mapping between select traditional numbers and James Numbers. We work in addition space most of the time but some forms that are non-trivial in addition space are trivial elsewhere, such as ”[<()>]”. We have not identified any useful interpretation of above space or below space but include them here to show the continuum. There is likely some version of Conway’s infinity operations embedded in here somewhere.

::: captioned-image-container

:::

While the logical distinction is negation, you may have already deduced the numerical distinctions to be exponent, logarithm, and numerical inverse. When the exponent and logarithm are collapsed, (A)=[A], James Numbers reduces to spatial logic presented earlier. Nobody uses slide-rules anymore, but James Numbers could serve as a procedural instructions for slide-rule computation of real-numbers. The notation and rules do not specify the base of that exponent and logarithm, and thus introduces the novel concept of baseless versions of those operations.

Euler’s identity of “e^(i*pi)=-1” can be represented in James Numbers by defining a logical pi to satisfy that equation. Thus we’ve generalized pi to pair with our baseless exponent in more general version of his formula. In this way, James Numbers captures numerical concepts at a more fundamental level, distinct from their historical baggage.

*(Note: this proof needs correction)* e^(2i*pi)=1 -> ( (([[<()>]]<[()()]>)) ) = ()
(([[<()>]]<[()()]>)) pi = void
pi = <(([[<()>]]<[()()]>))>

Why do we care? Why bother writing numbers this way? We’ve already discussed two foundational aspects: the spatial representation rather than linear one and the convergence of objects and operations. Removing those constraints changes the nature of the number system dramatically. Just as spatial logic allows interpretation as true/conjunction or false/disjunction, so spatial numbers have multiple interpretations, including zero/addition and one/multiplication. James Numbers captures the mechanics of addition and multiplication but are independent of both of them. It captures the mechanics of Euler’s natural exponent and radians without defining the base e or real value of pi. I claim that to be a significant mathematical accomplishment, though I lack the academic credentials to be authoritative about that.

Here is a further observation from William Bricken that I find fascinating. The three James Number distinctions exhibit fundamental complementary behaviors that have reductionist implications. Those are shown here with <inverse> replaced by Bricken’s Variant where {A}=[<(A)>].

::: captioned-image-container

:::

Basic Behavior of the Numerical Distinctions

I developed James Numbers for my Master’s thesis at the University of Washington under the guidance of William Bricken. I left the work behind decades ago, while he continued on. He prompted this reflection by sending me his three books on Iconic Arithmetic, which go way deeper than my thesis or this essay. He continues to champion and extend this work, drawing heavily on mathematical history and philosophy. I am also indebted to Dick Shoup, who funded William and I after our work at UW’s Human Interface Technology Lab (HITL).

This work compels me back into it (as a hobby) but I’m unclear where to take it. William’s books tie it back to the history of mathematics and extend it forward in many ways. His writings and our work with Shoup postulate new computational models. Another possibility is to build a spatial version of MetaMath and compare the resulting axioms, which would force a formality and completeness we haven’t quite achieved. I could also see diving into philosophy, perhaps tying to Wolfram’s work in physics and numbers. Great things await with my next burst of mathematical creativity!


August 17, 2021 --- Updated axiom names from original to preferred ones
April 1, 2026 --- Minor reformatting when reposting