The expander's table, for a requested size #
AlgLevel finds the tower level a request calls for, and TowerTable writes the
rotation table of a level. Putting the two together writes the table of the
level a request calls for — and it is polynomially long, because the level the
search reports always names a size within a constant factor of the request.
Main definitions #
Complexity.FinBase.famTableFn— the table for a requested size
Main results #
Complexity.FinBase.famTableFn_mem_FP— writing it is polynomial timeComplexity.FinBase.famRotFn_mem_FP— and the family's rotation map is polynomial timeComplexity.FinBase.levelFn_fitLevel— the search reports the level the family uses
The level the search reports for a request.
Equations
- F.searchLevel p z = (Complexity.levelFn (F.deg ^ 4) p z).length
Instances For
The table of the level a request calls for.
Equations
- F.famTableFn p z = F.table (F.searchLevel p z)
Instances For
The polynomial that bounds that table.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Writing the table for a requested size is polynomial time.
The level the family asks for #
The search reports the level the family uses.
The search reports the size the family uses.
And writes that level's table.
The family's rotation map #
The family's rotation map, on pair (unary n) (pair (unary v) (unary i)):
split the dart into a slot and a step, lift the vertex into the tower member,
look the step up in that member's table, and fold the answer back onto n
vertices. Darts past the fold's degree are self-loops.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The rotation function runs the family's rotation map.