A language is a set of strings. It can be thought of a collection of ‘words’, though words here is not the English meaning, but descripts a sequence of characters belonging to a mathematical alphabet.
Definition
Language ^definition
A language, is a set of formulae.
A key distinction to make is that a language can also be an empty set () or a set containing the empty word (the formula of length 0), .
Operations On Languages
Most set operations are used when talking about languages. Let and be two languages. The following set operations are used often:
However, some additional operations are defined only for languages!
Concatenation
Language concatenation is a binary operation that works in a similar process to string concatenation in programming. It works by ‘compressing’ the cartesian product of two languages.
Let and . Then:
This is similar (but not quite) from the Cartesian product:
Concatenation can be chained, and is usually represented as:
Note: Anything concatenated with yields itself, i.e.
Kleene Star
The Kleene star is a unary function that is, essentially, infinite concatenation (similar to how exponentiation is repeated multiplication).
If then:
Binding Powers
In terms of the main language operations: union, concatenation and Kleene star, the binding power order is given as:
That is, Kleene star > concatenation > union.
Some examples:
Axioms
Axioms For Language Operations