【面向计算机的数理逻辑/软件理论基础笔记】计算树逻辑CTL

255 阅读4分钟

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

计算树逻辑(Computation Tree Logic,简写CTL)

  • 个人理解:说到树,我联想到最多的就是数据结构里面的树,一个结点对应着多个分支结点,而这个计算树逻辑,和数据结构里面的树有些类似。我们可以把当前时间看作是根节点,下面的不同分支,都是未来某一时刻的可能性,比如我要去学校,我会经过出门这个根节点,但我可能会骑自行车或乘坐大巴这两种方式去学校,也就是两个不同的子节点,根据选择的不同方式,引发更多的子节点。
  • 定义:计算树逻辑是一种分支时间逻辑,即它的时间模型是一个树状结构,其中未来是不确定的。未来有不同的路径,其中的任何一个都可能是现实的“实际”路径。

CTL语法

ϕ::=p(¬ϕ)(ϕϕ)(ϕϕ)(ϕϕ)(AXϕ)(EXϕ)(AFϕ)(EFϕ)(AGϕ)(EGϕ)A[(ϕUϕ)]E[(ϕUϕ)]\phi ::= \perp | \top | p| (\neg \phi) | (\phi \wedge \phi)| (\phi \vee\phi)| (\phi \to \phi) | (AX \phi)| (EX \phi)| (AF \phi)| (EF \phi)| (AG \phi)| (EG \phi)| A[(\phi U \phi)]|| E[(\phi U \phi)]

  • AAEE表示路径量词,AA表示所有的路,EE表示存在一条路
  • 在CTL公式中,时态连接词前面必须要跟路径量词AAEE
  • 解释下列CTL公式:
    • EFqEFq:路径上存在一个满足qq的可达状态
    • AG(pE[pUq])AG(p \to E[pUq]):对于所有满足pp的状态出发,都有“一直保持pp直到满足qq”的状态出现(后一句也可以说是:都存在“一直保持pp直到满足qq”的状态)
    • AG(pEGq)AG(p \to EGq):只要满足pp的状态出现,就有系统能永远保持qq(也可以理解为:对于所有满足pp的状态也都存在满足qq的状态)
    • EFAGqEFAGq:有一可达的状态使得从此状态出发的所有可达状态都满足qq
    • 进程总可以请求进入它的界区:AG(rEXt)AG(r \to EXt)(也可以理解为:对于所有满足rr的状态都存在下一个状态满足tt
    • 对于任何状态,若一个请求出现则这个请求最终会被接受:AG(请求AF接受)AG(请求 \to AF 接受)
    • 一部在 2 楼且处于上升的电梯,当有乘客在想到 5 楼时,电梯不会改变上升方向直到 5 楼:AG(2上升按下5楼按钮A[上升U5])AG(2 楼 \wedge 上升 \wedge 按下 5 楼按钮 \to A[上升U5 楼])
    • 从任何状态出发总能到达重启状态:AG(EF重启)AG(EF重启)

CTL语义

  • 给定模型M=(S,,L),sS\mathcal{M} = (S, \to, L), s \in Sϕ\phi是 CTL 公式。以ϕ\phi的结构归纳定义M,sϕ\mathcal{M},s \vDash \phi如下:

    • M,s\mathcal{M},s \vDash \top

    • M,s\mathcal{M},s \nvDash \perp

    • M,sp\mathcal{M},s \vDash p当且仅当pL(s)p \in L(s)

    • M,s¬ϕ\mathcal{M},s \vDash \neg \phi当且仅当M,sϕ\mathcal{M},s \nvDash \phi

    • M,sϕψ\mathcal{M},s \vDash \phi \wedge \psi当且仅当M,sϕ\mathcal{M},s \vDash \phiM,sψ\mathcal{M},s \vDash \psi

    • M,sϕψ\mathcal{M},s \vDash \phi \vee \psi当且仅当M,sϕ\mathcal{M},s \vDash \phiM,sψ\mathcal{M},s \vDash \psi

    • M,sϕψ\mathcal{M},s \vDash \phi \to \psi当且仅当M,sϕ\mathcal{M},s \vDash \phiM,sψ\mathcal{M},s \vDash \psi

    • M,sAXϕ\mathcal{M},s \vDash AX \phi当且仅当对于所有的ss1s \to s_1,有M,s1ϕ\mathcal{M},s_1 \vDash \phi

      • M,s0AXϕ\mathcal{M},s_0 \vDash AX \phi可以理解为:s0s_0的所有下一个状态点都满足ϕ\phi 在这里插入图片描述
    • M,sEXϕ\mathcal{M},s \vDash EX \phi当且仅当对于某个使得ss1s \to s_1s1s_1,有M,s1ϕ\mathcal{M},s_1 \vDash \phi

      • M,s0EXϕ\mathcal{M},s_0 \vDash EX \phi可以理解为:存在s0s_0的下一个状态满足ϕ\phi 在这里插入图片描述
    • M,sAGϕ\mathcal{M},s \vDash AG \phi当且仅当对于从ss出发的所有路径s0s1s2s_0 \to s_1 \to s_2 \to \cdots(其中s0s_0就是ss),对于这些路径上的所有sis_i,都有M,siϕ\mathcal{M},s_i \vDash \phi

      • M,s0AGϕ\mathcal{M},s_0 \vDash AG \phi可以理解为:所有从s0s_0出发的路径上每一个状态都满足ϕ\phi 在这里插入图片描述
    • M,sEGϕ\mathcal{M},s \vDash EG \phi当且仅当存在一条从ss出发的路径s0s1s2s_0 \to s_1 \to s_2 \to \cdots(其中s0s_0就是ss),对于这些路径上的所有sis_i,都有M,siϕ\mathcal{M},s_i \vDash \phi

      • M,s0EGϕ\mathcal{M},s_0 \vDash EG \phi可以理解为:存在一条从s0s_0出发的路径上所有状态满足ϕ\phi 在这里插入图片描述
    • M,sAFϕ\mathcal{M},s \vDash AF \phi当且仅当对于从ss出发的所有路径s0s1s2s_0 \to s_1 \to s_2 \to \cdots(其中s0s_0就是ss),对于每条路径,都存在sis_i,有M,siϕ\mathcal{M},s_i \vDash \phi

      • M,s0AFϕ\mathcal{M},s_0 \vDash AF \phi可以理解为:从s0s_0出发的任意一条路径,路径上一定会经过一个满足ϕ\phi的状态 在这里插入图片描述
    • M,sEFϕ\mathcal{M},s \vDash EF \phi当且仅当存在一条从ss出发的路径s0s1s2s_0 \to s_1 \to s_2 \to \cdots(其中s0s_0就是ss),该路径上存在sis_i,有M,siϕ\mathcal{M},s_i \vDash \phi

      • M,s0EFϕ\mathcal{M},s_0 \vDash EF \phi可以理解为:存在从s0s_0出发的路径,一定会存在一个满足ϕ\phi的状态 在这里插入图片描述
    • M,sA[ϕUψ]\mathcal{M},s \vDash A[\phi U \psi]当且仅当对于从ss出发的所有路s0s1s_0 \to s_1 \to \cdots(其中s0s_0就是ss),存在i0i \geq 0使得M,siψ\mathcal{M},s_i \vDash \psi且对于所有的0j<i0 \leq j < i都有M,sjϕ\mathcal{M},s_j \vDash \phi

    • M,sE[ϕUψ]\mathcal{M},s \vDash E[\phi U \psi]当且仅当存在从ss出发的路s0s1s_0 \to s_1 \to \cdots(其中s0s_0就是ss),存在i0i \geq 0使得M,siψ\mathcal{M},s_i \vDash \psi且对于所有的0j<i0 \leq j < i都有M,sjϕ\mathcal{M},s_j \vDash \phi

  • 范例: 在这里插入图片描述 对于上面的Kripke结构,有如下结论:

    • M,s0EX(qr)\mathcal{M},s_0 \vDash EX(q \wedge r):在模型M\mathcal{M}中,存在一个状态sis_i,使得sis0s_i \to s_0si(qr)s_i \vDash (q \wedge r)(我们可以看出存在的这个状态就是s1s_1
    • M,s0A[pUr]\mathcal{M},s_0 \vDash A[p U r]:在模型M\mathcal{M}中,对于从s0s_0出发的所有路径s0s1s0s2s_0 \to s_1 \to s_0 \to s_2 \cdots或者s0s2s2s2s_0 \to s_2 \to s_2 \to s_2 \cdots等路径,都存在从s0s_0开始的路径上的所有状态一直满足pp,直到遇到满足rr的状态
    • M,s0¬EF(pr)\mathcal{M},s_0 \vDash \neg EF(p \wedge r):在模型M\mathcal{M}中,对于从s0s_0出发的所有路径,都不可能会经过同时满足状态pprr的结点
    • M,s0EGr\mathcal{M},s_0 \vDash EGr:在模型M\mathcal{M}中,对于从s0s_0出发的所有路径,一定存在从某一个结点开始,以后的所有结点全部满足状态rr(只要到达s2s_2之后,所有的路径均满足状态rr
  • 模型满足性:设M={S,,L}\mathcal{M} = \{S, \to, L\}是模型,ϕ\phi是CTL公式。若对于任一sSs \in S都有M,sϕ\mathcal{M}, s \vDash ϕ,则称模型M\mathcal{M}满足CTL公式 ϕ\phi, 记作Mϕ\mathcal{M} \vDash \phi

  • 语义等价:CTL公式ϕ,ψ\phi,\psi称为语义等价,记作ϕψ\phi \equiv \psi,若对于任何模型M\mathcal{M},都有Mϕ\mathcal{M} \vDash \phi 当且仅当Mψ\mathcal{M} \vDash \psi

  • CTL扩展公式

    • AFϕ¬EG¬ϕAF \phi \equiv \neg EG \neg \phi
    • EFϕ¬AG¬ϕEF \phi \equiv \neg AG \neg \phi
    • AXϕ¬EX¬ϕAX \phi \equiv \neg EX \neg \phi
    • AFϕA[Uϕ]AF \phi \equiv A[\top U \phi]
    • EFϕE[Uϕ]EF \phi \equiv E[\top U \phi]
  • CTL 连接词充分性:CTL 时态连接词集是充分的当且仅当它包含EUEU以及{AX,EX}\{AX, EX\}中一个元素以及{EG,AF,AU}\{EG, AF, AU\}中一个元素

  • CTL语义等价公式(可用于 CTL 模型检测算法):

    • AGϕϕAXAGϕAG \phi \equiv \phi \wedge AXAG \phi
    • EGϕϕEXEGϕEG \phi \equiv \phi \wedge EXEG \phi
    • AFϕϕAXAFϕAF \phi \equiv \phi \vee AXAF \phi
    • EFϕϕEXEFϕEF \phi \equiv \phi \vee EXEF \phi
    • A[ϕUψ]ψ(ϕAXA[ϕUψ])A[\phi U \psi ] \equiv \psi \vee (\phi \wedge AXA[\phi U \psi])
    • E[ϕUψ]ψ(ϕEXE[ϕUψ])E[\phi U \psi ] \equiv \psi \vee (\phi \wedge EXE[\phi U \psi])