线性时序逻辑 公式_数据结构c语言版严蔚敏知识点总结[通俗易懂]

线性时序逻辑 公式_数据结构c语言版严蔚敏知识点总结[通俗易懂]本章讲解了LTL和CTL的基本知识点,包括他们的语法规则、语义以及各种性质,LTL是这门课的重点,深入了解了LTL之后,再学习CTL会轻松很多

  • 时态逻辑分为线性时态逻辑和分叉时态逻辑,分叉时态逻辑里面有一种逻辑叫做计算树逻辑

线性时态逻辑(Linear temporal logic,简称LTL)

线性时间属性(LT property)

  • 一个线性时间属性是在AP上的一组无限路径,我们通常很难直接指出这些属性是什么,但我们可以使用逻辑简洁地指定这些属性的规律,先让我们来看一下直接指出互斥现象和饥饿自由在每个时刻的方法:
    • A P = { c 1 , c 2 } AP=\{c_1,c_2\} AP={
      c1,c2}
      上指定互斥现象的方法:

      • P m u t e x = A 0 A 1 A 2 ⋯ P_{mutex}=A_0A_1A_2\cdots Pmutex=A0A1A2(无限字),且对于 0 ≤ i 0\leq i 0i { c 1 , c 2 } ⊈ A i \{c_1,c_2\}\nsubseteq A_i {
        c1,c2}
        Ai
    • A P = { c 1 , w 1 , c 2 , w 2 } AP=\{c_1,w_1,c_2,w_2\} AP={
      c1,w1,c2,w2}
      上指定饥饿自由的方法:

      • P n o s t a r v e = A 0 A 1 A 2 ⋯ P_{nostarve}=A_0A_1A_2\cdots Pnostarve=A0A1A2(无限字),且
        ( ∃ ∞ j . w 1 ∈ A j ) ⇒ ( ∃ ∞ j . c 1 ∈ A j ) ∧ ( ∃ ∞ j . w 2 ∈ A j ) ⇒ ( ∃ ∞ j . c 2 ∈ A j ) (\overset{\infty}{\exists } j.w_1 \in A_j)\Rightarrow (\overset{\infty}{\exists } j.c_1 \in A_j)\wedge (\overset{\infty}{\exists } j.w_2 \in A_j)\Rightarrow(\overset{\infty}{\exists } j.c_2 \in A_j) (j.w1Aj)(j.c1Aj)(j.w2Aj)(j.c2Aj)
  • 互斥现象:两个进程不可以同时进入临界资源
  • 饥饿自由:当我不停的等待进入临界资源的时候,我最终可以不停的进入临界资源
  • LTL的作用:描述LT特性的逻辑,但又不给出具体的时刻,只有时间的相对特性

LTL的语法

  • 命题逻辑:描述系统在某一时刻的静态行为,LTL中最常用的是以下三种:

    • 原子命题: a ∈ A P a \in AP aAP
    • 否定律: ¬ ϕ \neg \phi ¬ϕ
    • 结合律: ϕ ∧ ψ \phi \wedge \psi ϕψ
  • 时态算子:描述系统在轨迹下所具有的性质,最基本的有以下两种:

    • 下一时刻满足 ϕ \phi ϕ ◯ ϕ \bigcirc \phi ϕ,读作next
    • 每一时刻一直满足 ϕ \phi ϕ直到 ψ \psi ψ ϕ ⋃ ψ \phi \bigcup \psi ϕψ,读作until
  • 由命题逻辑和时态算子派生出的算子:

    • ϕ ∨ ψ ≡ ¬ ( ¬ ϕ ∧ ¬ ψ ) \phi \vee \psi \equiv \neg(\neg \phi \wedge \neg \psi) ϕψ¬(¬ϕ¬ψ)
    • ϕ ⇒ ψ ≡ ¬ ϕ ∨ ψ \phi \Rightarrow \psi \equiv \neg \phi \vee \psi ϕψ¬ϕψ
    • ϕ ⇔ ψ ≡ ( ϕ ⇒ ψ ) ∧ ( ψ ⇒ ϕ ) \phi \Leftrightarrow \psi \equiv (\phi \Rightarrow \psi) \wedge (\psi \Rightarrow \phi) ϕψ(ϕψ)(ψϕ)
    • ϕ ⨁ ψ ≡ ( ϕ ∧ ¬ ψ ) ∧ ( ¬ ϕ ∧ ψ ) \phi \bigoplus \psi \equiv (\phi \wedge \neg \psi) \wedge (\neg \phi \wedge \psi) ϕψ(ϕ¬ψ)(¬ϕψ)
    • t r u e ≡ ϕ ∨ ψ true \equiv \phi \vee \psi trueϕψ
    • f a l s e ≡ ¬ t r u e false \equiv \neg true false¬true
    • ◊ ϕ ≡ t r u e   U ϕ \Diamond \phi \equiv true \ U \phi ϕtrue Uϕ

      ◊ \Diamond 读作eventually,表示在未来某刻会满足 ϕ \phi ϕ

    • □ ϕ ≡ ¬ ◊ ¬ ϕ \Box \phi \equiv \neg \Diamond \neg \phi ϕ¬¬ϕ

      □ \Box 读作always,表示在此时起开始会一直满足 ϕ \phi ϕ

  • 这些算子是有优先级的, ¬ , ◯ \neg,\bigcirc ¬,优先执行,其次是 ⋃ \bigcup ,然后是 ∨ , ∧ \vee,\wedge ,,最后是 → \to

  • 对算子的直观解释:
    在这里插入图片描述

    在一条轨迹上,如果从某时刻起,每个时刻只满足 b b b,即便没出现过 a a a,那么该时刻也满足 a ⋃ b a \bigcup b ab

  • 此时,让我们用LTL语言表达互斥现象和饥饿自由在每个时刻的逻辑:

    • 互斥现象: □ ¬ ( c 1 ∧ c 2 ) \Box \neg(c_1 \wedge c_2) ¬(c1c2)
    • 饥饿自由: ( □ ◊ w 1 ⇒ □ ◊ c 1 ) ∧ ( □ ◊ w 2 ⇒ □ ◊ c 2 ) (\Box \Diamond w_1 \Rightarrow \Box \Diamond c_1) \wedge (\Box \Diamond w_2\Rightarrow \Box \Diamond c_2) (w1c1)(w2c2)

    □ ◊ w 1 \Box \Diamond w_1 w1理解方法:先看最外层,把 ◊ w 1 \Diamond w_1 w1看作一个 ϕ \phi ϕ,则 □ ϕ \Box \phi ϕ表示在此时起开始会一直满足 ϕ \phi ϕ;再看内层 ◊ w 1 \Diamond w_1 w1,表示无限经常次满足 w 1 w_1 w1;因此,加起来表示,在此时起开始会一直无限经常次满足 w 1 w_1 w1

