Fiction, in the tradition of Stanislaw Lem's reviews of imaginary books .

Samples from the moduli space of all possible mathematics.

§ Hamiltonian FRP

We should be able to write functional reactive programming in a style that's reminiscent of classical mechanics. We currently write it in terms of newton's laws. We should be writing it in terms of hamiltonians --- conserved quantities. What does this mean? I don't really know. Here is a post by Baez about getting to the bottom of noether's theorem which seems relevant.

§ Consensus complexity theory

Consensus is a physical resource. We are currently running out of it, fast.

§ Cohomology of haskell types

We know that some types such as 3x23x^2 can be integrated to fill a hole, giving us x3x^3. On the other hand, x2x^2 cannot be integrated: it gives x3/3x^3/3. Is there some kind of cohomology that governs this? Note that right now we don't have d2=0d^2 = 0 --- This is something we will need to find.

This sort of thinking might help if we are trying to identify how to lay data down in memory; having zero homology would imply that there's no gaps, so we can lay it out contiguously in-memory.

§ Finite differences of haskell types

fdiff(listx)=fdiff(1/[1−x])=1/[1−(x+h)]−1/[1−x]=([1−x]−[1−(x+h)])/[1−x][1−(x+h)]=([1−x]−[1−x−h])/[1−x][1−(x+h)]=(1−x−1+x+h)/[1−x][1−(x+h)]=h/[1−x][1−(x+h)]=(h,listx,list(eitherxh)) \begin{aligned} &fdiff(list x) \\ &= fdiff(1/[1-x]) \\ &= 1/[1-(x+h)] - 1/[1-x] \\ &= ([1-x] - [1-(x+h)])/[1-x][1 - (x+h)] \\ &= ([1-x] - [1-x-h])/[1-x][1 - (x+h)] \\ &= (1 - x - 1 + x + h)/[1-x][1 - (x + h)] \\ &= h/[1-x][1 - (x + h)] \\ &= (h, list x, list (either x h)) \end{aligned}
bdiff(listx)=fdiff(1/[1−x])=1/[1−x]−1/[1−(x−h)]=([1−x]−[1−(x−h)])/[1−x][1−(x−h)]=([1−x]−[1−x+h])/[1−x][1−(x−h)]=(1−x−1+x−h))/[1−x][1−(x−h)]=−h/[1−x][1−(x−h)] \begin{aligned} &bdiff(list x) \\ &= fdiff(1/[1-x]) \\ &= 1/[1-x] - 1/[1-(x - h)] \\ &= ([1-x] - [1-(x-h)])/[1-x][1-(x-h)] \\ &= ([1-x] - [1-x+h])/[1-x][1-(x-h)] \\ &= (1-x - 1 +x-h))/[1-x][1-(x-h)] \\ &= -h/[1-x][1-(x-h)] \\ \end{aligned}

§ Derivatives of function spaces

we can write list(x)\texttt{list}(x) as f:nat→x≃xnatf: \texttt{nat} \rightarrow x \simeq x^{\texttt{nat}}. If we attempt to compute the derivative, we get:

ddx(xnat)=natxnat−1 \begin{aligned} &\frac{d}{dx} (x^{\texttt{nat}}) \\ &= \texttt{nat} x^{\texttt{nat} - 1} \end{aligned}

which is saying "tell me the index of the missing element" --- that is nat, and also keep a list with a hole: that is, xnat−1x^{\texttt{nat} - 1}.

§ Segment Trees from Mobius Inversion

This is quite easy. We can use Traversable to fill any data structure; we can use the APL technique of fold /= 0 to check for beginning-and-ending of matching parity.

§ On the geometry of distributed algorithms

§ Abstract

We begin with what a model of computation for distributed systems: processes on a graph which send values from semi-lattices; state variables updated with a monotonic join; conditionals are upward filters. This implicitly ensures parallelism, idempotence, and strong eventual consistency. We then recast this setting into a more computational regime, where states are vectors in Zn\mathbb Z^n, join is pointwise max, and computations are piecewise-linear functions. We then proceed to move to tropical geometry, to associate a tropical varietry to the above distributed algorithm. This allows us re-interpret all previously known ideas of distributed algorithms in a purely geometric setting. From this pivot, we compute cohomology groups, from which we derive clasically known impossibilities --- the PAC theorem, byzantine one-in-third-impossibility, as statements about the non-triviality of the first and higher cohomology groups of the geometry. Finally, present many previously known communication complexity invariants as being topological invariants of the scheme.

§ Compilers as commutative algebra

§ Complexity theory as monad composition

§ Coinduction as coarse space theory