You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dafny中定义无函数体的验证用函数?

Dafny无体验证函数的正确定义方式

Dafny中普通function要求必须包含实现体,因此你写的代码会报错。若要定义仅依靠前置/后置条件用于验证的无体函数,有两种正确方式:

方式一:使用ghost函数

ghost函数仅用于验证逻辑,不参与实际执行,无需实现体:

ghost function test(n: nat): (m: nat)
   ensures m == n+1

方式二:使用公理函数

通过{:axiom}属性标记函数,Dafny会直接信任其规范的正确性(注意:滥用公理可能引入逻辑不一致,需谨慎使用):

function {:axiom} test(n: nat): (m: nat)
   ensures m == n+1

内容的提问来源于stack exchange,提问作者MooDoesCow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:52:03