LTL的语义

  • 由LTL公式 φ \varphi φ在AP上引起的LT性质为: W o r d s ( φ ) = { σ ∈ ( 2 A P ) ω ∣ σ ⊨ φ } Words(\varphi)=\{\sigma \in (2^{AP})^\omega |\sigma \vDash \varphi \} Words(φ)={
    σ
    (2AP)ωσφ}
    ,其中 σ \sigma σ是一个轨迹, σ = A 0 A 1 A 2 ⋯ \sigma=A_0A_1A_2\cdots σ=A0A1A2,由这个LT性质可以推出如下性质:

    • σ ⊨ t r u e \sigma \vDash true σtrue,表示路径 σ \sigma σ一定有一条正确的路径
    • σ ⊨ a , i f f   a ∈ A 0 ( i . e . , A 0 ⊨ a ) \sigma \vDash a,iff \ a\in A_0(i.e.,A_0 \vDash a) σa,iff aA0(i.e.,A0a),表示当且仅当 a a a是状态集合 A 0 A_0 A0当中的一种可能时,路径 σ \sigma σ中包含 a a a

      A 0 A_0 A0包含了初始状态所有的可能, a a a只是其中的一种

    • σ ⊨ φ 1 ∧ φ , i f f   σ ⊨ φ 1   a n d   σ ⊨ φ 2 \sigma \vDash \varphi_1 \wedge \varphi,iff \ \sigma \vDash \varphi_1 \ and \ \sigma \vDash \varphi_2 σφ1φ,iff σφ1 and σφ2,表示如果路径 σ \sigma σ中包含了状态 φ 1 \varphi_1 φ1 φ 2 \varphi_2 φ2,那么 σ \sigma σ包含 φ 1 ∧ φ 2 \varphi_1 \wedge \varphi_2 φ1φ2

      i . e . i.e. i.e.表示“也就是”

    • σ ⊨ ¬ φ , i f f   σ ⊭ φ \sigma \vDash \neg \varphi,iff \ \sigma \nvDash \varphi σ¬φ,iff σφ
    • σ ⊨ ◯ φ , i f f   σ [ i . . ] = A 1 A 2 A 3 ⋯ ⊨ φ \sigma \vDash \bigcirc \varphi,iff \ \sigma[i..]=A_1A_2A_3\cdots\vDash \varphi σφ,iff σ[i..]=A1A2A3φ

      σ [ i . . ] = A i A i + 1 A i + 2 ⋯ \sigma[i..]=A_iA_{i+1}A_{i+2}\cdots σ[i..]=AiAi+1Ai+2,表示从索引 i i i开始后的 σ \sigma σ的后缀

    • σ ⊨ ◊ φ , i f f   ∃ j ⩾ 0. σ [ j . . ] ⊨ φ \sigma \vDash \Diamond \varphi,iff \ \exists j \geqslant 0.\sigma [j..]\vDash \varphi σφ,iff j0.σ[j..]φ
    • σ ⊨ □ φ , i f f   ∀ j ⩾ 0. σ [ j . . ] ⊨ φ \sigma \vDash \Box \varphi,iff \ \forall j \geqslant 0.\sigma [j..]\vDash \varphi σφ,iff j0.σ[j..]φ
    • σ ⊨ □ ◊ φ , i f f   ∀ j ⩾ 0. ∃ ⩾ σ [ i . . ] ⊨ φ \sigma \vDash \Box\Diamond \varphi,iff \ \forall j \geqslant 0.\exists \geqslant \sigma [i..]\vDash \varphi σφ,iff j0.σ[i..]φ
    • σ ⊨ ◊ □ φ , i f f   ∃ j ⩾ 0. ∀ ⩾ σ [ i . . ] ⊨ φ \sigma \vDash \Diamond\Box \varphi,iff \ \exists j \geqslant 0.\forall \geqslant \sigma [i..]\vDash \varphi σφ,iff j0.σ[i..]φ
  • 范例:
    在这里插入图片描述
    根据上图,我们可以推出这个TS的四个性质:
    • 从初始状态开始,每一个状态都满足 a a a,即 T S ⊨ □ a TS \vDash \Box a TSa
    • 从初始状态开始,每一个状态都满足,如果该状态不满足 b b b,则该状态满足 a ∧ ¬ b a \wedge \neg b a¬b,即 T S ⊨ □ ( ¬ b ⇒ □ ( a ∧ ¬ b ) ) TS \vDash \Box (\neg b \Rightarrow \Box(a \wedge \neg b)) TS(¬b(a¬b))
    • 从左边的初始状态 s 1 s_1 s1开始,下一个状态可以同时满足 a a a b b b,但从右边的初始状态开始, s 3 s_3 s3的下个状态还是 s 3 s_3 s3 s 3 s_3 s3并不能同时满足 a a a b b b,因此 T S ⊭ ◯ ( a ∧ b ) TS \nvDash \bigcirc (a \wedge b) TS(ab)
    • 从左边的初始状态 s 1 s_1 s1开始,每一个状态都满足 b b b,直到满足 a ∧ ¬ b a \wedge \neg b a¬b时,不再满足 b b b,但从右边的初始状态开始,并不满足,因此 T S ⊭ b ⋃ ( a ∧ ¬ b ) TS \nvDash b \bigcup(a \wedge \neg b) TSb(a¬b)

