## Sunday, August 2, 2020

### Digital circuits in two-dimensional time

Time appears to be one-dimensional. But does it have to be that way?

For example, here is a simulation of a ball bouncing in two dimensions of time, `tx` and `ty`: The ball's velocity is an orientation (tangent plane or normal vector) in `(tx, ty, h)` space, and its acceleration (from gravity) is the local curvature of the surface.

But suppose you built a digital circuit in a universe with two time dimensions. Specifically, a synchronous digital circuit, whose discrete state `S` is a function of two discrete time variables, `ix` and `iy`: State changes are driven by a pair of two-dimensional clocks: As the system crosses over a clock edge, it transitions according to a pair of rules:

`Six,iy` = fx(`Six-1,iy`)
`Six,iy` = fy(`Six,iy-1`)

But wait! This creates a potential inconsistency: Such state transitions only avoid a race condition at the intersection of rising edges if `fx · fy = fy · fx`.

Well, that's possible. For example, the following state transitions satisfy the above consistency criterion:

S fx(S) fy(S)
A B C
B A D
C D A
D C B

The problem is, if `fx · fy = fy · fx`, then any sequence

`fx · ... · fy · ... · fy · ... · fx`

is just

`fx · ... · fx (n times) · fy · ... · fy (m times)`.

That is, there is no interaction between the two time dimensions. The system is, for all intents and purposes, two independent systems, each with one-dimensional time. And, if you lived in such a universe, you would never know, because each version of "you" would have no way of knowing about the other.

And so it would be just like the world we know.