Automata-theory-regular-sets

提供:Dev Guides
移動先:案内検索

レギュラーセット

正規表現の値を表すすべてのセットは、*正規セット*と呼ばれます

レギュラーセットのプロパティ

  • プロパティ1 *。 2つの正規セットの和集合は正規です。

証明-

2つの正規表現を使用してみましょう

RE〜1〜= a(aa)*およびRE〜2〜=(aa) *

したがって、L〜1〜= \ {a、aaa、aaaaa、…​..}(Nullを除く奇数長の文字列)

およびL〜2〜= \ {ε、aa、aaaa、aaaaaa、…​…​.}(Nullを含む偶数の文字列)

L〜1〜∪L〜2〜= \ {ε、a、aa、aaa、aaaa、aaaaa、aaaaaa、…​…​.}

(Nullを含むすべての可能な長さの文字列)

RE(L〜1〜∪L〜2〜)= a* (それ自体が正規表現です)

したがって、証明

  • プロパティ2. * 2つのレギュラーセットの共通部分はレギュラーです。

証明-

2つの正規表現を使用してみましょう

RE〜1〜= a(a )およびRE〜2〜=(aa)

したがって、L〜1〜= \ {a、aa、aaa、aaaa、…​.}(Nullを除くすべての可能な長さの文字列)

L〜2〜= \ {ε、aa、aaaa、aaaaaa、…​…​.}(Nullを含む偶数の文字列)

L〜1〜∩L〜2〜= \ {aa、aaaa、aaaaaa、…​…​.}(Nullを除く偶数の文字列)

RE(L〜1〜∩L〜2〜)= aa(aa)*これは正規表現そのものです。

したがって、証明

  • プロパティ3. * レギュラーセットの補数はレギュラーです。

証明-

正規表現を取りましょう-

RE =(aa)*

したがって、L = \ {ε、aa、aaaa、aaaaaa、…​…​.}(Nullを含む偶数の文字列)

*L* の補数は、 *L* にないすべての文字列です。

したがって、L ’= \ {a、aaa、aaaaa、…​..}(Nullを除く奇数長の文字列)

RE(L ’)= a(aa)*これはそれ自体が正規表現です。

したがって、証明

  • プロパティ4. * 2つのレギュラーセットの違いはレギュラーです。

証明-

私たちは2つの正規表現を取りましょう-

RE〜1〜= a(a )およびRE〜2〜=(aa)

したがって、L〜1〜= \ {a、aa、aaa、aaaa、…​.}(Nullを除くすべての可能な長さの文字列)

L〜2〜= \ {ε、aa、aaaa、aaaaaa、…​…​.}(Nullを含む偶数の文字列)

L〜1〜– L〜2〜= \ {a、aaa、aaaaa、aaaaaaa、…​.}

(ヌルを除くすべての奇数長のストリング)

RE(L〜1〜– L〜2〜)= a(aa)*これは正規表現です。

したがって、証明

  • プロパティ5. * レギュラーセットの反転はレギュラーです。

証明-

*L* が正規集合の場合、 *L ^ R ^* も正規であることを証明する必要があります。

みましょう、L = \ {01、10、11、10}

RE(L)= 01 + 10 + 11 + 10

L ^ R ^ = \ {10、01、11、01}

RE(L ^ R ^)= 01 + 10 + 11 + 10(通常)

したがって、証明

  • プロパティ6. * 通常のセットのクローズは通常です。

証明-

L = \ {a、aaa、aaaaa、…​…​.}(Nullを除く奇数長の文字列)の場合

すなわち、RE(L)= a(aa) *

L* = \ {a、aa、aaa、aaaa、aaaaa、……………}(Nullを除くすべての長さの文字列)

RE(L )= a(a)

したがって、証明

  • プロパティ7. * 2つの正規セットの連結は正規です。

証明-

RE〜1〜=(0 + 1)* 0およびRE〜2〜= 01(0 + 1)*とする

ここで、L〜1〜= \ {0、00、10、000、010、…​…​}(0で終わる文字列のセット)

およびL〜2〜= \ {01、010,011、…​..}(01で始まる文字列のセット)

次に、L〜1〜L〜2〜= \ {001,0010,0011,0001,00010,00011,1001,10010、…​…​…​…​.}

RE-(0 + 1)* 001(0 + 1)*で表すことができるサブストリングとして001を含むストリングのセット

したがって、証明した。

正規表現に関連するID

正規表現としてR、P、L、Qを考えると、次のアイデンティティが保持されます-

  • ∅* =ε
  • ε* =ε RR = R * R R R = R (R= R RR = R * R
  • (PQ)* P = P(QP)*
  • (a + b) =(a b ) *=(a + b ) *=(a + b= a (ba
  • R ∅=∅ R = R(結合の正体)
  • Rε=εR = R(連結のアイデンティティ)
  • ∅L = L∅=∅(連結の消滅者)
  • R + R = R(べき等法)
  • L(M + N)= LM + LN(左の分配法則)
  • (M + N)L = ML + NL(右の分配則) ε+ RR =ε+ R R = R