用LTL表示我们常见的性质

  • 可达性(Reachability)
    • 简单的可达性(simple reachability): ◊ ψ \Diamond \psi ψ
    • 多条件的可达性(conditional reachability): ϕ ⋃ ψ \phi \bigcup \psi ϕψ

    TS系统可以既不满足 ◊ a \Diamond a a也不满足 ¬ ◊ a \neg \Diamond a ¬a
    在这里插入图片描述

  • 安全性(Safety):
    • 不变性(invariant): □ ϕ \Box \phi ϕ
  • 活性(Liveness): □ ( ϕ ⇒ ◊ ψ ) a n d   o t h e r s \Box(\phi \Rightarrow \Diamond \psi) and \ others (ϕψ)and others
  • 公平性(Fairness): □ ◊ ϕ   a n d   o t h e r s \Box \Diamond \phi \ and \ others ϕ and others
  • 等价性(Equivalence):如果 W o r d s ( ϕ ) = W o r d s ( ψ ) Words(\phi)=Words(\psi) Words(ϕ)=Words(ψ),那么 ϕ \phi ϕ ψ \psi ψ等价,表示为 ϕ ≡ ψ \phi \equiv\psi ϕψ
  • 对偶性定律(Duality law):
    • ¬ □ ϕ ≡ ◊ ¬ ϕ \neg \Box \phi \equiv \Diamond \neg \phi ¬ϕ¬ϕ
    • ¬ ◊ ϕ ≡ □ ¬ ϕ \neg \Diamond \phi \equiv \Box \neg \phi ¬ϕ¬ϕ
    • ¬ ◯ ϕ ≡ ◯ ¬ ϕ \neg \bigcirc \phi \equiv \bigcirc \neg \phi ¬ϕ¬ϕ
  • 对偶性定律(Idempotency law):
    • □ □ ϕ ≡ □ ϕ \Box \Box \phi \equiv \Box \phi ϕϕ
    • ◊ ◊ ϕ ≡ ◊ ϕ \Diamond \Diamond \phi \equiv \Diamond \phi ϕϕ
    • ϕ ⋃ ( ϕ ⋃ ψ ) ≡ ϕ ⋃ ψ \phi \bigcup ( \phi \bigcup \psi) \equiv \phi \bigcup \psi ϕ(ϕψ)ϕψ
    • ( ϕ ⋃ ψ ) ⋃ ψ ≡ ϕ ⋃ ψ (\phi \bigcup \psi) \bigcup \psi \equiv \phi \bigcup \psi (ϕψ)ψϕψ
  • 吸收律(Absorption law):
    • ◊ □ ◊ ϕ ≡ □ ◊ ϕ \Diamond \Box \Diamond \phi \equiv \Box \Diamond \phi ϕϕ
    • □ ◊ □ ϕ ≡ ◊ □ ϕ \Box \Diamond \Box \phi \equiv \Diamond \Box \phi ϕϕ
  • 分布律(Distribution law):
    • ◯ ( ϕ ⋃ ψ ) ≡ ( ◯ ϕ ) ⋃ ( ◯ ψ ) \bigcirc(\phi \bigcup \psi) \equiv (\bigcirc \phi) \bigcup (\bigcirc \psi) (ϕψ)(ϕ)(ψ)
    • ◊ ( ϕ ∨ ψ ) ≡ ◊ ϕ ∨ ◊ ψ \Diamond(\phi \vee\psi) \equiv \Diamond \phi \vee \Diamond \psi (ϕψ)ϕψ
    • □ ( ϕ ∧ ψ ) ≡ □ ϕ ∧ □ ψ \Box(\phi \wedge \psi) \equiv \Box \phi \wedge \Box \psi (ϕψ)ϕψ

    注意:

    • ◊ ( ϕ ⋃ ψ ) ≢ ( ◊ ϕ ) ⋃ ( ◊ ψ ) \Diamond(\phi \bigcup \psi) \not\equiv (\Diamond\phi) \bigcup (\Diamond\psi) (ϕψ)(ϕ)(ψ)
    • ◊ ( ϕ ∧ ψ ) ≢ ◊ ϕ ∧ ◊ ψ \Diamond(\phi \wedge \psi) \not\equiv \Diamond\phi \wedge \Diamond\psi (ϕψ)ϕψ
    • □ ( ϕ ∨ ψ ) ≢ □ ϕ ∨ □ ψ \Box(\phi \vee \psi) \not\equiv \Box \phi \vee \Box \psi (ϕψ)ϕψ
    • 下面的这个例子说明了 ◊ ( a ∧ b ) ≢ ◊ a ∧ ◊ b \Diamond(a \wedge b) \not\equiv \Diamond a \wedge \Diamond b (ab)ab
      在这里插入图片描述
      T S ⊭ ◊ ( a ∧ b ) TS\nvDash \Diamond(a \wedge b) TS(ab),但 T S ⊨ ◊ a ∧ ◊ b ) TS\vDash \Diamond a \wedge \Diamond b) TSab)
  • 扩展律(Expansion laws):
    • ϕ ⋃ ψ ≡ ψ ∨ ( ϕ ∧ ◯ ( ϕ ⋃ ψ ) ) \phi \bigcup \psi \equiv \psi \vee ( \phi \wedge \bigcirc ( \phi \bigcup \psi)) ϕψψ(ϕ(ϕψ))
    • ◊ ϕ ≡ ϕ ∨ ◯ ◊ ϕ ) ) \Diamond \phi \equiv \phi \vee \bigcirc \Diamond \phi)) ϕϕϕ))
    • □ ϕ ≡ ϕ ∧ ◯ □ ϕ ) ) \Box \phi \equiv \phi \wedge \bigcirc \Box \phi)) ϕϕϕ))

