{aᵐbⁿcᵐdⁿ}: a two-parameter four-symbol non-context-free witness #
The two-parameter relaxation of anbncndn: case-sorted strings whose a- and c-counts agree
and whose b- and d-counts agree — the diagonal pairs only, not all four counts equal. A
strict superset of anbncndn, and the language [Shi85]'s argument that Swiss German is
not weakly context-free actually requires.
Pumping runs on the diagonal witness makeString_anbncndn p, which lies in ambncmdn
because equal-all-four implies the diagonal pairs match. Deleting the pumped window breaks one
of the two diagonal equalities rather than all four — the substantive content beyond AnBnCnDn.
Main definitions #
makeString_ambncmdn m n: the witness wordaᵐbⁿcᵐdⁿ.ambncmdn: the language{aᵐbⁿcᵐdⁿ | m, n ≥ 0}, as the range ofmakeString_ambncmdn.
Main results #
ambncmdn_not_pumpable:ambncmdnlacks the CFL pumping property.ambncmdn_not_contextFree:ambncmdnis not context-free.
The witness word aᵐbⁿcᵐdⁿ.
Equations
- makeString_ambncmdn m n = List.replicate m FourSymbol.a ++ List.replicate n FourSymbol.b ++ List.replicate m FourSymbol.c ++ List.replicate n FourSymbol.d
Instances For
The language {aᵐbⁿcᵐdⁿ | m, n ≥ 0}, as the range of makeString_ambncmdn.
Equations
- ambncmdn = {w : List FourSymbol | ∃ (m : ℕ) (n : ℕ), w = makeString_ambncmdn m n}
Instances For
Membership characterization: every string in ambncmdn equals makeString_ambncmdn m n
for some m, n.
The diagonal witness lies in ambncmdn: aⁿbⁿcⁿdⁿ is aᵐbⁿcᵐdⁿ at m = n.
Pumping breaks ambncmdn membership. Deleting v and y must break either the
a-count = c-count equality or the b-count = d-count equality, depending on which
blocks the window meets.
{aᵐbⁿcᵐdⁿ} does not have the CFL pumping property.
{aᵐbⁿcᵐdⁿ} is not context-free — the two-parameter relaxation that [Shi85]'s
Swiss German argument requires.