Automata07 TS
Published:
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$ 逆转然后放松的感觉)