在这篇文章里有对这几个特性的详尽介绍:【系统分析与验证笔记】 线性时态逻辑LTL和计算树逻辑CTL

公平性(Fairness)

  • 定义:一条路径执行过程中所有过程均符合实际情况,则表示这个路径具有了公平性。
    • 对于不满足公平性的路径,可以将不合实际的情况过程剔除,路径便具有了公平性。
    • 无饥饿性通常是在公平性的条件下产生的。
    • 公平性通常是建立活性问题的必要手段。
  • 生活实例:
    • 对于十字路口的两个红绿灯进程进程交错执行: T S = T r L i g h t 1 ∣ ∣ T r L i g h t 2 TS = TrLight_1||TrLight_2 TS=TrLight1TrLight2,给定一个活性性质的自然语言描述为:每个红绿灯都无限经常次处于绿灯的状态。这条性质表示红绿灯在无限次状态转化的过程中,会有无限次处于绿灯的状态。
      • 轨迹: { r e d 1 , r e d 2 } , { g r e e n 1 , r e d 2 } , { r e d 1 , g r e e n 2 } , { g r e e n 1 , r e d 2 } ⋯ \{red_1,red_2\},\{green_1,red_2\},\{red_1,green_2\},\{green_1,red_2\}\cdots {
        red1,red2},{
        green1,red2},{
        red1,green2},{
        green1,red2}
        ,像这样的轨迹,满足刚才我们所说的活性,那么这条轨迹也具有安全性。
      • 轨迹: { r e d 1 , r e d 2 } , { g r e e n 1 , r e d 2 } , { r e d 1 , r e d 2 } , { g r e e n 1 , r e d 2 } ⋯ \{red_1,red_2\},\{green_1,red_2\},\{red_1,red_2\},\{green_1,red_2\}\cdots {
        red1,red2},{
        green1,red2},{
        red1,red2},{
        green1,red2}
        ,像这样的轨迹,第二个红绿灯永远为红色,不满足刚才我们所说的活性,那么这条轨迹不具有安全性。

