首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >{id1 = id2} + {id1 id1 id2}∀id1 id2 : id是什么意思?

{id1 = id2} + {id1 id1 id2}∀id1 id2 : id是什么意思?
EN

Stack Overflow用户
提问于 2015-05-03 12:50:53
回答 2查看 195关注 0票数 1

我正在阅读软件基础一书,在Imp.v文件中,有一个定理eq_id_dec的定义,如下所示:

代码语言:javascript
复制
Theorem eq_id_dec : forall id1 id2 : id, {id1 = id2} + {id1 <> id2}.
Proof.
   intros id1 id2.
   destruct id1 as [n1]. destruct id2 as [n2].
   destruct (eq_nat_dec n1 n2) as [Heq | Hneq].
   Case "n1 = n2".
     left. rewrite Heq. reflexivity.
   Case "n1 <> n2".
     right. intros contra. inversion contra. apply Hneq. apply H0.
Defined. 

这个定理是否意味着对于任何id类型的id1和id2,id1=id2和id1!=id2都不能发生?我没有把握。

EN

回答 2

Stack Overflow用户

发布于 2015-05-03 12:57:38

不,这并不排除平等和不平等同时为真的情况(尽管在实践中这里就是这样)。

符号{A} + {B}的类型sumbool A B描述了一个将证明AB的决策过程。

所以这个eq_id_dec是一个以两个ids作为输入的项,返回它们相等的证明,或者它们是不同的证明。

有关sumbool的更多信息,请访问:https://coq.inria.fr/distrib/current/stdlib/Coq.Bool.Sumbool.html

票数 3
EN

Stack Overflow用户

发布于 2015-05-03 12:58:10

对于所有id1和id2,id1 = id2或id1不等于id2。

非常简单-它要么等于id2,要么不等于,根据定义总是正确的-所以它对所有id1/id2都是正确的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30010342

复制
相关文章

相似问题

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