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