32、使用多个自动证明器处理Atelier B中的证明义务

使用多个自动证明器处理Atelier B中的证明义务

1. Why3概述

Why3是一个逻辑工具,其核心逻辑是具有递归定义、代数数据类型和归纳谓词的多态一阶逻辑。它的主要目的之一是从理论中提取目标,并将其转换为外部定理证明器的原生语言。这些证明器包括交互式证明助手(如Coq)、通用自动定理证明器(如Alt-Ergo、Z3、CVC3)以及专用定理证明器(如Gappa)。

下面是Why3的工作流程示意图:

graph LR
    A[file.mlw] --> B[WhyML]
    B --> C[VCgen]
    C --> D[file.why]
    D --> E[Why]
    E --> F[transform & translate]
    F --> G[print & run]
    G --> H[Coq]
    G --> I[Alt-Ergo]
    G --> J[Z3]
    G --> K[CVC3]
    G --> L[etc.]

例如,有如下证明义务:

goal g: forall active:bool,
remaining_time remaining_time_1 initial_timer_value_ms cycle_duration : int.
cycle_duration = 100 ∧active = True ∧
(active = T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值