# Cone (formal languages)

In formal language theory, a cone is a set of formal languages that has some desirable closure properties enjoyed by some well-known sets of languages, in particular by the families of regular languages, context-free languages and the recursively enumerable languages.[1] The concept of a cone is a more abstract notion that subsumes all of these families. A similar notion is the faithful cone, having somewhat relaxed conditions. For example, the context-sensitive languages do not form a cone, but still have the required properties to form a faithful cone.

The terminology cone has a French origin. In the American oriented literature one usually speaks of a full trio. The trio corresponds to the faithful cone.

## Definition

A cone is a family ${\displaystyle {\mathcal {S}}}$ of languages such that ${\displaystyle {\mathcal {S}}}$ contains at least one non-empty language, and for any ${\displaystyle L\in {\mathcal {S}}}$ over some alphabet ${\displaystyle \Sigma }$,

• if ${\displaystyle h}$ is a homomorphism from ${\displaystyle \Sigma ^{\ast }}$ to some ${\displaystyle \Delta ^{\ast }}$, the language ${\displaystyle h(L)}$ is in ${\displaystyle {\mathcal {S}}}$;
• if ${\displaystyle h}$ is a homomorphism from some ${\displaystyle \Delta ^{\ast }}$ to ${\displaystyle \Sigma ^{\ast }}$, the language ${\displaystyle h^{-1}(L)}$ is in ${\displaystyle {\mathcal {S}}}$;
• if ${\displaystyle R}$ is any regular language over ${\displaystyle \Sigma }$, then ${\displaystyle L\cap R}$ is in ${\displaystyle {\mathcal {S}}}$.

The family of all regular languages is contained in any cone.

If one restricts the definition to homomorphisms that do not introduce the empty word ${\displaystyle \lambda }$ then one speaks of a faithful cone; the inverse homomorphisms are not restricted. Within the Chomsky hierarchy, the regular languages, the context-free languages, and the recursively enumerable languages are all cones, whereas the context-sensitive languages and the recursive languages are only faithful cones.

## Relation to Transducers

A finite state transducer is a finite state automaton that has both input and output. It defines a transduction ${\displaystyle T}$, mapping a language ${\displaystyle L}$ over the input alphabet into another language ${\displaystyle T(L)}$ over the output alphabet. Each of the cone operations (homomorphism, inverse homomorphism, intersection with a regular language) can be implemented using a finite state transducer. And, since finite state transducers are closed under composition, every sequence of cone operations can be performed by a finite state transducer.

Conversely, every finite state transduction ${\displaystyle T}$ can be decomposed into cone operations. In fact, there exists a normal form for this decomposition,[2] which is commonly known as Nivat's Theorem:[3] Namely, each such ${\displaystyle T}$ can be effectively decomposed as ${\displaystyle T(L)=g(h^{-1}(L)\cap R)}$, where ${\displaystyle g,h}$ are homomorphisms, and ${\displaystyle R}$ is a regular language depending only on ${\displaystyle T}$.

Altogether, this means that a family of languages is a cone if it is closed under finite state transductions. This is a very powerful set of operations. For instance one easily writes a (nondeterministic) finite state transducer with alphabet ${\displaystyle \{a,b\}}$ that removes every second ${\displaystyle b}$ in words of even length (and does not change words otherwise). Since the context-free languages form a cone, they are closed under this exotic operation.