admin管理员组

文章数量:1534191

非 确 定 B u ¨ c h i 自 动 机 ⇌ ω 正 则 语 言 ⇌ ω 正 则 表 达 式 非确定Büchi自动机\rightleftharpoons \omega 正则语言 \rightleftharpoons \omega 正则表达式 Bu¨chiωω

1 无限字上的自动机

1.1 Büchi自动机

Büchi自动机(Büchi Automata)可以用于描述无限字上的LT性质。老师PPT上还是用了Peterson’s banking system的例子,如下面这个【请求服务的最终都能获得服务】的活性(liveness)性质:
a l w a y s ( r e q L ⇒ e v e n t u a l l y   @ a c c o u n t L )   ∧   a l w a y s ( r e q R ⇒ e v e n t u a l l y   @ a c c o u n t R ) always(req_L \Rightarrow eventually \ @account_L) \ \wedge \ always(req_R \Rightarrow eventually \ @account_R) always(reqLeventually @accountL)  always(reqReventually @accountR)

活性性质是【当某用户想访问账户时,最终一定能访问到】,则其对立面就是【存在当某用户想访问账户时,永远也访问不到的情况】。这里称后者是一种unlive behavior,它能表示成若干无限长的trace的集合,对应了Büchi自动机:

则要检查模型 T S TS TS是否满足活性性质 P l i v e P_{live} Plive,也就是在验证模型的所有trace和活性性质的补表达的 ω \omega ω正则语言是否不交:
T r a c e s ( T S )   ∩   L ω ( L i v e ‾ ) = ∅ Traces(TS) \ \cap \ \mathcal{L}_{\omega}(\overline{Live})=\varnothing Traces(TS)  Lω(Live)=

1.2 ω \omega ω正则表达式

正则表达式表达的是有限字的语言, ω \omega ω正则表达式表达的则是无限字语言,字母表 Σ \Sigma Σ上的 ω \omega ω正则表达式总能写为如下的一般形式:
G = E 1 . F 1 ω +   . . .   + E n . F n ω      f o r   n > 0 G=E_1.F_1^{\omega} + \ ... \ + E_n.F_n^{\omega} \ \ \ \ for \ n > 0 G=E1.F1ω+ ... +En.Fnω    for n>0

其中 E i E_i Ei F i F_i Fi是正则表达式。

例如, ( A + B ) ∗ . B ω (A+B)^*.B^{\omega} (A+B).Bω ( B ∗ . A ) ω (B^*.A)^{\omega} (B.A)ω A ∗ . B ω + A ω A^*.B^{\omega}+A^{\omega} A.Bω+Aω都是 ω \omega ω正则表达式。

1.3 ω \omega ω正则表达式的语义

首先,有限字上的语言 L ⊆ Σ ∗ \mathcal{L} \subseteq \Sigma^* LΣ可以理解为从有限状态机上初始状态到终止状态的各种执行序列所识别的转移边上的字母来构成的语言,则有限字上的语言的无限次自连接:
L ω = { w 1 w 2 w 3 . . .   ∣   ∀ i ≥ 0. w i ∈ L } \mathcal{L}^{\omega} = \{w_1w_2w_3... \ | \ \forall i \geq 0 . w_i \in \mathcal{L} \} Lω={w1w2w3...  i0.wiL}

表达的就是无限次“从初始状态到可接受状态的任意执行”。具体地,1.2中给出的 ω \omega ω正则表达式的一般形式对应的 ω \omega ω正则语言是这样的集合:
L ω ( G ) = L ( E 1 ) . L ( F 1 ) ω   ∪   . . .   ∪   L ( E n ) . L ( F n ) ω \mathcal{L}_{\omega}(G)=\mathcal{L}(E_1).\mathcal{L}(F_1)^{\omega} \ \cup \ ... \ \cup \ \mathcal{L}(E_n).\mathcal{L}(F_n)^{\omega} Lω(G)=L(E1).L(F1)ω  ...  L(En).L(Fn)ω

