【系统分析与验证笔记】 线性时态逻辑LTL和计算树逻辑CTL

4,723 阅读10分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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

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

线性时间属性(LT property)

  • 一个线性时间属性是在AP上的一组无限路径,我们通常很难直接指出这些属性是什么,但我们可以使用逻辑简洁地指定这些属性的规律,先让我们来看一下直接指出互斥现象和饥饿自由在每个时刻的方法:
    • AP={c1,c2}AP=\{c_1,c_2\}上指定互斥现象的方法:
      • Pmutex=A0A1A2P_{mutex}=A_0A_1A_2\cdots(无限字),且对于0i0\leq i{c1,c2}Ai\{c_1,c_2\}\nsubseteq A_i
    • AP={c1,w1,c2,w2}AP=\{c_1,w_1,c_2,w_2\}上指定饥饿自由的方法:
      • Pnostarve=A0A1A2P_{nostarve}=A_0A_1A_2\cdots(无限字),且 (j.w1Aj)(j.c1Aj)(j.w2Aj)(j.c2Aj)(\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)
  • 互斥现象:两个进程不可以同时进入临界资源
  • 饥饿自由:当我不停的等待进入临界资源的时候,我最终可以不停的进入临界资源
  • LTL的作用:描述LT特性的逻辑,但又不给出具体的时刻,只有时间的相对特性

LTL的语法

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

    • 原子命题:aAPa \in AP
    • 否定律:¬ϕ\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)
    • trueϕψtrue \equiv \phi \vee \psi
    • false¬truefalse \equiv \neg true
    • ϕtrue Uϕ\Diamond \phi \equiv true \ U \phi

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

    • ϕ¬¬ϕ\Box \phi \equiv \neg \Diamond \neg \phi

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

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

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

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

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

    • 互斥现象:¬(c1c2)\Box \neg(c_1 \wedge c_2)
    • 饥饿自由:(w1c1)(w2c2)(\Box \Diamond w_1 \Rightarrow \Box \Diamond c_1) \wedge (\Box \Diamond w_2\Rightarrow \Box \Diamond c_2)

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

LTL的语义

  • 由LTL公式φ\varphi在AP上引起的LT性质为:Words(φ)={σ(2AP)ωσφ}Words(\varphi)=\{\sigma \in (2^{AP})^\omega |\sigma \vDash \varphi \},其中σ\sigma是一个轨迹,σ=A0A1A2\sigma=A_0A_1A_2\cdots,由这个LT性质可以推出如下性质:
    • σtrue\sigma \vDash true,表示路径σ\sigma一定有一条正确的路径
    • σa,iff aA0(i.e.,A0a)\sigma \vDash a,iff \ a\in A_0(i.e.,A_0 \vDash a),表示当且仅当aa是状态集合A0A_0当中的一种可能时,路径σ\sigma中包含aa

      A0A_0包含了初始状态所有的可能,aa只是其中的一种

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

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

    • σ¬φ,iff σφ\sigma \vDash \neg \varphi,iff \ \sigma \nvDash \varphi
    • σφ,iff σ[i..]=A1A2A3φ\sigma \vDash \bigcirc \varphi,iff \ \sigma[i..]=A_1A_2A_3\cdots\vDash \varphi

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

    • σφ,iff j0.σ[j..]φ\sigma \vDash \Diamond \varphi,iff \ \exists j \geqslant 0.\sigma [j..]\vDash \varphi
    • σφ,iff j0.σ[j..]φ\sigma \vDash \Box \varphi,iff \ \forall j \geqslant 0.\sigma [j..]\vDash \varphi
    • σφ,iff j0.σ[i..]φ\sigma \vDash \Box\Diamond \varphi,iff \ \forall j \geqslant 0.\exists \geqslant \sigma [i..]\vDash \varphi
    • σφ,iff j0.σ[i..]φ\sigma \vDash \Diamond\Box \varphi,iff \ \exists j \geqslant 0.\forall \geqslant \sigma [i..]\vDash \varphi
  • 范例: 在这里插入图片描述 根据上图,我们可以推出这个TS的四个性质:
    • 从初始状态开始,每一个状态都满足aa,即TSaTS \vDash \Box a
    • 从初始状态开始,每一个状态都满足,如果该状态不满足bb,则该状态满足a¬ba \wedge \neg b,即TS(¬b(a¬b))TS \vDash \Box (\neg b \Rightarrow \Box(a \wedge \neg b))
    • 从左边的初始状态s1s_1开始,下一个状态可以同时满足aabb,但从右边的初始状态开始,s3s_3的下个状态还是s3s_3s3s_3并不能同时满足aabb,因此TS(ab)TS \nvDash \bigcirc (a \wedge b)
    • 从左边的初始状态s1s_1开始,每一个状态都满足bb,直到满足a¬ba \wedge \neg b时,不再满足bb,但从右边的初始状态开始,并不满足,因此TSb(a¬b)TS \nvDash b \bigcup(a \wedge \neg b)

用LTL表示我们常见的性质

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

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

  • 安全性(Safety):
    • 不变性(invariant):ϕ\Box \phi
  • 活性(Liveness):(ϕψ)and others\Box(\phi \Rightarrow \Diamond \psi) and \ others
  • 公平性(Fairness):ϕ and others\Box \Diamond \phi \ and \ others
  • 等价性(Equivalence):如果Words(ϕ)=Words(ψ)Words(\phi)=Words(\psi),那么ϕ\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
    • 下面的这个例子说明了(ab)≢ab\Diamond(a \wedge b) \not\equiv \Diamond a \wedge \Diamond b在这里插入图片描述 TS(ab)TS\nvDash \Diamond(a \wedge b),但TSab)TS\vDash \Diamond a \wedge \Diamond b)
  • 扩展律(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))

