首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >coq中的计算理论

coq中的计算理论
EN

Stack Overflow用户
提问于 2021-09-27 19:11:42
回答 2查看 127关注 0票数 0

2子目标x,y: nat H:x+0=y+0

代码语言:javascript
运行
复制
but after that I don't know how to to get rid of 0 in H.
EN

回答 2

Stack Overflow用户

发布于 2021-09-27 20:35:31

这是真的,在纸上,你会简单地得出结论,因为x + 0 = x。在Coq中,你必须证明这一点,因为加法是左偏的(它通过查找第一个参数进行计算)。

我建议先证明

代码语言:javascript
运行
复制
forall n, n + 0 = n
票数 2
EN

Stack Overflow用户

发布于 2021-09-28 14:03:57

我会选择这样的方式:

代码语言:javascript
运行
复制
Theorem ex9: forall x y n, x + n = y + n -> x = y.
Proof.
 intros.
 induction n as [| n' IH].
 - rewrite add_0_r in H.      (* replace x + 0 with x *)
   rewrite add_0_r in H.      (* replace y + 0 with y *)
   assumption.
 - apply IH.                  (* replace x=y with x+n' = y+n' *)
   rewrite <- plus_n_Sm in H. (* replace x + S n' with S (x + n') *)
   rewrite <- plus_n_Sm in H. (* replace y + S n' with S (y + n') *)
   apply S_injective in H.    (* drop both S constructors *)
   assumption.
Qed.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69352099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档