In mathematics and computer science, the right quotient (or simply quotient) of a language with respect to language is the language consisting of strings w such that wx is in for some string x in Formally:

In other words, we take all the strings in that have a suffix in , and remove this suffix.

Quotient of a formal language

Similarly, the left quotient of with respect to is the language consisting of strings w such that xw is in for some string x in . Formally:

Quotient of a formal language

In other words, we take all the strings in that have a prefix in , and remove this prefix.

Quotient of a formal language

Note that the operands of are in reverse order: the first operand is and is second.

Example

Consider

and

Now, if we insert a divider into an element of , the part on the right is in only if the divider is placed adjacent to a b (in which case i ≤ n and j = n) or adjacent to a c (in which case i = 0 and j ≤ n). The part on the left, therefore, will be either or ; and can be written as

Properties

Some common closure properties of the quotient operation include:

The quotient of a regular language with any other language is regular. The quotient of a context free language with a regular language is context free. The quotient of two context free languages can be any recursively enumerable language. The quotient of two recursively enumerable languages is recursively enumerable.

These closure properties hold for both left and right quotients.

See also

Brzozowski derivative

References

Formal languages