Quotient of a formal language

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 .[1] Formally:

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

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:

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

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

References

  1. Linz, Peter (2011). An Introduction to Formal Languages and Automata. Jones & Bartlett Publishers. pp. 104–108. ISBN 9781449615529. Retrieved 7 July 2014.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.