noun

definition

enum Noun {
    Atom { value: F, tag: u8 },
    Cell { left: NounId, right: NounId },
}

atom: single element of the instantiated field F, tagged by type. cell: ordered pair of two nouns — a binary tree node.

polynomial representation

every noun is a multilinear polynomial over {0,1}^k where k = ceil(log₂(leaves)).

atom(v)     → constant polynomial v
cell(a, b)  → g(x₁, x₂, ...) = (1 - x₁)·a(x₂, ...) + x₁·b(x₂, ...)

cell construction is variable prepend: the first variable selects which subtree (0 = left = a, 1 = right = b), and the remaining variables address within that subtree. an atom is the base case — a constant polynomial with no variables.

axis as polynomial evaluation

axis(s, n) on a polynomial noun is a polynomial evaluation at a binary point in {0,1}^k. the binary encoding of the axis address selects the evaluation point. Lens opening proves the evaluation in O(1) — a ~75 byte proof regardless of noun depth. this replaces O(depth) tree traversal with O(1) polynomial evaluation.

Dimensions

inner

Local Graph