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

如何处理Coq证明中`false = true`的目标情况?

处理Coq中false = true目标的几种方法

你当前在证明andb_true_iff引理时,卡在了目标false = true,以下是几种不用destruct b1的解决思路:

1. 直接应用自定义的false_true引理

你的false_true: (false = true) -> False引理可以通过先将目标转为False,再应用引理来使用:

exfalso.  (* 将目标从 `false = true` 转为 `False` *)
apply false_true.  (* 此时需要提供 `false = true` 的证明,直接用 reflexivity *)
reflexivity.

或者更简洁的链式写法:

exfalso; apply false_true; reflexivity.

2. 直接对假设H使用discriminate

当前假设H: b1 && false = true本身就是矛盾的——无论b1是true还是false,b1 && false的结果都是false,不可能等于true。直接对H用discriminate就能一步完成证明:

discriminate H.

3. 使用inversion策略分析假设

inversion策略可以分析等式的构造结构,对H使用会直接发现矛盾:

inversion H.

4. 利用contradiction策略

contradiction会自动寻找上下文中的矛盾,这里它能识别出H和目标之间的冲突:

contradiction.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:42:33