ω \omega ω正则表达式等价,当且仅当它们所表达的语言是等价的,即:
G 1 ≡ G 2     i f f     L ω ( G 1 ) ≡ L ω ( G 2 ) G_1 \equiv G_2 \ \ \ iff \ \ \ \mathcal{L}_{\omega}(G_1) \equiv \mathcal{L}_{\omega}(G_2) G1G2   iff   Lω(G1)Lω(G2)

1.4 ω \omega ω正则语言

一语言 L \mathcal{L} L是正则的,当且仅当存在一 ω \omega ω正则表达式G能表示该语言,即 L = L ω ( G ) \mathcal{L}=\mathcal{L}_{\omega}(G) L=Lω(G)。例如字母表 Σ = { A , B } \Sigma=\{ A,B \} Σ={A,B}上的 ω \omega ω正则语言,可导出为正则表达式:

  • A无限经常次出现: ( B ∗ . A ) ω (B^*.A)^{\omega} (B.A)ω
  • A有限次出现: ( A + B ) ∗ . B ω (A+B)^*.B^{\omega} (A+B).Bω
  • 空语言: ∅ ω \varnothing^{\omega} ω

ω \omega ω正则语言对并、交、补都是封闭的,并且是无空的(不存在 ϵ \epsilon ϵ)。

2 ω \omega ω正则性质

2.1 简述

称原子命题AP上的一个LT性质P是 ω \omega ω正则的,仅当P是在字母表 2 A P 2^{AP} 2AP上的 ω \omega ω正则语言。换句话说,原子命题AP上的一个LT性质P是 ω \omega ω正则的,仅当存在一个能接受此性质P的NBA(非确定Büchi自动机)。

注意, ω \omega ω正则语言和NBA(非确定Büchi自动机)的表达能力相同,但是NBA和DBA的表达能力不同。

2.2 例子
  • 任何不变性 P i n v P_{inv} Pinv都是 ω \omega ω正则性质,因为总可以表示成形如 Φ ω \Phi^{\omega} Φω ω \omega ω正则语言。

  • 任何正则的安全性 P s a f e P_{safe} Psafe都是 ω \omega ω正则性质,因为其补 P ‾ = B a d P r e f ( P ) . ( 2 A P ) ω \overline{P}=BadPref(P).(2^{AP})^{\omega} P=BadPref(P).(2AP)ω ω \omega ω正则的,而且 ω \omega ω正则语言对补封闭,所以求补之前的 P s a f e P_{safe} Psafe也是 ω \omega ω正则的。

  • 任何活性 P l i v e P_{live} Plive都是 ω \omega ω正则性质,可以从这章最开始的例子直观理解。

3 非确定性Büchi自动机(NBA)

3.1 简述

从前面的分析可以知道,有限自动机(FA)只能识别有限字,不能识别无限字,而NBA可以识别无限字。但是NBA中的状态也和FA中的状态一样,是有限个的,因此NBA识别出的无限字中一定有一些状态会无限经常次出现

NBA类似于NFA,但是其可接受状态的衡量标准是不同的,对NBA而言,那些总是无限经常次出现的状态称为可接受状态

3.2 NBA可接受的语言

A = ( Q , Σ , δ , Q 0 , F ) A=(Q,\Sigma,\delta,Q_0,F) A=(Q,Σ,δ,Q0,F)表示NBA。其中 σ : Q × Σ → 2 Q \sigma:Q \times \Sigma \to 2^Q σ:Q×Σ2Q是从 Q Q Q中状态经识别 Σ \Sigma Σ中字母,到达 2 Q 2^Q 2Q中状态集的转移。也就是说, q → A p q \xrightarrow[]{A} p qA p当且仅当 p ∈ σ ( q , A ) p \in \sigma(q,A) pσ(q,A)

σ = A 1 A 2 . . . ∈ Σ ω \sigma=A_1A_2...\in \Sigma^{\omega} σ=A1A2...Σω表示无限字。

