15、抽象解释的细化认证技术解析

抽象解释的细化认证技术解析

1. 高阶编程与正确性图

在抽象计算编程中,我们使用GCL †K作为编程语言,GCL K作为规范语言。每个程序 †K都与一个从其代码语法派生的规范K相关联,即每个 †K运算符在语法上都与上文中提升它的K运算符相关联。

线性化过程会调用 †K的另外两个运算符:
- 类型转换运算符 :将 †K转换为给定规范K′,要求K′ ⊑K以生成新的有效 †K图,这有助于实现经过认证的开发的模块化设计,允许对 †K图进行逐步细化。
- 绑定运算符 :对于R(♯D, A)的计算π,将π的结果绑定到函数 †g(A →†K)。该运算符需要一个具体的后置条件Q(A →P(D)),在条件 ∀♯d, ∀x ∈A, ♯d π →x ⇒γ(♯d) ⊆Q x下,定义图 π†≫=Q†g为抽象计算 {(♯d1, ♯d2) | ∃x, ♯d1 π →x ∧♯d1 ♯g x →♯d2},由 x ⊢Q x ;g x指定。

为了提高精度,线性化过程会对抽象状态进行分区。延续传递风格(CPS)是一种高阶模式,为编程和认证简单的分区策略提供了轻量级和模块化的方式。通常,给定抽象状态 ♯d,线性化过程调用子过程 ♯f将 ♯d拆分为分区 (♯di)i∈I,并为每个单元 ♯di计算值ri。然后,线性化过程从每个单元 (ri, ♯di)继续计算,最终返回所有单元的并集。为避免显式处理分区,将 ♯g作为 ♯f的参数,在 ♯f内部执行并集操作。此时, ♯f的类型为 (A →R(♯D, ♯D)) →R(♯D, ♯D), ♯g被称为其延续。

然而,由于高阶参数的存在,直接指定使用CPS的计算的正确性并不容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值