Материал из Викиконспекты
Решение уравнений в регулярных выражениях
Утверждение: |
Пусть уравнение имеет вид [math]X = \alpha X + \beta[/math], тогда:
если [math]\varepsilon \notin \alpha \Rightarrow \alpha^{*} \beta[/math] — единственное решение. если [math]\varepsilon \in \alpha \Rightarrow \alpha^{*}( \beta + \alpha)[/math] — решение для [math]\forall \alpha[/math] |
[math]\triangleright[/math] |
[math] 1) \varepsilon \notin \alpha [/math]. тогда [math]\forall i: \alpha^{i} \beta \subset X [/math] для [math]\forall L \Rightarrow \alpha^{*} \beta \subset X [/math]. Пусть [math]\exists z \in X, z\notin \alpha^{*} \beta: z[/math] — самое короткое. [math]z=z_\alpha z', [/math] где [math]z_\alpha \in \alpha \Rightarrow z_\alpha \notin \varepsilon \Rightarrow z'[/math] — короче [math]z \Rightarrow z' \in \alpha^{*} \beta \Rightarrow z \in \alpha^{*} \beta \Rightarrow X = \alpha^{*} \beta [/math]
[math] 2) \varepsilon \in \alpha[/math]. предположим, что [math] \alpha^{*}( \beta + \alpha) [/math] — решение, тогда [math] \alpha^{*}( \beta + \alpha) [/math] подходит в [math]X = \alpha X + \beta[/math]. Выберем в качестве [math]L[/math] любой язык.
[math]\Rightarrow \alpha^{*} ( \beta + L ) = \alpha \alpha^{*} ( \beta + L ) + \beta \alpha^{*} \beta + \alpha^{*} \alpha = \alpha^{+} \beta + \alpha^{*} L + \beta = \alpha^{*} \beta + \alpha^{*} L = \alpha^{*}( \beta + \alpha) [/math]. что и требовалось доказать |
[math]\triangleleft[/math] |