PTL(投影时序逻辑)是一阶区间时序逻辑的一种扩展,相比之前的LTL(线性时序逻辑)和CTL(分支时序逻辑)引入了一种全新的投影操作符prj,PTL更适用于软件的描述和验证,下面是PTL的语法和语义。
一、语法
Prop为原子命题的可数集合,V为静态变量和动态变量的可数集合,D为
任何数据类型的有穷论域,N0为非负整数集合,N1为正整数集合,投影时序逻辑的项e和公式P归纳如下:
其中, 为常量,是静态变量,是动态变量
变量或者动态变量任尸为原子命题,…,司与。,
带有二元参数的函数与谓词,…,凡及尸为的合式公式
及夕勺是原始时态操作符
勺任是任意的静态
鲡分别表示上
、
PTL也使用
而PTL相比经典一阶逻辑(命题逻辑与谓词逻辑)所不同的是增加了七个派生的操作符和三个原始操作符,其中最常用的是
⊙
(
W
e
a
k
N
e
x
t
)
、
;
(
C
h
o
p
)
、
⋄
(
S
o
m
e
t
i
m
e
s
)
、
□
(
A
l
w
a
y
s
)
、
∣
∣
(
P
a
r
a
l
l
e
l
)
、
O
(
N
e
x
t
)
、
+
(
C
h
o
p
P
l
u
s
)
、
p
r
j
(
P
r
o
j
e
c
t
i
o
n
)
\odot(Weak Next) 、 \text { ; }(Chop) 、\diamond(Sometimes) 、 \square(Always) 、||(Parallel)、O(Next)、+(Chop Plus)、prj(Projection)
⊙(WeakNext)、 ; (Chop)、⋄(Sometimes)、□(Always)、∣∣(Parallel)、O(Next)、+(ChopPlus)、prj(Projection)
二、PTL的语义
1.
◯
P
和
⊙
P
的
语
义
:
{1.}\bigcirc P \text { 和 } \odot P{的语义:}
1.◯P 和 ⊙P的语义:
图2.1中:
(a)代表len(n)是有穷区间下长度为n的节点;
(b)代表Σ为当前区间长度为0;
©代表skip为当前为有穷区间且长度为1;
(d)代表当前任何长度大于1的状况;
图2.2中:
(a)OP代表该有穷状态下s0之后的所有节点其状态均为P且当前长度大于0;
(b)有以下两种情况:(1).区间的长度为0;(2).区间长度大于0且(a)成立。
2 ;(chop)操作符语义
图2.3中:
(a)代表PTL中chop操作符的语义,代表区间必须分为两部分,并且P在第一部分成立(有穷区间)且Q在第二部分成立(可以有穷可以无穷);
(b代表ITL中chop操作符的语义,代表无穷区间P成立或者P在第一区间成立,Q在第二区间成立;
3.
⋄
(
S
o
m
e
t
i
m
e
s
)
、
□
(
A
l
w
a
y
s
)
的
语
义
{3 .}\diamond(Sometimes) 、 \square(Always){的语义 }
3.⋄(Sometimes)、□(Always)的语义
图2.4中:
(a)P代表该有穷状态下在某一子区间内P成立;
(b)P代表在所有的子区间内P成立。
4 ||(Parallel)操作符的语义
图2.6中:
(a)P||Q代表P先于Q结束,P为有穷时间内结束而Q可以是在有穷时间内结束也可以是无穷时间内结束;
(b)P||Q代表P、Q同时结束,为有穷或者无穷时间内结束;
©P||Q代表Q先于P结束,Q为有穷时间内结束而P可以是在有穷时间内结束也可以是无穷时间内结束。
5 prj投影操作符的语义:
图2.7给出了 投影公式
(
P
1
,
P
2
,
P
3
)
p
r
j
Q
\left(P_{1}, P_{2}, P_{3}\right) p r j Q
(P1,P2,P3)prjQ 的语义. 尽管
P
1
P_{1}
P1 和
Q
Q
Q 在状态
s
0
s_{0}
s0 同时开始执行, 但经过
Q
Q
Q 和进程 序列
P
1
,
P
2
,
P
3
P_{1}, P_{2}, P_{3}
P1,P2,P3 在一段时间并发执行后, 可能在不同的时间点结束, 三种可能的结果分别是:
(
a
)
Q
(\mathrm{a}) Q
(a)Q 先于
P
3
P_{3}
P3 结束,这种情况要求
Q
Q
Q 只能是有穷时间结束,但
P
3
P_{3}
P3 的执行时间可以为有穷或无穷 $;
(
b
)
P
3
(\mathrm{b}) P_{3}
(b)P3 与
Q
Q
Q 同时结束,这种情况要求
Q
与
P
3
Q 与 P_{3}
Q与P3 的执行时态空间都只能是有穷;
(
c
)
Q
(\mathrm{c}) Q
(c)Q 在
P
3
P_{3}
P3 之后结束,这种情况要求
P
3
P_{3}
P3 只能是有穷时间结束,但
Q
Q
Q 可以是有穷或无穷。 注意,在公式
(
P
1
,
…
,
P
m
)
p
r
j
Q
\left(P_{1}, \ldots, P_{m}\right) p r j Q
(P1,…,Pm)prjQ 中,任何一个
P
1
,
…
,
P
m
−
1
P_{1}, \ldots, P_{m-1}
P1,…,Pm−1 的执行时间只能是有穷。
投影操作符 p r j p r j prj 是PTL的核心操作符, 具备直接描述进程问并发和同步的能力, 可 以方便的对并发和交互式系统建模。投影公式 ( P 1 , … , P m ) p r j Q \left(P_{1}, \ldots, P_{m}\right) p r j Q (P1,…,Pm)prjQ 表达的直观含义是进程 Q Q Q 与进程序列 P 1 , … , P m P_{1}, \ldots, P_{m} P1,…,Pm 并行在两个不同的时态空间内执行,其中进程 P 1 , … , P m P_{1}, \ldots, P_{m} P1,…,Pm 在 一个时态空间顺序执行,进程Q执行的时态空间则由每个进程 P i ( 1 ≤ i ≤ m ) P_{i}(1 \leq i \leq m) Pi(1≤i≤m) 执行时态 空间的端点构成。子进程 P i P_{i} Pi 与Q的执行高度自治,每个进程都可以决定自己执行的时 态空间,仅在每个进程 P i P_{i} Pi 执行开始和结束时才和 Q发生信息交互.