无限字 σ \sigma σ在NBA A A A上的一个可接受运行是一个无限执行序列 q 0 q 1 q 2 . . . q_0q_1q_2... q0q1q2...,其中 q 0 ∈ Q 0 q_0 \in Q_0 q0Q0是初始状态, q i → A i + 1 q i + 1 q_i \xrightarrow[]{A_{i+1}}q_{i+1} qiAi+1 qi+1取自识别字母后的状态转移, q i ∈ F q_i \in F qiF是可接受状态仅当 q i q_i qi无限经常次出现。

特别注意区分概念,无限字是由动作组成的,而可接受运行是由状态组成的。

称无限字 σ \sigma σ能被NBA A A A接受,仅当存在 σ \sigma σ A A A上的可接受运行。

则可定义NBA A A A可接受语言为其所有可接受运行组成的集合。

两NBA等价,当且仅当它们所表达的语言是等价的,即:
A 1 ≡ A 2     i f f     L ω ( A 1 ) ≡ L ω ( A 2 ) A_1 \equiv A_2 \ \ \ iff \ \ \ \mathcal{L}_{\omega}(A_1) \equiv \mathcal{L}_{\omega}(A_2) A1A2   iff   Lω(A1)Lω(A2)

3.3 NBA和NFA对比

下图中两个自动机,视为NFA时, A 1 A_1 A1 A + A^+ A+ A 2 A_2 A2 A + A^+ A+;视为NBA时, A 1 A_1 A1 A ω A^{\omega} Aω A 2 A_2 A2 ∅ \varnothing 。即在有限运行上等价,但在无限运行上不等价。

下图中两个自动机,视为NFA时, A 1 A_1 A1 ( A A ) ∗ (AA)^* (AA) A 2 A_2 A2 A ( A A ) ∗ A(AA)^* A(AA);视为NBA时, A 1 A_1 A1 A ω A^{\omega} Aω A 2 A_2 A2 A ω A^{\omega} Aω。即在有限运行上不等价,但在无限运行上等价。

3.4 ω \omega ω正则语言与NBA

任一被NBA接受的语言,是一个 ω \omega ω正则语言;对任一 ω \omega ω正则语言,可构造一个能识别它的NBA,所以两者是等价的。

