形式言語理論 において、クリーネスター(またはクリーネ演算子、クリーネ閉包)とは、記号のアルファベットまたは形式言語(記号の有限列)のいずれにも適用できる、関連する2つの単項演算を指します。
アルファベットV上のクリーネ スター演算子は、V上のすべての有限長文字列の集合V*を生成します[注 1 ]。つまり、要素がVに属する有限シーケンスの集合です。数学では、これは自由モノイド構成としてより一般的に知られています。言語L上のクリーネ スター演算子は、別の言語L*を生成します。これは、 Lの 0 個以上の要素を連結して得られるすべての文字列の集合です。どちらの場合も、繰り返しは許容されます。
クリーネスター演算子は、正規表現のオートマトンを特徴付けるために最初に導入され、広く使用されたアメリカの数学者スティーブン・コール・クリーネにちなんで名付けられました。
アルファベットが与えられた、 定義する
そして再帰的に集合を定義する
どこ1文字を追加して得られる文字列を表します終わりまで。 ここ、は、長さがちょうどであるすべての文字列の集合と理解できる。キャラクターは。
言語が与えられた場合(任意の有限または無限の文字列の集合)を定義する
そして再帰的に集合を定義する
どこ連結によって得られる文字列を表しますそして。 ここ、は、正確に連結することによって得られるすべての文字列の集合と理解できます。文字列から繰り返しを許容する。
形式言語研究(例えばAFL 理論)では、クリーネ スター演算の変形であるクリーネプラスが使用される。クリーネ プラスは、または上記の連合における項。言い換えれば、クリーネプラスオンは
または
クリーネスターを弦のセットに適用した例:
接頭辞プロパティを持たない文字列セットにクリーネスターを適用した例:
文字セットにクリーネとクリーネプラスを適用した例(C言語の慣例に従い、文字はシングルクォーテーション、文字列はダブルクォーテーションで表す):
文字列は、連結を二項演算、ε を単位元とするモノイドを形成します。文字列に加えて、任意のモノイドに対してクリーネスターが定義されます。より正確には、( M , ⋅) をモノイドとし、S ⊆ Mとします。このとき、 S *はSを含むMの最小のサブモノイドです。つまり、S *はMの中立元である集合Sを含み、 x , y ∈ S *ならばx ⋅ y ∈ S *となります。
さらに、クリーネスターは、完全スター半環の概念によって、*演算(および和集合)を代数構造自体に含めることによって一般化される。[ 3 ]
L
の
クリーネ
閉包
L
*
は次のように定義される。
。