【理论学习】Myhill–Nerode Theorem
如果你上一门本科阶段的计算理论课,你通常会学到“泵引理”这个证明一个语言非正则的手段。
但是,泵引理条件并非语言是正则语言的充要条件。你自然要好奇,有没有什么条件,既是充要的,又易于使用(来证明非正则性)?
其实充要(或者说等价)条件有很多很多,包括但不限于下面列出的这些:
Myhill–Nerode Theorem说的就是
预备工作
首先,我们定义两个“不可区分性”。
令
则称
类似的,我们可以定义
令
则称
注意到上面两个“不可区分”都是等价关系。
(接下来的证明全部使用大白话)
引理
证明:
因为
由上可见
推论
若
证明:
设
任何字符串显然都会落在
结论
证明:
我们曾经用泵引理证明过这一经典命题,现在我们利用刚才的推论来给出一个简洁的证明。
考虑字符串集
因此
Myhill–Nerode 定理
证明:
构造
注意到,若
由数学归纳法可知,上述构造使任何字符串在输入
注意到,对于任意一个
把这些构成
这样一来,
也即,
因此,
可以看到,该证明过程为我们给出了一个正则语言的最简有限自动机的构造方法。