在这篇文章里有对这几个特性的详尽介绍:blog.csdn.net/qq_37400312…

公平性(Fairness)

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

公平性约束(Fairness constraints)

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

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

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

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

      • 解释:当ρ\rho是一个无条件公平性路径时,对于AA中的动作在这条路径上无限经常此执行,比如A={ω}Act{NC,W,C},ρ=s0NCs1Ws2Cs3NCsnNCsmNCA=\{ \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,动作NCNC在路径上经常次执行,这个路径就叫做无条件公平路径
      • 公式: truek0,jk,αjAtrue \Rightarrow \forall k \geqslant 0,\exist j \geqslant k,\alpha_j \in A 对轨迹中的动作序列的任一位置kk,总能在kk上或kk后面找到一个位置jj,该位置的动作αjA\alpha_j \in A
    • 强公平性(Strongly A-fair):若轨迹满足强公平性约束,如果AA中存在的动作无限经常次想要执行,则会导致AA中存在一个或多个动作可以无限经常次执行。

      • 公式: (k0,jk,Act(sj)A)k0,jk,αjA( \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 对轨迹中的状态序列的任一位置kk,若总能在kk上或kk后面找到一个位置jj,使得状态sjs_j的所有直接动作Act(sj)Act(s_j)中存在AA中的动作(即Act(sj)AAct(s_j) \cap A \neq \varnothing,无限经常次想要执行),那么AA中一定存在无限经常次执行的动作
    • 弱公平性(Weakly A-fair):若轨迹满足弱公平性约束,如果AA中的某时刻开始,无限经常次有AA中的动作想要执行,则会导致AA中存在一个或多个动作可以无限经常次执行。

      • 公式: (k0,jk,Act(sj)A)k0,jk,αjA( \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 对轨迹中的状态序列的某一位置kk,若总能在kk上或kk后面找到一个位置jj,使得状态sjs_j的所有直接动作Act(sj)Act(s_j)中存在AA中的动作(即Act(sj)AAct(s_j) \cap A \neq \varnothing,无限经常次想要执行),那么AA中一定存在无限经常次执行的动作

      其中,Act(s)={αActsS,sαs}Act(s) = \{ \alpha \in Act | \exist s' \in S,s\overset{\alpha}{\rightarrow} s' \}

    • 例题一:

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

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

      • 答案:

        • 在红色轨迹中,我们看到,从第一个状态开始,每一个状态都无限经常次想要执行req2req_2,但AA中不存在无限经常次执行的动作,所以这个轨迹不满足弱公平性。
  • 程序或进程在无条件公平性下终止的情况: proc Inc = while x0 do x:=x+1 odproc Reset = 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}

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

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

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

关于公平性的这部分,我在另一篇文章里进行了讲解,但为了方便理解关于LTL的公平性约束问题,我有将这部分内容重新粘贴了过来,另一篇文章的链接为:blog.csdn.net/qq_37400312…

LTL的公平性约束

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

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

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

LTL的公平性假设

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

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

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

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

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

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

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

状态和算子

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

    \bigcirc\bigcup会与\exists\forall交替使用

  • 派生算子:
    • 存在路径满足ϕ\phiϕ(trueϕ)\exists \Diamond \phi \equiv \exists(true \bigcup \phi)
    • 所有路径满足ϕ\phiϕ(trueϕ)\forall \Diamond \phi \equiv \forall (true \bigcup \phi)
    • 存在路径总是满足ϕ\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ψ)¬((ϕ¬ψ)(¬ϕ¬ψ))\forall (\phi W \psi) \equiv \neg \exists((\phi \wedge \neg \psi)\bigcup(\neg \phi \wedge \neg \psi))

语义

语义学的可视化化

在这里插入图片描述

CTL状态公式的语义学

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

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

CTL路径公式的语义学

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

  • πϕiff π[1]ϕ\pi \vDash \bigcirc \phi iff \ \pi [1] \vDash \phi
  • πϕ ψ iff (j0.π[j]ψ0k<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)

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

迁移系统语义

  • 满足CTL状态公式ϕ\phi的集合Sat(ϕ)Sat(\phi)定义为:Sat(ϕ)={sSsϕ}Sat(\phi) =\{s \in S | s \vDash \phi \}
  • 当所有初始状态满足ϕ\phi时,TS满足CTL公式:TSϕ iff s0ϕTS \vDash \phi \ iff \ \forall_{s_0} \vDash \phi

TS可能不满足ϕ\phi也不满足¬ϕ\neg \phi,即TSϕ and TS¬ϕTS \nvDash \phi \ and \ TS \nvDash \neg \phi

CTL的一些常用性质

  • 等价性(equivalence):如果两个CTL:ϕ\phiψ\psiSat(ϕ)=Sat(ψ)Sat(\phi)=Sat(\psi),则ϕ\phiψ\psi等价,即ϕψ\phi \equiv \psi ϕψ iff TSϕTSψ\phi \equiv \psi \ iff \ TS \vDash \phi \wedge TS \vDash \psi

  • 扩展律(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