cyclic language

{{Short description|Set of strings closed w.r.t. cyclic shift, repetition, and root}}

{{More citations needed|date=May 2020}}

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.{{cite book | contribution-url=https://hal.science/hal-00619852 | author=Marie-Pierre Béal and Olivier Carton and Christophe Reutenauer | contribution=Cyclic Languages and Strongly Cyclic Languages | title=Proc. Symposium on Theoretical Aspects of Computer Science | publisher=Springer | series=Lecture Notes in Computer Science | volume=1046 | pages=49–59 | year=1996 }}{{rp|Def.1}}

Examples

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

ALIGN=RIGHT | L =

| {

|

| apbn1

| an2bn2

| ...

| ankbnk

| aq

| :

| ni ≥ 0 and p+q = n1 }

ALIGN=RIGHT | ∪

| {

| bp

| an1bn1

| an2bn2

| ...

| ank bq

|

| :

| ni ≥ 0 and p+q = nk }

is cyclic, but not regular.{{rp|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

{{reflist}}

Category:Formal languages

{{Comp-sci-stub}}