{aⁿbⁿcⁿ}: a three-symbol non-context-free witness language #
The classical three-symbol non-context-free witness anbnc = {aⁿbⁿcⁿ | n ≥ 0},
proven non-context-free via the CFL pumping lemma + the unified adjacency
lemma in BlockWitness.
Independent of AnBnCnDn and AmBnCmDn — uses its own ThreeSymbol
alphabet and parallel filter-count machinery.
@[implicit_reducible]
Equations
- instDecidableEqThreeSymbol x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- instReprThreeSymbol.repr ThreeSymbol.a prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ThreeSymbol.a")).group prec✝
- instReprThreeSymbol.repr ThreeSymbol.b prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ThreeSymbol.b")).group prec✝
- instReprThreeSymbol.repr ThreeSymbol.c prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ThreeSymbol.c")).group prec✝
Instances For
@[implicit_reducible]
Equations
- instReprThreeSymbol = { reprPrec := instReprThreeSymbol.repr }
The language {aⁿbⁿcⁿ | n ≥ 0}.
Equations
- One or more equations did not get rendered due to their size.
- isInLanguage_anbnc [] = true
Instances For
Generate aⁿbⁿcⁿ.
Equations
- makeString_anbnc n = List.replicate n ThreeSymbol.a ++ List.replicate n ThreeSymbol.b ++ List.replicate n ThreeSymbol.c
Instances For
The language {aⁿbⁿcⁿ | n ≥ 0} as a mathlib Language.
Equations
- anbnc = {w : List ThreeSymbol | isInLanguage_anbnc w = true}
Instances For
{aⁿbⁿcⁿ} does NOT have the CFL pumping property.