Classical CCG generates a non-context-free language #
Formalisation of the construction in [KKS15], Example 2: a
rule-restricted combinatory categorial grammar — the classical formalism of
[VSW94] and [WJ88] — that generates the
non-context-free language aⁿbⁿcⁿ.
The point is theoretical. [KKS15] show that the CCG≡TAG weak
equivalence holds for classical CCG, where combinatory rules may be restricted per
grammar (here, via the target restriction modelled in Syntax/CCG/Classical: every rule
fires only when the target of its primary input category is S). For lexicalized CCG
without target restrictions they prove the power is strictly below TAG: such a CCG that
covers aⁿbⁿcⁿ also admits extra permuted strings, so it cannot generate the language
exactly. Syntax/CCG/Basic's CCG.DerivStep models a (rule-inventory) fragment of that
unrestricted variant, so this construction genuinely needs the restricted model
CCG.Classical.
Atoms follow the paper (A, B, C, S); we realise them with the project's CCG.Cat atoms
as A = NP, B = N, C = PP, S = S — abstract placeholders, the content is generative
capacity, not syntax.
Main definitions #
build— then-indexedCCG.Classical.Derivationofaⁿbⁿcⁿ(cluster of degree-2 compositions, peeled toSby crossed-composition withcand backward-application witha).
Main statements #
build_cat—(build n).cat = some Sforn ≥ 1.build_yield—(build n).yield = aⁿbⁿcⁿ.ccg_generates_anbnc— everyaⁿbⁿcⁿstring is generated.
Implementation notes #
These are the completeness direction (every target string is generated). The converse
soundness (the target-restricted rules generate only count-matched strings) is an
all-derivations induction not formalised here; with it, relabelling
{"a","b","c"} → ThreeSymbol and AnBnCn.anbnc_not_contextFree would establish that the
grammar's language is itself non-context-free.
Abstract atom A, realised as NP.
Equations
Instances For
Abstract atom C, realised as PP.
Equations
Instances For
The grammar G₁ of Example 2 #
a := A.
Equations
Instances For
c := C\A.
Equations
Instances For
The cluster category S/C/…/C with n forward C-arguments.
Equations
Instances For
Chain of degree-2 compositions: b₁ = S/C/B composed with j copies of
B/C/B, giving S/Cʲ⁺¹/B and yield bʲ⁺¹.
Equations
- One or more equations did not get rendered due to their size.
- KuhlmannKollerSatta2015.fc2Chain 0 = CCG.Classical.Derivation.lex ((CCG.S.rslash KuhlmannKollerSatta2015.Ccat).rslash KuhlmannKollerSatta2015.Bcat) "b"
Instances For
The b-cluster derivation for n ≥ 1, with category clusterCat n, yield bⁿ.
Equations
- KuhlmannKollerSatta2015.clusterDeriv 0 = CCG.Classical.Derivation.lex CCG.S "b"
- KuhlmannKollerSatta2015.clusterDeriv 1 = CCG.Classical.Derivation.lex (CCG.S.rslash KuhlmannKollerSatta2015.Ccat) "b"
- KuhlmannKollerSatta2015.clusterDeriv n.succ.succ = (KuhlmannKollerSatta2015.fc2Chain n).fc1 (CCG.Classical.Derivation.lex (KuhlmannKollerSatta2015.Bcat.rslash KuhlmannKollerSatta2015.Ccat) "b")
Instances For
One peel: crossed-compose with a c on the right, then backward-apply an a on the
left — wrapping the yield with a … c and removing one C argument.
Equations
Instances For
Peel k times.
Equations
- KuhlmannKollerSatta2015.peel 0 x✝ = x✝
- KuhlmannKollerSatta2015.peel k.succ x✝ = KuhlmannKollerSatta2015.peel k (KuhlmannKollerSatta2015.peelStep x✝)
Instances For
The full derivation of aⁿbⁿcⁿ.
Equations
Instances For
Target invariant #
The cluster category always has target S.
Category of the construction (completeness, part 1) #
The degree-2 chain composes to S/Cʲ⁺¹/B.
The cluster derivation has category clusterCat n for n ≥ 1.
One peel removes one C argument from a cluster.
Peeling k times turns a clusterCat k derivation into one of category S.
Yield of the construction (completeness, part 2) #
Completeness, yield part. The construction spells out aⁿbⁿcⁿ.
Generative-capacity result #
The string language aⁿbⁿcⁿ (n ≥ 1) over {"a","b","c"}.
Equations
- KuhlmannKollerSatta2015.anbncStrings = {w : List String | ∃ (n : ℕ), 1 ≤ n ∧ w = List.replicate n "a" ++ List.replicate n "b" ++ List.replicate n "c"}
Instances For
The construction generates aⁿbⁿcⁿ ([KKS15], Ex. 2):
every string in the non-context-free language is the yield of a well-formed (target-
restricted) CCG derivation. This is the completeness half of CCG ⊋ CFG; the language
anbnc it covers is not context-free (AnBnCn.anbnc_not_contextFree).