以下三个操作得到的是NBA:

  • 对一 ω \omega ω正则语言 L \mathcal{L} L(或说一个NFA A A A)只要 ϵ ∉ L \epsilon \notin \mathcal{L} ϵ/L,那么存在能识别 L ω \mathcal{L}^{\omega} Lω的NBA—— A ω A^{\omega} Aω
  • 对两NBA A 1 A_1 A1 A 2 A_2 A2存在能识别 L ω ( A 1 ) ∪ L ω ( A 2 ) \mathcal{L}_{\omega}(A_1) \cup \mathcal{L}_{\omega}(A_2) Lω(A1)Lω(A2)的NBA—— A 1 + A 2 A_1 + A_2 A1+A2
  • 对一 ω \omega ω正则语言 L \mathcal{L} L(或说一个NFA A A A)以及一个NBA A ′ A' A存在能识别 L . L ω ( A ′ ) \mathcal{L}.\mathcal{L}_{\omega}(A') L.Lω(A)的NBA—— A . ( A ′ ) ω A.(A')^{\omega} A.(A)ω

接下来3.53.63.7将对它们逐一叙述。

3.5 NFA上的 ω \omega ω操作

NFA上的 ω \omega ω操作用于将NFA变成“能接受无数次其自己所能接受的有限字而形成的无限字”的NBA。记 A = ( Q , Σ , δ , Q 0 , F ) A=(Q,\Sigma,\delta,Q_0,F) A=(Q,Σ,δ,Q0,F)是一个 ϵ ∉ L ( A ) \epsilon \notin \mathcal{L}(A) ϵ/L(A)的NFA,也就是说初态和终态不交即 Q 0 ∩ F = ∅ Q_0 \cap F = \varnothing Q0F=

第一步,初态改造:对所有的初态 q 0 ∈ Q 0 q_0 \in Q_0 q0Q0,如果有进入 q 0 q_0 q0的边,那么就要引入一个新状态 q n e w q_{new} qnew,使得 q n e w q_new qnew q 0 q_0 q0具备相同的识别能力,即经过 q 0 q_0 q0所能识别的字母,能到达相同的状态。

改造后得到的 Q 0 ′ Q_0' Q0将作为最终的NBA的初始状态。

第二步,终态改造:对所有能到达NFA的终态 F F F中的状态的那些转移 q → A q ′ ∈ F q \xrightarrow[]{A} q' \in F qA qF,添加新的转移 q → A q 0 ∈ Q 0 q \xrightarrow[]{A} q_0 \in Q_0 qA q0Q0使其能转移到NFA的初态 Q 0 Q_0 Q0的每个状态上去。

改造后,让 Q 0 Q_0 Q0就作为最终的NBA的可接受状态。在这样的尾首相接后,只有 q 0 ∈ Q 0 q_0 \in Q_0 q0Q0是无限经常次出现的。

得到的NBA即是 A ′ = ( Q , Σ , δ ′ , Q 0 ′ , F ′ ) A'=(Q,\Sigma,\delta',Q_0',F') A=(Q,Σ,δ,Q0,F),如下图是将 A ∗ B A^*B AB ω \omega ω操作变成 ( A ∗ B ) ω (A^*B)^{\omega} (AB)ω的两步过程:

3.6 两NBA的 + + +操作

设定两NBA A 1 A_1 A1 A 2 A_2 A2的字母表都是 Σ \Sigma Σ(如果不是,就取并得到 Σ \Sigma Σ),则:
A 1 + A 2 = ( Q 1 ∪ Q 2 , Σ , δ , Q 0 , 1 ∪ Q 0 , 2 , F 1 ∪ F 2 ) A_1 + A_2 = (Q_1 \cup Q_2, \Sigma, \delta, Q_{0,1} \cup Q_{0,2}, F_1 \cup F_2) A1+A2=(Q1Q2,Σ,δ,Q0,1Q0,2,F1F2)

要求 Q 1 ∪ Q 2 = ∅ Q_1 \cup Q_2 = \varnothing Q1Q2=以防止状态命名出现冲突(如果不是,就把冲突状态改名),则转移关系即取自“是谁的状态,就按谁的转移”,即 δ ( q , A ) = δ i ( q , A ) \delta(q,A)=\delta_i(q,A) δ(q,A)=δi(q,A)

从而 L ω ( A 1 + A 2 ) = L ω ( A 1 )   ∪   L ω ( A 2 ) \mathcal{L}_{\omega}(A_1 + A_2) = \mathcal{L}_{\omega}(A_1) \ \cup \ \mathcal{L}_{\omega}(A_2) Lω(A1+A2)=Lω(A1)  Lω(A2)

3.7 NFA和NBA的连接操作