公平性约束(Fairness constraints)

  • 解释:一个程序,有一些路径永远不会执行,那么,不管这些路径执行后是正确还是错误,我们都不需要去验证它,所以我们在验证的过程中,需要加上一些约束,来避免我们去验证一些永远不会走的路径,这个约束,我们称之为公平性约束

  • 基于动作的公平性用A-fair表示,有三种情况:无条件公平性、强公平性、弱公平性

    • 对于一个没有初始状态的 T S = ( S , A c t , → , I , A P , L ) TS = (S,Act,\to,I,AP,L) TS=(S,Act,,I,AP,L)

      • 无初始状态
      • A ⊆ A c t A \subseteq Act AAct
      • 无限执行片段 ρ = s 0 → α 0 s 1 → α 1 s 2 ⋯ \rho = s_0 \overset{\alpha_0}{\rightarrow} s_1 \overset{\alpha_1}{\rightarrow} s_2\cdots ρ=s0α0s1α1s2
    • 无条件公平性约束(Unconditional A-fair):若轨迹满足无条件公平性约束,则 A A A中存在的一个或多个动作可以无限经常次执行。

      • 解释:当 ρ \rho ρ是一个无条件公平性路径时,对于 A A A中的动作在这条路径上无限经常此执行,比如 A = { ω } ⊆ A c t { N C , W , C } , ρ = s 0 → N C s 1 → W s 2 → C s 3 → N C ⋯ s n → N C ⋯ s m → N C ⋯ A=\{ \omega \} \subseteq Act\{ NC,W,C \},\rho=s_0 \overset{NC}{\rightarrow}s_1\overset{W}{\rightarrow}s_2\overset{C}{\rightarrow}s_3\overset{NC}{\rightarrow}\cdots s_n\overset{NC}{\rightarrow}\cdots s_m \overset{NC}{\rightarrow}\cdots A={
        ω}
        Act{
        NC,W,C},ρ=
        s0NCs1Ws2Cs3NCsnNCsmNC
        ,动作 N C NC NC在路径上经常次执行,这个路径就叫做无条件公平路径
      • 公式:
        t r u e ⇒ ∀ k ⩾ 0 , ∃ j ⩾ k , α j ∈ A true \Rightarrow \forall k \geqslant 0,\exist j \geqslant k,\alpha_j \in A truek0,jk,αjA
        对轨迹中的动作序列的任一位置 k k k,总能在 k k k上或 k k k后面找到一个位置 j j j,该位置的动作 α j ∈ A \alpha_j \in A αjA
    • 强公平性(Strongly A-fair):若轨迹满足强公平性约束,如果 A A A中存在的动作无限经常次想要执行,则会导致 A A A中存在一个或多个动作可以无限经常次执行。

      • 公式:
        ( ∀ k ⩾ 0 , ∃ j ⩾ k , A c t ( s j ) ∩ A ≠ ∅ ) ⇒ ∀ k ⩾ 0 , ∃ j ⩾ k , α j ∈ A ( \forall k \geqslant 0,\exist j \geqslant k,Act(s_j) \cap A \neq \varnothing ) \Rightarrow \forall k \geqslant 0,\exist j \geqslant k,\alpha_j \in A (k0,jk,Act(sj)A=)k0,jk,αjA
        对轨迹中的状态序列的任一位置 k k k,若总能在 k k k上或 k k k后面找到一个位置 j j j,使得状态 s j s_j sj的所有直接动作 A c t ( s j ) Act(s_j) Act(sj)中存在 A A A中的动作(即 A c t ( s j ) ∩ A ≠ ∅ Act(s_j) \cap A \neq \varnothing Act(sj)A=,无限经常次想要执行),那么 A A A中一定存在无限经常次执行的动作
    • 弱公平性(Weakly A-fair):若轨迹满足弱公平性约束,如果 A A A中的某时刻开始,无限经常次有 A A A中的动作想要执行,则会导致 A A A中存在一个或多个动作可以无限经常次执行。

      • 公式:
        ( ∃ k ⩾ 0 , ∀ j ⩾ k , A c t ( s j ) ∩ A ≠ ∅ ) ⇒ ∀ k ⩾ 0 , ∃ j ⩾ k , α j ∈ A ( \exist k \geqslant 0,\forall j \geqslant k,Act(s_j) \cap A \neq \varnothing ) \Rightarrow \forall k \geqslant 0,\exist j \geqslant k,\alpha_j \in A (k0,jk,Act(sj)A=)k0,jk,αjA
        对轨迹中的状态序列的某一位置 k k k,若总能在 k k k上或 k k k后面找到一个位置 j j j,使得状态 s j s_j sj的所有直接动作 A c t ( s j ) Act(s_j) Act(sj)中存在 A A A中的动作(即 A c t ( s j ) ∩ A ≠ ∅ Act(s_j) \cap A \neq \varnothing Act(sj)A=,无限经常次想要执行),那么 A A A中一定存在无限经常次执行的动作

      其中, A c t ( s ) = { α ∈ A c t ∣ ∃ s ′ ∈ S , s → α s ′ } Act(s) = \{ \alpha \in Act | \exist s’ \in S,s\overset{\alpha}{\rightarrow} s’ \} Act(s)={
      α
      ActsS,sαs}

    • 例题一:

      • 取动作 A = { e n t e r 1 , e n t e r 2 } A=\{enter_1,enter_2 \} A={
        enter1,enter2}
        ,判断下面的红色轨迹是否满足强公平性?(红色轨迹从第2个位置开始,234位置的状态轮以闭圈的形式无限次执行)
        在这里插入图片描述
      • 答案:
        • 在红色轨迹中,我们看到,状态 ⟨ w 1 , n 2 , y = 1 ⟩ \left \langle w_1,n_2,y=1 \right \rangle w1,n2,y=1无限次想要执行 e n t e r 1 enter_1 enter1,状态 ⟨ w 1 , w 2 , y = 1 ⟩ \left \langle w_1,w_2,y=1 \right \rangle w1,w2,y=1无限次想要执行 e n t e r 1 enter_1 enter1 e n t e r 2 enter_2 enter2,轨迹最终的结果是无限经常次执行 e n t e r 2 enter_2 enter2,所以这个轨迹满足强公平性。
    • 例题二:

      • 取动作 A = { r e q 2 } A=\{req_2 \} A={
        req2}
        ,判断下面的红色轨迹是否满足弱公平性?(红色轨迹从第1个位置开始,123位置的状态轮以闭圈的形式无限次执行)
        在这里插入图片描述

      • 答案:

        • 在红色轨迹中,我们看到,从第一个状态开始,每一个状态都无限经常次想要执行 r e q 2 req_2 req2,但 A A A中不存在无限经常次执行的动作,所以这个轨迹不满足弱公平性。
  • 程序或进程在无条件公平性下终止的情况:
    p r o c   I n c   =   w h i l e   ⟨ x ⩾ 0   d o   x : = x + 1 ⟩   o d p r o c   R e s e t   =   x : = − 1 \begin{aligned} proc \ Inc \ =& \ while \ \left \langle x \geqslant 0 \ do \ x := x + 1 \right \rangle \ od \\ proc \ Reset \ = & \ x := −1 \end{aligned} proc Inc =proc Reset = while x0 do x:=x+1 od x:=1

    x x x是共享变量,初始值为0

  • 公平性对路径的约束过强或过弱

    • 公平性的目的是排除“不合理”的路径,但如果我们去除了过度或者取出不足时,对验证结果会产生一定的影响。
    • 约束过强(去除过度时):
      • 总的路径 ⊆ \subseteq 合理的路径 ⊆ \subseteq 验证用的路径
      • 如果验证结果为false,则可以说明合理的路径对应的模型是有问题的
      • 如果验证的结果为true,无法说明合理的路径对应的模型是正确的
    • 约束过弱(去除不足时):
      • 总的路径 ⊆ \subseteq 验证用的路径 ⊆ \subseteq 合理的路径
      • 如果验证结果为true,则可以说明合理的路径对应的模型是正确的
      • 如果验证的结果为false,无法说明合理的路径对应的模型是错误的

