Subregular Languages: Boundary Augmentation #
Boundary augmentation of strings and a boundary-vacuity predicate relating the
chain-membership of a padded string to that of its unpadded core. The strictly-local,
locally-testable, and tier-relativized classes are built on this infrastructure
[Lam22a] [HR10] [RP11]. The contiguous k-factors
the hierarchy quantifies over are a generic list combinator and live in
Core/Data/List/Factors.lean (List.kFactors).
Main definitions #
Augmented α: boundary-augmented stringsList (Option α), withnonethe boundary marker.boundary k w:winjected intoAugmented αand padded withk - 1boundary markers on each side.IsBoundaryVacuous R:Rholds whenever either argument is the boundary markernone.
Main results #
IsBoundaryVacuous.isChain_boundary_two_iff: boundary padding does not changeIsChain-membership for a boundary-vacuous relation.
Implementation notes #
The standard subregular convention extends the alphabet with two edge markers
⋊, ⋉ and studies the k-factors of ⋊ᵏ⁻¹ · w · ⋉ᵏ⁻¹. We instead use the
one-fresh-symbol extension Option α (none = boundary, some a = original
symbol): a single marker suffices because boundary symbols only ever occur at
fixed positions, so the two edges are never confused.
Boundary augmentation #
Position discrimination and the configuration bridge #
Entries of boundary k y are values of the word's two-sided configuration
(List.config), shifted by the pad width; consequently the k-factors of the
augmented word are exactly its windows (List.window).
The augmented string's entries by region: left pad, letters, right pad.
A letter entry sits in the letter region.
The k-factors of the augmented word are exactly its windows over
[1 - k, w.length).
Boundary-vacuous relations #
A relation on Option α is boundary-vacuous when none satisfies it on
either side (R none u, R u none) — so only (some a, some b) pairs can
witness a violation. Subregular edge constraints (OCP, no-clash, no-lapse) all
share this shape.
- none_left (u : Option α) : R none u
- none_right (u : Option α) : R u none
Instances For
2-boundary padding preserves IsChain for a boundary-vacuous relation.