Companion carriers: allowed paths, prefixes, and the path row #
The companion of the prefix specialization along an infinite allowed path π is the generic
carrier over the rows Row A ⊕ Unit: the finite allowed rows keep their fibers, and the extra
row ρ_π follows the same prefix rule along π (pathFiber, CompanionCarrier).
IsAllowedPath A π:πis nondecreasing withπ n ∈ A n. Allowedness is a hypothesis where a prefix must be a row; the constructor does not bake in approximation or non-defaultness of the components along the path.pathPrefix π k: the prefix[π 0, …, π (k - 1)];prefixRow hπ kis it as an allowed row. Prefixes of different lengths are distinct.IsPathPrefix π τ: a label lies on the path;pathIndex π τissome (last τ)then andnoneotherwise.- Fiber-index equations:
compIndex (pathPrefix π k) τ = pathIndex π τfor labels of length≤ kand= nonefor longer labels (compIndex_pathPrefix_of_le,compIndex_pathPrefix_of_lt); consecutive prefixes differ only at the single labelprefixLabel π k(compIndex_pathPrefix_succ_of_ne, with the length-based case split ascompIndex_pathPrefix_succ_of_length_ne), where the longer prefix givessome (π k)and the shorter givesnone. Henceρ_πandπ|ₖhave equal fibers at every label of length≤ k(pathFiber_inl_prefixRow_of_le). - Countability of the companion carrier from countable letters, default, and components.
Nothing about equivalence, isomorphism, or ranks is proved here.
Prefixes of a path (no order structure needed) #
The prefix [π 0, …, π (k - 1)] of a path.
Equations
- FirstOrder.Language.FiberAssembly.pathPrefix π k = List.ofFn fun (i : Fin k) => π ↑i
Instances For
A shorter prefix is a prefix of a longer one.
A list that is a prefix of pathPrefix π k is the prefix of its own length.
Labels on the path #
A label lies on the path: it is the path prefix of its own length.
Equations
Instances For
The prefix of length k + 1, as a label.
Equations
Instances For
A prefix label of π is not on σ when the two paths differ at an earlier position.
The component index along the path: some (last τ) on the path, none off it.
Equations
Instances For
Fiber-index equations #
Short labels: the prefix row π|ₖ indexes a label of length ≤ k exactly as the path
does.
Long labels: the prefix row π|ₖ gives the default at every label longer than k.
Consecutive prefixes agree at every label whose length is not k + 1 (a corollary of
compIndex_pathPrefix_succ_of_ne, kept for the length-based case split).
Consecutive prefixes differ only at the single label prefixLabel π k: at every other
label, including off-path labels of length k + 1, they agree.
At the label of length k + 1 on the path, the longer prefix gives some (π k).
At the label of length k + 1 on the path, the shorter prefix gives the default.
Allowed paths and prefix rows #
An allowed path: nondecreasing, with the n-th letter allowed at position n.
Instances For
Prefixes of an allowed path are allowed rows.
The prefix of length k as an allowed row.
Equations
Instances For
Prefixes of different lengths are different rows.
The companion carrier #
The fibers of the companion: finite rows as in the base, the path row by the prefix rule
along π.
Equations
- FirstOrder.Language.FiberAssembly.pathFiber Bstar B A π (Sum.inl r) x✝ = FirstOrder.Language.FiberAssembly.prefixFiber Bstar B A r x✝
- FirstOrder.Language.FiberAssembly.pathFiber Bstar B A π (Sum.inr val) x✝ = FirstOrder.Language.FiberAssembly.Comp Bstar B (FirstOrder.Language.FiberAssembly.pathIndex π x✝)
Instances For
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.FiberAssembly.instPathFiberStructure Bstar B A π (Sum.inl r) x✝ = FirstOrder.Language.FiberAssembly.instPrefixFiberStructure Lc Bstar B A r x✝
The companion carrier along π.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The path row and a prefix row π|ₖ have the same fiber at every label of length ≤ k.
The companion carrier is countable when the letters, the default, and the components are.