Def
Transition System 本质上是一个五元组 \(\mathcal{A}=\left<S,S_0,T,\alpha,\beta\right>\),分别表示状态集、初始状态、转移集和端点函数。这里 \((\alpha(t),\beta(t))\) 表示转移 \(t\) 的起点和重点,这么做的一个好处是 \(T\) 可以任意多,并且两个状态间存在多个转移。
当然本质上还是有限有向图。
Path
一条路径是一个序列 \(\Set{t_i}\),满足 \(\forall i,\beta(t_i)=\alpha(t_{i+1})\),且 \(\alpha(t_0)=S_0\)。即首尾相连的一系列边。
有了路径就能定义联通性,比较 fancy 的写法是 \(\twoheadrightarrow\subseteq S\times S\) 是包含 \(\alpha(T)\times\beta(T)\) 的传递闭包。那么一个状态 \(s\in S\) 可达当且仅当 \(S_0\twoheadrightarrow s\)。
规定 \(T^+=\Set{\text{finite paths in $T$}}\),\(T^\omega=\Set{\text{infinite paths in $T$}}\),容易将 \(\alpha,\beta\) 拓展到 \(T^+\) 上
同时可以把连接操作拓展到路径上,即 \(p_1\circ p_2\) 规定为两个序列的拼接。为了方便 \(p_1\) 不能为无穷路径。
Terminal
\(\forall t\in S\) 都不存在 \(s\twoheadrightarrow t\)。即没有后继状态
Deadlock
如果 \(s\) 是 terminal 且 reachable,那么 \(s\) 也叫死锁状态
Label
可以多带一个 \(\lambda:T\mapsto A\) 表示给转移加上名字,\(A\) 就是名字集。
Trace
给定一个路径 \(p\),那么定义 \(\text{trace}(p)=\text{map}(\lambda,p)\)
Equivalence
给定两个 TS \(T_1,T_2\),我们可以寻找它们之间的若干``等价''关系。下面从强到弱给出。
Homomorphism
定义为一对映射 \((f,g)\),其中 \(f\colon S_1\mapsto S_2\),\(g\colon T_1\mapsto T_2\)
满足:
- \(f\circ \alpha_1=\alpha_2\circ g\)
- \(f\circ\beta_1=\beta_2\circ g\)
- \(f\circ\lambda_1=\lambda_2\circ g\)
如果 \((f,g)\) 恰好都是满射,那么称 \(T_2\) 是 \(T_1\) 的一个商(quotient)
Strong Isomorphism
\((f,g)\) 均为双射
强同构说明两个 TS 没有本质上的不同
Weak Isomorphism
\((f,g)\) 定义在 reachable state 上。即 \(T_1,T_2\) 删去不可达的点和边之后是 Strongly Isomorphic 的
很显然强同构 implies 弱同构
Bisimulation
存在关系 \(\simeq\subseteq S_1\times S_2\) 满足
- \(S_0\simeq S_1\)
- \(s_1\sim s_1'\) 且 \(s_1\twoheadrightarrow s_2\) implies \(s_2\simeq s_2'\) 且 \(s_1'\twoheadrightarrow s_2'\)
- \(s_1\simeq s_1'\) 且 \(s_1'\twoheadrightarrow s_2'\) implies \(s_2\simeq s_2'\) 且 \(s_1\twoheadrightarrow s_2\)
给一个例子
 
Product
定义两个 TS 的乘积为分别将状态、转移相乘。直接相乘叫做自由积 Free product
可以给自由积加上限制 \(I\subseteq \prod A_i\),表示只有 \(I\) 中的转移才可以被触发。
不难发现自由积定义出来的新 TS 默认所有转移是同时进行的。
Temporal logic
本质上是一种带状态机结构的谓词逻辑,可以表达例如 "eventually true" 或者 "never true" 这样的句子。
一般描述一个 TS \(\mathcal{A}\) 的时候会用元组 \((\mathcal{A}, AP, L)\) 来表示,其中 \(AP\) 表示原子命题,\(L:S\to 2^{AP}\) 给每个状态标记上若干个原子命题,表示这个状态的性质。
一个 trace 是 \(\mathcal A\) 中状态的无穷序列 \(w=\Set{s_i}_{i=0}^\infty\),定义 \(w_k=s_k\),\(w^k=\Set{s_i}_{i=k}^{\infty}\)
LTL
Linear Temporal Logic 要求 \(\mathcal A\) 中的自动机是线性的。
Syntax
主要是多了几个算子
- \(X\),neXt
- \(U\),Until
- \(G\),Globally 或者 Always
- \(F\),Finally
- \(R\),Release
Semantics
对于给定的 trace \(w\)
- \(w\models a\iff a\in w_0\) 
- \(w\models a\wedge b\iff w\models a\text{ and } w\models b\) 
- \(w\models Xa\iff w^1\models a\) - 即下一个状态满足。 
- \(w\models aUb\iff \exists k, w^k\models b\text{ and } \forall i<k,w^i\models a\) 即存在一个时刻 \(b\) 满足,并且在 \(b\) 满足之前 \(a\) 都得持续满足。 
- \(w\models Fa\iff w\models \text{true}Ua\) 即存在一个时刻使得 \(a\) 满足。 
- \(w\models Ga \iff w\models \neg F\neg a\) 即并不存在一个时刻使得 \(a\) 满足 也就是说 \(a\) 会在任意时刻满足 
- \(w\models aRb\iff w\models\neg(\neg aU\neg b)\) 即并非(\(\neg a U\neg b\)) - 即并非(存在一个时刻满足 \(\neg b\),且在 \(\neg b\) 满足之前 \(\neg a\) 一直满足) - 即(不存在一个时刻满足 \(\neg b\))或者(存在一个时刻满足 \(\neg b\) 但是 \(\neg b\) 满足之前 \(\neg a\) 并非一直满足) - 即(任意时刻都满足 \(b\))或者(存在一个时刻不满足 \(b\),但是 \(b\) 不满足之前存在时刻满足 \(a\)) - 即在 \(a\) 满足之前,\(b\) 必然一直满足。如果 \(a\) 一直不满足,那么 \(b\) 将一直满足。 - (有一种 \(U\) 逆转然后放松的感觉) 