对NFA A = ( Q , Σ , δ , Q 0 , F ) A=(Q,\Sigma,\delta,Q_0,F) A=(Q,Σ,δ,Q0,F)和NBA A ′ = ( Q ′ , Σ , δ ′ , Q 0 ′ , F ′ ) A'=(Q',\Sigma,\delta',Q_0',F') A=(Q,Σ,δ,Q0,F)其连接为:
A ′ ′ = ( Q ∪ Q ′ , Σ , δ ′ ′ , Q 0 ′ ′ , F ′ ′ ) A''=(Q \cup Q',\Sigma,\delta'',Q_0'',F'') A=(QQ,Σ,δ,Q0,F)

若NFA的终态都不是初态,那么连接后NBA的初态就是NFA的初态。
否则,NFA可接受的语言可以包含空,当取空时,要从NBA的初态 Q 0 ′ Q_0' Q0出发作为新的NBA的初态。
即:
Q 0 ′ ′ = { Q 0              i f   Q 0 ∩ F = ∅ Q 0              o t h e r w i s e Q_0''= \left\{ \begin{aligned} & Q_0 \ \ \ \ \ \ \ \ \ \ \ \ if \ Q_0 \cap F = \varnothing \\ & Q_0 \ \ \ \ \ \ \ \ \ \ \ \ otherwise \end{aligned} \right. Q0={Q0            if Q0F=Q0            otherwise

可接受状态还是NBA的可接受状态。
即:
F ′ ′ = F F'' = F F=F

如果是NFA中原有的转移关系,且转移后不会到达NFA的终止状态,则转移后的状态还是那些。
如果是NFA中原有的转移关系,但转移后会到达NFA的终止状态,则转移后的状态还要包括NBA的初始状态,因为NBA连接在NFA后面。
如果是NBA中原有的转移关系,因为接下来永远都在这个NBA中了,故转移后的状态还是那些。
即:
δ ′ ′ ( q , A ) = { δ ( q , A )              i f   q ∈ Q   a n d   δ ( q , A ) ∩ F = ∅ δ ( q , A ) ∪ Q 0 ′     i f   q ∈ Q   a n d   δ ( q , A ) ∩ F ≠ ∅ δ ( q , A )              i f   q ∈ Q ′ \delta''(q,A)= \left\{ \begin{aligned} & \delta(q,A) \ \ \ \ \ \ \ \ \ \ \ \ if \ q \in Q \ and \ \delta(q,A) \cap F = \varnothing \\ & \delta(q,A) \cup Q_0' \ \ \ if \ q \in Q \ and \ \delta(q,A) \cap F \neq \varnothing \\ & \delta(q,A) \ \ \ \ \ \ \ \ \ \ \ \ if \ q \in Q' \end{aligned} \right. δ(q,A)=δ(q,A)            if qQ and δ(q,A)F=δ(q,A)Q0   if qQ and δ(q,A)F=δ(q,A)            if qQ

例如,下图是一个NFA和NBA的连接,图中红线表示了要把NFA的终态和NBA初态无条件连起来,但是由于转移上必须有字母,所以要将NFA终态的所有前驱添加转移到NBA的所有初态的转移,其字母和转移到NFA终态时所用的字母相同。

3.8 检查NBA所描述的语言是否为空

在这之前,先定义扩展的转移关系。之前使用的转移关系 δ ( q , A ) \delta(q,A) δ(q,A)都是状态 q q q经一个字母 A A A所到达的状态集合,现在扩展到经过一个有限字所到达的状态集合。这很好理解,只给出递归定义:
δ ∗ ( q , ϵ ) = { q } δ ∗ ( q , A ) = δ ( q , A ) δ ∗ ( q , A 1 A 2 . . . A n ) = ⋃ p ∈ δ ( q , A 1 ) δ ∗ ( p , A 2 . . . A n ) \begin{aligned} \delta^*(q,\epsilon) & = \{q\} \\ \delta^*(q,A) & = \delta(q,A) \\ \delta^*(q,A_1A_2...A_n) & = \bigcup_{p\in \delta(q,A_1)} \delta^*(p,A_2...A_n) \end{aligned} δ(q,ϵ)δ(q,A)δ(q,A1A2...An)={q}=δ(q,A)=pδ(q,A1)δ(p,A2...An)

一个NBA可识别的语言 L ( A ) \mathcal{L}(A) L(A)不为空,当且仅当至少存在一个可接受状态,其位置处在从初始状态出发所能到达的环上,即:
∃ q 0 ∈ Q 0 . ∃ q ∈ F . ∃ w ∈ Σ ∗ . ∃ v ∈ Σ + .   q ∈ δ ∗ ( q 0 , w ) ∧ q ∈ δ ∗ ( q , v ) \exists q_0 \in Q_0. \exists q \in F. \exists w \in \Sigma^*. \exists v \in \Sigma^+. \ q \in \delta^*(q_0,w) \wedge q \in \delta^*(q,v) q0Q0.qF.wΣ.vΣ+. qδ(q0,w)qδ(q,v)

画成图直观表示就是:

4 泛化非确定性Büchi自动机(GNBA)

4.1 简述

各种各样的NBA表达能力是一样的,使用GNBA是因为它和temporal logic的关联性更好,GNBA和前面学的NBA很像,仅在可接受状态上有区别。NBA的可接受状态是一个状态集合 F F F,对无限的状态序列,若要它是一个可接受的运行,只要求序列中存在 q ∈ F q\in F qF无限经常次出现即可。

GNBA的可接受状态是一系列状态集合的集合,即 F = { F 1 , . . . , F k } ⊆ 2 Q F=\{ F_1,...,F_k \} \subseteq 2^Q F={F1,...,Fk}2Q限定 k ≥ 0 k \geq 0 k0,要求每个可接受的运行中,都总是存在 q ∈ F i q \in F_i qFi(对所有的 i i i)无限经常次出现。

显然,当k=0时所有运行都是可接受的;当k=1时GNBA就退化为NBA了。

这些可接受运行 q 0 , q 1 , q 2 , . . . q_0,q_1,q_2,... q0,q1,q2,...上识别的字 σ = A 0 , A 1 , . . . \sigma=A_0,A_1,... σ=A0,A1,...,就构成了GNBA的语言。

4.2 GNBA的例子

如下图所示的自动机中,视其为GNBA,且可接受状态集 F = { { q 1 } , { q 2 } } F=\{ \{q_1\}, \{q_2\} \} F={{q1},{q2}},则可以表达每个进程都能无限经常次访问其临界区。

4.3 从GNBA到NBA的转换

对任意GNBA G G G总能找到等效的NBA A A A,使得:
L ω ( G ) = L ω ( A )     a n d     ∣ A ∣ = O ( ∣ G ∣ ⋅ ∣ F ∣ ) \mathcal{L}_{\omega}(G)=\mathcal{L}_{\omega}(A) \ \ \ and \ \ \ |A|=O(|G| \cdot |F|) Lω(G)=Lω(A)   and   A=O(GF)

其中 F F F表示 G G G中的可接受状态集的集合,即 F = { F 1 , . . . , F k } F=\{ F_1,...,F_k \} F={F1,...,Fk},所以 ∣ F ∣ = k |F|=k F=k

注意这里不能理解成 ∣ F ∣ = ∣ ⋃ 1 ≤ i ≤ k F i ∣ |F|=|\bigcup_{1\leq i \leq k}F_i| F=1ikFi

可以直观看到,得到的NBA的状态数目是GNBA的k倍,这正是后面为每个状态都用 1 ≤ i ≤ k 1 \leq i \leq k 1ik标注的结果。

转换到NBA的过程是一个搜索推进的过程,设 G = ( Q , Σ , δ , Q 0 , F ) G=(Q,\Sigma,\delta,Q_0,F) G=(Q,Σ,δ,Q0,F)是GNBA, A = ( Q ′ , Σ ′ , δ ′ , Q 0 ′ , F ′ ) A=(Q',\Sigma',\delta',Q_0',F') A=(Q,Σ,δ,Q0,F)是转换出的NBA,则:

  • Q ′ = Q × { 1 , . . . , k } Q'=Q \times \{ 1,...,k \} Q=Q×{1,...,k},即在记录 i i i标记下要找 F i F_i Fi 1 ≤ i ≤ k 1 \leq i \leq k 1ik)里的终止状态以跳转到下个终止状态集 F i + 1 F_{i+1} Fi+1
  • Q 0 ′ = Q 0 × { 1 } = { ⟨ q 0 , 1 ⟩ ∣ q 0 ∈ Q 0 } Q_0' = Q_0 \times \{1\}=\{\langle q_0,1 \rangle | q_0 \in Q_0 \} Q0=Q0×{1}={q0,1q0Q0},即生成的NBA的初始状态是GNBA的初始状态被标记上1的那些,表示从搜索 F F F中的第一项 F 1 F_1 F1开始。
  • F ′ = F 1 × { 1 } = { ⟨ q F , 1 ⟩ ∣ q F ∈ F 1 } F'=F_1 \times \{1\}=\{\langle q_F,1 \rangle | q_F \in F_1\} F=F1×{1}={qF,1qFF1},即搜索回到 i = 1 i=1 i=1且在 F 1 F_1 F1中时可接受。下一步又会跳转到 i = 2 i=2 i=2去搜索 F 2 F_2 F2继续下一轮推进。

直观表达这个搜索推进的过程,如下:

4.4 转换的例子

例如4.2中的GNBA,转换为NBA如下:

核心就是只要遇到状态 q ∈ F j q \in F_j qFj且当前第二标记 i = j i=j i=j时,接下来的转移就要让第二标记变到 i = ( i + 1 ) % k i=(i+1)\%k i=(i+1)%k上去。

5 验证 ω \omega ω正则性质

5.1 方法论

关于 ω \omega ω正则性质的介绍见2,不再重复。

类似于笔记7中验证正则性质的方法,只是这里是在无限字上使用GNBA作为中介工具。要验证 T S ⊨ P TS \models P TSP,即是验证 T r a c e s ( T S ) ⊆ P Traces(TS) \subseteq P Traces(TS)P,所以应和“性质 P P P在全体无限字上的补集”不交,即:
T r a c e s ( T S ) ∩ ( 2 A P ) ω ∖ P = ∅ Traces(TS) \cap (2^{AP})^{\omega} \setminus P = \varnothing Traces(TS)(2AP)ωP=

其中 ( 2 A P ) ω ∖ P (2^{AP})^{\omega} \setminus P (2AP)ωP简记为 P ‾ \overline{P} P,记 L ω ( A ) \mathcal{L}_{\omega}(A) Lω(A) P ‾ \overline{P} P对应的 ω \omega ω正则语言,其中 A A A是能识别 P ‾ \overline{P} P的一个NBA,从而:
T r a c e s ( T S ) ∩ L ω ( A ) = ∅ Traces(TS) \cap \mathcal{L}_{\omega}(A) = \varnothing Traces(TS)Lω(A)=

这就是在考察同步积:
T S ⊗ A ⊨ " e v e n t u a l l y   f o r e v e r " ¬ F TS \otimes A \models "eventually \ forever" \neg F TSA"eventually forever"¬F

其中【 " e v e n t u a l l y   f o r e v e r " ¬ F "eventually \ forever" \neg F "eventually forever"¬F】表示【最终(从某状态开始,其后的所有状态)会持续满足 ¬ F \neg F ¬F】,这是和【F中有元素无限经常次出现】对立的,也就是在判定【同步积得到的NBA上没有可接受的运行】。

5.2 持续性质(Persistence property)

5.1中提到的"eventually forever"这种陈述,表达的就是一种持续性质,即无限字中存在某个让性质启动的位置 i i i,从那之后的所有字母都满足某一命题 Φ \Phi Φ

持续性质在这门课里最早出现在学习公平性时,见笔记6中2.10节给出的弱公平性的形式化描述。

P p e r s = { A 0 A 1 A 2 . . . ∈ ( 2 A P ) ω   ∣   ∃ i ≥ 0.   ∀ j ≥ i .   A j ⊨ Φ } P_{pers}=\{A_0A_1A_2... \in (2^{AP})^{\omega} \ | \ \exists i \geq 0. \ \forall j \geq i. \ A_j \models \Phi \} Ppers={A0A1A2...(2AP)ω  i0. ji. AjΦ}

其中 Φ \Phi Φ称为该持续性质 P p e r s P_{pers} Ppers的持续性条件。

5.3 构造同步积

构造同步积的过程和之前学的一样,见笔记7中2.4节,只要将其中的NFA改成这里的NBA就可以了。

5.4 验证 ω \omega ω正则性质

T S TS TS是原子命题集 A P AP AP上的TS, P P P A P AP AP上的 ω \omega ω正则性质, A A A是一个non-blocking的NBA满足 L ω ( A ) = P ‾ \mathcal{L}_{\omega}(A)=\overline{P} Lω(A)=P

这里non-blocking指的是对NBA的每个状态q,对每个输入符号A都有向后的转移,即 δ ( q , A ) \delta(q,A) δ(q,A)对所有的 q ∈ Q q\in Q qQ A ∈ Σ = 2 A P A \in \Sigma=2^{AP} AΣ=2AP都不为 ∅ \varnothing

则以下几个命题是等价的:

  • T S ⊨ P TS \models P TSP
  • T r a c e s ( T S ) ∩ L ω ( A ) = ∅ Traces(TS) \cap \mathcal{L}_{\omega}(A)=\varnothing Traces(TS)Lω(A)=
  • T S ⊗ A ⊨ P p e r s ( A ) TS \otimes A \models P_{pers}(A) TSAPpers(A)

其中 P p e r s ( A ) P_{pers}(A) Ppers(A)即是5.1中的 " e v e n t u a l l y   f o r e v e r " ¬ F "eventually \ forever" \neg F "eventually forever"¬F,如此验证 ω \omega ω正则性质就变成了对持续性(persistence)的验证

5.5 对persistence的验证

验证 T S ⊨ P p e r s TS \models P_{pers} TSPpers,即验证在某个位置后 Φ \Phi Φ条件一直满足,其对立面 T S ⊭ P p e r s TS \nvDash P_{pers} TSPpers只要验证是否存在一个可达状态 s ⊭ Φ s \nvDash \Phi sΦ无限经常次出现,即去看看这些不满足 Φ \Phi Φ的状态是否在环路中就可以了。因为若TS能无限经常次访问不满足 Φ \Phi Φ的状态,那么就有 T S ⊭ P p e r s TS \nvDash P_{pers} TSPpers

因此, T S ⊭ P p e r s TS \nvDash P_{pers} TSPpers当且仅当 ∃ s ∈ R e a c h ( T S ) .   s ⊭ Φ \exists s \in Reach(TS) . \ s\nvDash \Phi sReach(TS). sΦ s s s G ( T S ) G(TS) G(TS)中的环上。


特别注意,上面只是对TS满足persistence的分析。具体到本章所学,实际是在同步积上, ω \omega ω正则性质的补被写成一个NBA A A A,同步积 T S ⊗ A TS \otimes A TSA要满足的persistence其实是:
e v e n t u a l l y   f o r e v e r   ¬ F eventually \ forever \ \neg F eventually forever ¬F

所以只要判断的是同步积中状态Label里带有可接受状态 F F F中元素的状态是不是都不在从初态开始的可达环路中即可。


例如,要验证的性质P是【 g r e e n green green无限经常次出现】,则取补后形成的NBA中只有 q 1 q_1 q1是可达状态(下图右上)。

下面这个例子中性质满足,因为同步积得到的TS中两个带 q 1 q_1 q1标记的状态不在初态可达环里:

但在下面这个例子中性质不满足,因为 ⟨ s 2 , q 1 ⟩ ⇌ ⟨ s 0 , q 1 ⟩ \langle s_2, q_1 \rangle \rightleftharpoons \langle s_0, q_1 \rangle s2,q1s0,q1这个包含了可接受状态 q 1 q_1 q1的环是从初态可达的:

5.6 环路检测

可以求图的强连通子图(SCC),或者用书上给出的Nested DFS的方式,后者在验证不通过时更容易求反例。

本文标签: 正则学习笔记模型性质lt