关于公平性的这部分,我在另一篇文章里进行了讲解,但为了方便理解关于LTL的公平性约束问题,我有将这部分内容重新粘贴了过来,另一篇文章的链接为:【系统分析与验证笔记】 线性时态逻辑LTL和计算树逻辑CTL

LTL的公平性约束

假设 ϕ \phi ϕ ψ \psi ψ是在AP上的命题逻辑公式,则

  • 无条件的LTL公平性约束的形式如下: u f a i r = □ ◊ ψ ufair = \Box \Diamond \psi ufair=ψ
  • 强LTL公平性约束的形式如下: s f a i r = □ ◊ ϕ → □ ◊ ψ sfair = \Box \Diamond \phi \to \Box \Diamond \psi sfair=ϕψ,从此刻起每时每刻都会想要在未来某时刻想要执行 ϕ \phi ϕ,则从此刻起每时每刻都会能够在未来某时刻能够执行 ψ \psi ψ
  • 弱LTL公平性约束的形式如下: w f a i r = ◊ □ ϕ → ◊ □ ψ wfair = \Diamond \Box \phi \to \Diamond \Box \psi wfair=ϕψ,在未来某一时刻起会一直想要执行 ϕ \phi ϕ,则在在未来某一时刻会一直能够执行 ψ \psi ψ

ϕ \phi ϕ表示想要执行, ψ \psi ψ表示能够执行

LTL的公平性假设

  • 强公平性假设: s f a i r = ⋃ 0 < i ⩽ k ( □ ◊ ϕ i → □ ◊ ψ i ) sfair=\underset{0<i\leqslant k}{\bigcup}(\Box\Diamond \phi_i \to \Box\Diamond \psi_i) sfair=0<ik(ϕiψi)
  • 通用格式: f a i r = u f a i r ∧ s f a i r ∧ w f a i r fair = ufair \wedge sfair \wedge wfair fair=ufairsfairwfair
  • 经验法则:强或无条件公平性假设有利于解决争议,弱的公平性足以解决由交织产生的不决定性

计算树逻辑( Computation tree logic,简称CTL)

线性时态逻辑和分支时态逻辑

  • 线性时态逻辑:以状态开始的(所有)路径的语句。例如:
    • s ⊨ □ ( x ⩽ 20 ) s \vDash \Box(x \leqslant 20) s(x20),表示从s开始的所有路径都满足 x ⩽ 20 x\leqslant 20 x20
  • 分支时态逻辑:关于以一个状态开始的所有或某些路径的语句。例如:
    • s ⊨ ∀ □ ( x ⩽ 20 ) s \vDash \forall \Box (x \leqslant 20) s(x20),表示从s开始的所有路径都满足 x ⩽ 20 x\leqslant 20 x20
    • s ⊨ ∃ □ ( x ⩽ 20 ) s \vDash \exists \Box (x \leqslant 20) s(x20),表示从s开始存在路径满足 x ⩽ 20 x\leqslant 20 x20

