The zig-zag tower, numbered #
ZigZagTower builds its members out of nested product types and names the
base's vertices by an arbitrary bijection. That is enough for the mathematics,
but an algorithm has to be handed numbers. This module rebuilds the tower with
every vertex and dart numbered, and with each naming chosen explicitly: pairs
are packed by finProdFinEquiv, so a level-k vertex is a mixed-radix numeral
with k + 1 digits in base deg ^ 4.
The recursion carries its own involutivity proof, which is what lets the next
level's types be Fin on the nose rather than up to a transport.
Main definitions #
Complexity.FinBase— a numbered zig-zag baseComplexity.FinBase.data— the rotation map at each level, with its proofComplexity.FinBase.graphAt— the level's graphComplexity.FinBase.rotVal— the same rotation map on raw numbers
Main results #
Complexity.FinBase.graphAt_succ— one level is a zig-zag of the previousComplexity.FinBase.spectral_graphAt— every level has bound2 / 5Complexity.FinBase.rotVal_eq— the numeric recursion computes itComplexity.nonempty_finBase— a numbered base exists
The recursion, in the open #
The rotation map of the square: walk two darts, and hand back the two return labels in the opposite order.
A zig-zag base with its vertices and darts numbered: deg ^ 4 vertices,
deg darts, and a spectral bound of a fifth.
- deg : ℕ
The degree.
The degree is positive.
The rotation map.
- rot_involutive : Function.Involutive self.rot
It is an involution.
- lam : ℝ
The spectral bound.
It is nonnegative.
And at most a fifth.
- spectral : (RegGraph.ofRot self.deg ⋯ (self.deg ^ 4) self.rot ⋯).SpectralBound self.lam
The bound holds.
Instances For
The numbered base is a zig-zag base.
Equations
Instances For
The chosen namings #
A level-k vertex together with a base vertex, as a level-(k+1) vertex.
Equations
Instances For
The namings, in numbers #
The tower #
The rotation map at each level, carrying its involutivity so that the next level's types are numbered on the nose.
Equations
Instances For
Every level has spectral bound 2 / 5.
One level of the recursion, in coordinates. A level-(k+1) vertex is a
level-k vertex together with a base vertex, and a level-(k+1) dart is a pair
of base darts; in those coordinates a step is: turn in the base, walk two darts
of the level below, turn in the base again.
The bottom of the recursion, in coordinates. Level zero is the base squared: walk two base darts, and return the labels in the opposite order.
The step in full, with the two walks of the level below spelled out.
The recursion, in numbers #
Choosing a level #
Numbering a base #
A zig-zag base, numbered.
Equations
Instances For
And one whose degree is above one, which is what folding a tower onto a requested size needs.