structure HierarchySpec (M : ℕ) where
levels : ℕ
hlevels : 0 < levels
/-- Number of gaps = levels - 1. -/
numGaps : ℕ
hng : numGaps + 1 = levels
/-- Gap positions (sorted, in {0, ..., M-2}). -/
gapPositions : Fin numGaps → ℕ
hgapBound : ∀ i, gapPositions i + 1 < M
hgapSorted : StrictMono gapPositionsEndogenous Hierarchy: Why N Levels?