检查LTL中是否有 ∃ φ \exists \varphi φ,可以用CTL的 ∀ ¬ φ \forall \neg \varphi ¬φ检测

转移系统(Transition systems)到树(Trees)的转换

Transition systems:
在这里插入图片描述
Trees:
在这里插入图片描述
我们看到,这个Transition systems有着无穷无尽的路径,我们用数来表示各个路径,但没有办法将其全部表示出来,图中表示了前四次转移,虽然没有办法全部表示,但我们可以根据Transition systems来判断某条路径是否满足某性质。

状态和算子

  • 状态上的语句:
    • 原子命题: a ∈ A P a \in AP aAP
    • 否定律: ¬ ϕ \neg \phi ¬ϕ
    • 结合律: ϕ ∧ ψ \phi \wedge \psi ϕψ
    • 存在一条实现 ϕ \phi ϕ的路径: ∃ ϕ \exists \phi ϕ
    • 所有路径都可以实现 ϕ \phi ϕ ∀ ϕ \forall \phi ϕ
  • 路径上的语句:
    • 下一个状态满足: ◯ ϕ \bigcirc \phi ϕ
    • ϕ \phi ϕ一直满足直到 ψ \psi ψ满足: ϕ ⋃ ψ \phi \bigcup \psi ϕψ

    ◯ \bigcirc ⋃ \bigcup 会与 ∃ \exists ∀ \forall 交替使用

  • 派生算子:
    • 存在路径满足 ϕ \phi ϕ ∃ ◊ ϕ ≡ ∃ ( t r u e ⋃ ϕ ) \exists \Diamond \phi \equiv \exists(true \bigcup \phi) ϕ(trueϕ)
    • 所有路径满足 ϕ \phi ϕ ∀ ◊ ϕ ≡ ∀ ( t r u e ⋃ ϕ ) \forall \Diamond \phi \equiv \forall (true \bigcup \phi) ϕ(trueϕ)
    • 存在路径总是满足 ϕ \phi ϕ ∃ □ ϕ ≡ ¬ ∀ ◊ ¬ ϕ \exists \Box \phi \equiv \neg \forall \Diamond \neg \phi ϕ¬¬ϕ
    • 所有路径总是满足 ϕ \phi ϕ ∀ □ ϕ ≡ ¬ ∃ ◊ ¬ ϕ \forall \Box \phi \equiv \neg \exists \Diamond \neg \phi ϕ¬¬ϕ
    • 弱直到:
      ∃ ( ϕ W ψ ) ≡ ¬ ∀ ( ( ϕ ∧ ¬ ψ ) ⋃ ( ¬ ϕ ∧ ¬ ψ ) ) \exists(\phi W \psi) \equiv \neg \forall ((\phi \wedge \neg \psi)\bigcup(\neg \phi \wedge \neg \psi)) (ϕWψ)¬((ϕ¬ψ)(¬ϕ¬ψ))
      ∀ ( ϕ W ψ ) ≡ ¬ ∃ ( ( ϕ ∧ ¬ ψ ) ⋃ ( ¬ ϕ ∧ ¬ ψ ) ) \forall (\phi W \psi) \equiv \neg \exists((\phi \wedge \neg \psi)\bigcup(\neg \phi \wedge \neg \psi)) (ϕWψ)¬((ϕ¬ψ)(¬ϕ¬ψ))

语义

语义学的可视化化

在这里插入图片描述

CTL状态公式的语义学

s ⊨ ϕ s \vDash \phi sϕ表示当且仅当公式 ϕ \phi ϕ在状态 s s s中成立

  • s ⊨ a s \vDash a sa,在 a a a属于从状态 s s s出发的路径中的一条路径时,时成立,即 a ∈ L ( s ) a \in L(s) aL(s)
  • s ⊨ ¬ ϕ s \vDash \neg \phi s¬ϕ i f f   ¬ ( s ⊨ ϕ ) iff \ \neg (s \vDash \phi) iff ¬(sϕ)
  • s ⊨ ¬ ϕ s \vDash \neg \phi s¬ϕ i f f   ( s ⊨ ϕ ) ( s ⊨ ψ ) iff \ (s \vDash \phi) (s \vDash \psi) iff (sϕ)(sψ)
  • s ⊨ ∃ ϕ s \vDash \exists \phi sϕ i f f   iff ~ iff  s s s开始的一些路径 π \pi π满足 π ⊨ ϕ \pi \vDash \phi πϕ
  • s ⊨ ∀ ϕ s \vDash \forall \phi sϕ i f f   iff ~ iff  s s s开始的所有路径 π \pi π满足 π ⊨ ϕ \pi \vDash \phi πϕ

CTL路径公式的语义学

π ⊨ ϕ \pi \vDash \phi πϕ表示路径 π \pi π满足公式 ϕ \phi ϕ

  • π ⊨ ◯ ϕ i f f   π [ 1 ] ⊨ ϕ \pi \vDash \bigcirc \phi iff \ \pi [1] \vDash \phi πϕiff π[1]ϕ
  • π ⊨ ϕ   ⋃ ψ   i f f   ( ∃ j ⩾ 0. π [ j ] ⊨ ψ ∧ ∀ 0 ⩽ k < j . π [ k ] ⊨ ϕ ) \pi \vDash \phi \ \bigcup \psi \ iff \ (\exists j \geqslant 0.\pi [j] \vDash \psi \wedge \forall 0 \leqslant k <j.\pi[k]\vDash \phi) πϕ ψ iff (j0.π[j]ψ0k<j.π[k]ϕ)

