coq - 这个 Coq 证明正确吗?
问题描述
我正在学习软件基础第 1 卷中练习的解决方案。在线书籍: https ://x80.org/collacoq/ozavikeyeh.coq
Example and_exercise : forall n m : nat, n + m = 0 -> n = 0 /\ m = 0.
Proof.
intros [|n] m H.
- split.
+ reflexivity.
+ apply H.
- inversion H.
Qed.
下面apply H
是证明状态:
1 subgoal
n, m : nat
H : S n + m = 0
______________________________________(1/1)
S n = 0 /\ m = 0
假设H
不成立,也无法S n = 0
证明;这个证明仍然正确吗?
解决方案
你正在做一个案例。因此,您必须接受这一点,S n + m = 0
否则您将无法提出诉讼。
更准确地说,您是S n = 0 /\ m = 0
在假设成立的情况下证明S n + m = 0
成立。S n + m = 0
实际成立与否并不重要。
并S n = 0 /\ m = 0
成立,因为S n + m = 0
是一个矛盾。在逻辑上的矛盾下,任何事情都可能发生。你可以说任何事情,而你不在乎它是否不一致,对吧?
推荐阅读
- sorting - Sorting arraylist of objects based on String property
- php - 如何在 fpdi 中添加页眉(徽标)和页脚(带有页码的徽标)
- reactjs - 如何从 React JS 中的重复元素中获取价值
- git - 禁止 heroku 在每次推送到 github 拉取请求时重新部署审查应用程序
- python - 使用带有 RepeatDataset 和 BatchDataset 类型对象的 SHAP 解释使用 BERT 构建的模型
- javascript - slelnium python:单击没有 id 或名称的动态对象/元素
- typescript - ts-loader vs babel-loader 在 Typescript 中使用 webpack
- javascript - 添加具有特定类的 li 元素 - Wordpress 插件编辑
- python - 如何增加每个轮廓周围的填充
- ssh - 通过 ssh 和 cron(sshpass、expect 或其他解决方案)自动重启 ip-phone