Cyclic language

Set of strings closed w.r.t. cyclic shift, repetition, and root From Wikipedia, the free encyclopedia

In computer science, more particularly in formal language theory, a cyclic language is a set of strings that is closed with respect to repetition, root, and cyclic shift.

Definition

If A is a set of symbols, and A* is the set of all strings built from symbols in A, then a string set LA* is called a formal language over the alphabet A. The language L is called cyclic if

  1. wA*. ∀n>0. wLwnL, and
  2. v,wA*. vwLwvL,

where wn denotes the n-fold repetition of the string w, and vw denotes the concatenation of the strings v and w.[1]:Def.1

Examples

For example, using the alphabet A = {a, b }, the language

L = { apbn1 an2bn2 ... ankbnk aq  : ni ≥ 0 and p+q = n1 }
{ bp an1bn1 an2bn2 ... ank bq  : ni ≥ 0 and p+q = nk }

is cyclic, but not regular.[1]:Exm.2 However, L is context-free, since M = { an1bn1 an2bn2 ... ank bnk : ni ≥ 0 } is, and context-free languages are closed under circular shift; L is obtained as circular shift of M.

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.