实时软件验证的复杂度界限
1. 自动机编码
自动机的编码是将自动机表示为二进制字符串的过程。对于一个自动机,其编码长度为 2n,其中 n = n2 + n3 + n4 + 2n1。编码的基本思路是对转移函数进行编码,每个编码位置可以用长度为 n2 + n3 + n4 + 2n1 的二进制数表示。具体编码规则如下:
- 前 n2 位索引转移的边符号。
- 接下来的 n3 位索引转移的谓词。
- 再接下来的 n4 位索引操作。
- 随后的 n1 位索引“当前控制状态”。
- 最后的 n1 位索引“下一个控制状态”。
对于自动机元组 (A1, A2, · · · , An) 的编码,先分别对每个自动机进行编码得到 x1, · · · , xn,然后将它们的长度补齐到最大长度 k,得到新字符串 x′1, · · · , x′n。再构造字符串 yi,其长度为 k,包含 ji 个 1 后跟 0,其中 ji 是索引 Ai 状态所需的位数。自动机元组的编码为 y1x′1y2x′2 · · · ynx′n。
2. 带存储的布尔自动机
2.1 定义与符号
- 布尔变量与赋值 :设 Var = {x1, · · · , xn} 是有限布尔变量集,赋值 v : Var →{0, 1}。布尔公式集 BFor(Var) 定义为 ϕ := ⊤| x | ¬ϕ | ϕ∨ϕ | ϕ∧ϕ,其中 x ∈Var。
- 重置表达式 :重置表达式集 BReset(Var) 包括 x := y, x := 0, x := 1
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



