立方时间内的控制流分析与对象的递归记录语义再探
立方时间内的控制流分析
在控制流分析领域,有几个重要的命题证明值得关注。
首先是命题1的证明,该证明分为三个阶段:
1. 公式转换 :将公式 ( c = c_1 ∧···∧c_n ) 转换为 ( \tilde{c} ),把每个全称量化 ( ∀x : clause ) 替换为所有 ( N ) 种可能实例化的合取,每个存在量化 ( ∃x : pre ) 替换为所有 ( N ) 种可能实例化的析取。得到的子句 ( \tilde{c} ) 与 ( c ) 逻辑等价,大小为 ( O(N r_1 · n_1 + ··· + N r_m · n_m) ),并且是布尔型的,即没有变量或量化,所有文字都被视为零元谓词。
2. 公式变换 :对于每个布尔HCS公式 ( F ),进行 ( F 7−→F_1, …, F_l ) 的变换,产生一系列布尔“几乎 - HC”公式 ( F_1, …, F_l )。变换规则如下:
- ( pre ⇒clause_1 ∧clause_2 7−→pre ⇒A_{fresh}, A_{fresh} ⇒clause_1, A_{fresh} ⇒clause_2 )
- ( pre_1 ⇒pre_2 ⇒clause 7−→pre_1 ∧pre_2 ⇒clause )
- ( pre ⇒1 7−→1 )
其中 ( A_{fresh} ) 是每次应用相关变换时生成的新的零元谓词。当无法再应用这些重写规则时,变换完成,结果为 ( \tilde{F} )。通过为公式分配成本,可以证明这个过程会终止,并且 ( \tilde{
超级会员免费看
订阅专栏 解锁全文
34

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



