递归程序验证中的反链方法
1. 引言
在递归程序的验证领域,有许多关键问题需要解决,如上下文无关文法(CFG)与右线性文法(REG)的包含关系验证。本文将介绍相关的技术概念,包括正则包含、反链算法和数据流分析,并提出一种高效的算法来解决这些问题。同时,还会将验证方法推广到多线程递归程序的有界上下文切换场景。
2. 预备知识
2.1 CFG - REG
- 基本定义
- 给定有限字母表 $\Sigma$,$\Sigma^ $ 表示 $\Sigma$ 上所有有限单词的集合,$\epsilon$ 表示空单词。单词 $u, v \in \Sigma^ $ 的连接得到 $u \cdot v \in \Sigma^ $,$u$ 和 $v$ 的洗牌是这两个单词的所有交织集合,例如 $ab \sqcup\sqcup c = {cab, acb, abc} \subseteq \Sigma^ $。
- 上下文无关文法 $G = (\Sigma, X, x_0, R)$,其中 $\Sigma$ 是有限字母表,$X$ 是有限非终结符集合,$x_0 \in X$ 是初始符号,$R \subseteq X \times (\Sigma \cup X)^*$ 是产生式规则集合。
- 右线性文法是指 $R \subseteq X \times ({\epsilon} \cup (\Sigma \cdot X))$ 的上下文无关文法,它对应于有限自动机,非终结符是状态,$x_0$ 是初始状态,$(x, \epsilon
超级会员免费看
订阅专栏 解锁全文
1689

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



