Back-and-forth assembly under a fixed row bijection #
Over arbitrary row types R, S and fiber families C, D with Lc-structures on every fiber,
fix a total row bijection e : R ≃ S. Two tuples a : Fin n → Carrier R C and
b : Fin n → Carrier S D are matched along e (Matched e a b) when, coordinatewise,
a i is the row r iff b i is the row e r, and a i lies in the fiber (r, τ) iff b i
lies in the fiber (e r, τ). Repeated coordinates are allowed.
Fiber back-and-forth data (FiberBF α e a b): for every row r, every label τ, and
every finite selection ι : Fin k → Fin n of coordinates lying in the fiber (r, τ)
(repetitions allowed), the selected component tuples of a in C r τ and of b in
D (e r) τ are back-and-forth equivalent at level α. With k = 0 this includes the empty
tuples of every fiber, occupied or not: unoccupied fibers must be α-equivalent as
structures.
Theorem (bfEquiv_of_fiberBF): matched tuples with fiber back-and-forth data at level α
are back-and-forth equivalent at level α in the assembled language, the same level. The
fixed bijection already tracks the owners absent from the tuple, so no level is spent on rows.
The proof is by induction on α. At level 0 every atom of the assembled language is decided
by the matching and by one atom of one fiber. At a successor, a move by a row is answered by
its image row, and a move by a fiber point is answered by the fiber's own forth (or back) move
applied to the canonical enumeration of that fiber's coordinates; every other selection of
coordinates in the extended tuple is a relabeling of that one (BFEquiv.relabel), and the
other fibers are unchanged up to relabeling. Full-profile bounds and companion matching are
outside this module.
Fiber membership and component elements #
The coordinate i of a lies in the fiber (r, τ).
Equations
- FirstOrder.Language.FiberAssembly.InFiber a r τ i = ∃ (x : C r τ), a i = FirstOrder.Language.FiberAssembly.Carrier.pt r τ x
Instances For
Matching along a row bijection #
b is matched to a along e: coordinatewise, rows correspond to image rows and fiber
points to points of the image fiber with the same label, in both directions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The b-side component element at a coordinate of the fiber (r, τ) of a.
Equations
Instances For
Extending a matching by a row and its image row.
Extending a matching by a fiber point and a point of the image fiber.
Fiber back-and-forth data #
Fiber back-and-forth data at level α: every selection of coordinates in one fiber,
repetitions allowed and the empty selection included, has back-and-forth equivalent component
tuples on the two sides.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Level zero: atoms #
Matched tuples with level-0 fiber data have the same atomic type in the assembled
language.
Selections in an extended tuple #
A coordinate below the new last one lies in a fiber of the extended tuple iff it does in the original tuple.
The component element at a coordinate below the new last one is unchanged.
If the new last element is not in the fiber (r, τ), every selected coordinate of that
fiber is below it.
Fiber data survive a move whose new element is not in the fiber: the selection is a selection in the original tuple.
Fiber data survive a row move.
The canonical enumeration of a fiber's coordinates (proof-only) #
The theorem #
Back-and-forth assembly under a fixed row bijection: matched tuples with fiber
back-and-forth data at level α are back-and-forth equivalent at level α in the assembled
language. No level is spent on rows.