定义
定义1:设SS为一组单词。我们说,如果有单词u 0,… ,u n,…和v 1,… ,v n,…这样的话,SS很好地是无前缀的(为此答案起名字)。u0,…,un,…v1,…,vn,…
对于每个Ñ ≥ 1n≥1,ù Ñun和v Ñvn是非空的,并与不同的字母开头的;
S = { u 0 v 1,… ,u 0 … u n v n + 1,… }S={u0v1,…,u0…unvn+1,…}。
直觉是,您可以将所有这些词放在以下形状的无限根树上(即■
根,▲
是叶,以及•
其余的内部节点),以使SS中的词恰好是路径的标签从根到叶:
u₀ u₁ u₂
■-----•-----•-----•⋅⋅⋅
| | |
| v₁ | v₂ | v₃
| | |
▲ ▲ ▲
命题1.1:一个很好的无限无前缀集是无前缀的。
命题1.1的证明:假设ü 0 ... ü ñ v ñ + 1u0…unvn+1是一个严格的前缀ü 0 ... ü 中号v 米+ 1u0…umvm+1。有两种情况:
如果n < m,n<m则v n + 1vn+1是u n + 1 … u m v m + 1un+1…umvm+1的前缀。这是不可能的,因为u n + 1un+1和v n + 1vn+1具有不同的首字母。
如果Ñ > 中号n>m然后Ü 中号+ 1 ... Ü ñ v Ñ + 1um+1…unvn+1是前缀v 米+ 1vm+1。这是不可能的,因为Ü 中号+ 1um+1和v 米+ 1vm+1具有不同的第一字母。
命题1.2:一个很好的无限无前缀集合是无限的。
命题1.2的证明:在证明1.1中,我们发现,如果ň ≠ 米n≠m然后ü 0 ... ü ñ v ñ + 1u0…unvn+1和ü 0 ... ü 中号v 米+ 1u0…umvm+1是不是前缀顺序相媲美。因此,它们不相等。
主要证明
命题2:任何无限无前缀集都包含一个不错的无限无前缀集。
命题3:一种语言包含且仅当它包含一个很好的无限无前缀集时,才包含无限无前缀集。
下面的证明。
命题3的证明:⇒⇒通过命题2。⇐⇐通过命题1.1和1.2。
命题4:该组正则语言的很好前缀游离子集(编码为无限字¯ ü 0 ^ v 1&OverBar; Ü 1 ^ v 2&OverBar; Ù 2 ...u0¯¯¯¯¯v1ˆu1¯¯¯¯¯v2ˆu2¯¯¯¯¯…)是ωω -regular(和步琪的大小自动机识别它是NFA的大小的多项式(识别常规语言)。
下面的证明。
定理5:确定NFA描述的常规语言是否包含无限的无前缀子集,可以在NFA大小的时间多项式中完成。
定理5的证明:通过命题3,足以测试它是否包含一个无穷无前缀的子集,这可以在多项式时间内通过构建命题4给出的Büchi自动机并测试其非空性来完成语言(可以按照Büchi自动机的大小以线性方式在时间上完成)。
命题证明2
引理2.1:如果SS是无前缀集合,则w − 1 Sw−1S(对于任何单词ww)也是如此。
证明2.1:根据定义。
引理2.2:令SS为无限个单词。让w ^ := LCP (小号ñ)w:=lcp(Sn)是最长前缀通用于所有单词小号S。SS和w − 1 Sw−1S具有相同的基数。
证明2.2:用f (x )= w x定义f :w - 1 S → S。它由w - 1 S的定义很好地定义,由f的定义是单射的,由w的定义是单射的。
命题2的证明:我们建立ü ñ和v ñ感应上ñ,与归纳假设^ h ñ以下几部分组成:
(P 1)对于所有 ķ ∈ { 1 ,... ,Ñ }, ü 0 ... Ü ķ - 1 v ķ ∈ 小号 ;
(P 2)对于所有的 ķ ∈ { 1 ,... ,Ñ }, ù ķ和 v ķ是非空的,并与不同的字母开头的;
(P 3) S n:= (u 0 … u n )− 1 S是无限的;
(P 4)S n中的所有单词没有通用的非空前缀。换句话说:没有字母一个,使得小号ñ ⊆ 一个Σ *。
备注2.3:如果我们有序列验证H n而没有(P 4),则可以修改u n使其也满足(P 4)。确实,用u n lcp (S n)替换u n就足够了。(P 1)不受影响。(P 2)是微不足道的。(P 4)是通过构造。(P 3) 是引理3。
现在,我们通过对n进行归纳来构建序列:
由于小号Ñ是无限的和无前缀(由引理1),它不包含ε使得小号Ñ = ⨆ 一个&Element; Σ(小号Ñ ∩ 一个Σ *)。由于小号ñ是无限的,有一个字母一个,使得小号ñ ∩ 一个Σ *是无限的。由(P 4),有一个字母b不同于一个使得小号Ñ ∩ b Σ∗非空。挑 v Ñ + 1 ∈ 小号Ñ ∩ b Σ *。将 u n + 1设为 a将满足(P 1),(P 2)和(P 3),因此我们应用注释3.1来获得(P 4): u n + 1:= a lcp (a − 1 S n)。
(P 1) Ü 1 ... ü ñ v Ñ + 1 ∈ Ü 1 ... ù Ñ(小号Ñ ∩ b Σ *)⊆ 小号。
(P 2)通过的定义 ü Ñ + 1和 v Ñ + 1。
(P 3) 一- 1小号Ñ是通过定义无限一个,和小号Ñ + 1因此,通过无限引理3。
(P 4)通过的定义 ü Ñ + 1。
命题证明4
命题4的证明:令A = (Q ,→ ,Δ ,q 0,F )为NFA。
这个想法是这样的:我们读u 0,记住我们在哪里,读v 1,在读完u 0之后,回到我们在哪里,读u 1,记住我们在哪里,...我们还记得第一个字母是读每个v n以确保u n以另一个字母开头。
有人告诉我,使用多头自动机可能会更容易,但是我对形式主义并不真正熟悉,因此我仅使用Büchi自动机(只有一个头)来描述它。
我们设置Σ ':= ¯ Σ ⊔ Σ,其中上划线的符号将用于描述û ķ S和符号的帽子为v ķ秒。
我们设置Q ':= Q × ({ ⊥ } ⊔ (Q × Σ )),其中:
我们设定q ' 0:= (q 0,⊥ )通过阅读,因为我们开始ü 0。
我们将F '定义为F × Q × Σ。
过渡集→ '的定义如下:
“ û Ñ ”对于每个过渡q 一个→ q ',ADD (q ,⊥ )¯ 一个 → '(q ',⊥ ) ;
“ û Ñ到v Ñ + 1 ”对于每个过渡q 一个→ q ',ADD (q ,⊥ )一 → '(q ',(q ,一)) ;
“ v Ñ ”对于每个过渡q 一个→ q ',ADD (q ,(p ,一))一 → '(q ',(p ,一)) ;
“ v Ñ到û Ñ ”对于每个过渡p 一个→ p ',其中p是最终的,字母b不同于一,添加(q ,(p ,b ))&OverBar; 一个 → '(p ',⊥ ) ;
引理4.1:¯ ü 0 ^ v 1&OverBar; Ü 1 ^ v 2 ... &OverBar; û Ñ ^ v Ñ + 1是由接受阿'为每个IFF Ñ ≥ 1,ù Ñ和v Ñ是非空的,并与不同的字母开头的和每个ñ ≥ 0,ü 0 ... ü ñ v ñ + 1 ∈ 大号(甲)。
引理的证明4.1:留给读者。