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
, where
and
are defined on the same alphabet
.[1] Formally:
where
is the Kleene star on
.
In other words, for all strings in
that have a suffix in
, the suffix is removed.
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, for all strings in
that have a prefix in
, the prefix is removed.
Note that the operands of
are in reverse order, so that
preceeds
.
The right and left quotients of
with respect to
may also be written as
and
respectively.[2]
Relationship between right and left quotients
[edit]
The right and left quotients of languages
and
are related through the language reversals,
and
, by the equalities:[2]
To prove the first equality, let
. Then there exists
such that
. Therefore, there must exist
such that
, hence by definition
. It follows that
, and so
. The second equality is proved in a similar manner.
Consider
and
If an element of
is split into two parts, then the right part will be in
if and only if the split occurs somewhere after the final
. Assuming this is the case, if the split occurs before the first
then
and
, otherwise
and
. For example:
where
is the empty string.
Thus, the left part will be either
or
), and
can be written as:
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.