π [ i ] \pi[i] π[i]表示在路径 π \pi π上面的状态 s i s_i si

迁移系统语义

  • 满足CTL状态公式 ϕ \phi ϕ的集合 S a t ( ϕ ) Sat(\phi) Sat(ϕ)定义为: S a t ( ϕ ) = { s ∈ S ∣ s ⊨ ϕ } Sat(\phi) =\{s \in S | s \vDash \phi \} Sat(ϕ)={
    s
    Ssϕ}
  • 当所有初始状态满足 ϕ \phi ϕ时,TS满足CTL公式: T S ⊨ ϕ   i f f   ∀ s 0 ⊨ ϕ TS \vDash \phi \ iff \ \forall_{s_0} \vDash \phi TSϕ iff s0ϕ

TS可能不满足 ϕ \phi ϕ也不满足 ¬ ϕ \neg \phi ¬ϕ,即 T S ⊭ ϕ   a n d   T S ⊭ ¬ ϕ TS \nvDash \phi \ and \ TS \nvDash \neg \phi TSϕ and TS¬ϕ

CTL的一些常用性质

  • 等价性(equivalence):如果两个CTL: ϕ \phi ϕ ψ \psi ψ S a t ( ϕ ) = S a t ( ψ ) Sat(\phi)=Sat(\psi) Sat(ϕ)=Sat(ψ),则 ϕ \phi ϕ ψ \psi ψ等价,即 ϕ ≡ ψ \phi \equiv \psi ϕψ
    ϕ ≡ ψ   i f f   T S ⊨ ϕ ∧ T S ⊨ ψ \phi \equiv \psi \ iff \ TS \vDash \phi \wedge TS \vDash \psi ϕψ iff TSϕTSψ

  • 扩展律(Expansion laws)

    • ∀ ( ϕ ⋃ ψ ) ≡ ψ ∨ ( ϕ ∧ ∀ ◯ ∀ ( ϕ ⋃ ψ ) ) \forall (\phi \bigcup \psi) \equiv \psi \vee (\phi \wedge \forall \bigcirc \forall (\phi \bigcup \psi)) (ϕψ)ψ(ϕ(ϕψ))
    • ∀ ◊ ϕ ≡ ϕ ∨ ∀ ◯ ∀ ◊ ϕ \forall \Diamond \phi \equiv \phi \vee \forall \bigcirc \forall \Diamond \phi ϕϕϕ
    • ∀ □ ϕ ≡ ϕ ∧ ∀ ◯ ∀ □ ϕ \forall \Box \phi \equiv \phi \wedge \forall \bigcirc \forall \Box \phi ϕϕϕ
    • ∃ ( ϕ ⋃ ψ ) ≡ ψ ∨ ( ϕ ∧ ∀ ◯ ∀ ( ϕ ⋃ ψ ) ) \exists (\phi \bigcup \psi) \equiv \psi \vee (\phi \wedge \forall \bigcirc \forall (\phi \bigcup \psi)) (ϕψ)ψ(ϕ(ϕψ))
    • ∃ ◊ ϕ ≡ ϕ ∨ ∃ ◯ ∃ ◊ ϕ \exists \Diamond \phi \equiv \phi \vee \exists \bigcirc \exists \Diamond \phi ϕϕϕ
    • ∃ □ ϕ ≡ ϕ ∧ ∃ ◯ ∃ □ ϕ \exists \Box \phi \equiv \phi \wedge \exists \bigcirc \exists \Box \phi ϕϕϕ
  • 分布律(Distributive laws)

    • ∀ □ ( ϕ ∧ ψ ) ≡ ∀ □ ϕ ∧ ∀ □ ψ \forall \Box(\phi \wedge \psi) \equiv \forall \Box \phi \wedge \forall \Box \psi (ϕψ)ϕψ
    • ∃ ◊ ( ϕ ∨ ψ ) ≡ ∃ ◊ ϕ ∨ ∃ ◊ ψ \exists \Diamond (\phi \vee \psi) \equiv \exists \Diamond \phi \vee \exists \Diamond \psi (ϕψ)ϕψ
    • ∃ □ ( ϕ ∧ ψ ) ≢ ∃ □ ϕ ∧ ∃ □ ψ \exists \Box(\phi \wedge \psi) \not\equiv \exists \Box \phi \wedge \exists \Box \psi (ϕψ)ϕψ
    • ∀ ◊ ( ϕ ∨ ψ ) ≡ ∀ ◊ ϕ ∨ ∀ ◊ ψ \forall \Diamond (\phi \vee \psi) \equiv \forall \Diamond \phi \vee \forall \Diamond \psi (ϕψ)ϕψ

今天的文章线性时序逻辑 公式_数据结构c语言版严蔚敏知识点总结[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/84378.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注