首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Coq中的Leibniz属性

Coq中的Leibniz属性
EN

Stack Overflow用户
提问于 2014-06-03 08:42:02
回答 1查看 115关注 0票数 0

我对自然数的平等有这样的定义:

代码语言:javascript
复制
Fixpoint equal_nat (n m : nat) : bool := 
  match n, m with
    | O, O => true
    | O, S _ => false
    | S _, O => false
    | S n1, S n2 => equal_nat n1 n2
  end.

(这几乎是标准定义)

我试图证明以下观点:

代码语言:javascript
复制
Proposition equal_nat_correct :
  forall a b : nat, a = b <-> equal_nat a b = true.

我可以做前半部分的证明,但另一个不能.你能给我个提示吗?以下是我迄今所做的工作:

代码语言:javascript
复制
Proof.
  intros.
  split.

  (* => *)
  destruct a.
  destruct b.
  reflexivity.
  discriminate.
  intros. destruct H. simpl.
  induction a. reflexivity.
  simpl. assumption.

  (* <= *)
  (* ? *)
Qed.

谢谢。

编辑:

以下是完整的证明(也许不是最优的):

代码语言:javascript
复制
Proposition equal_nat_correct :
  forall a b : nat, a = b <-> equal_nat a b = true.
Proof.
  split.

  (* => *)
  revert b.
  induction a as [ | a hi]; intros [ | b ]; simpl in *; intuition.
  discriminate.
  discriminate.

  (* <= *)
  revert b.
  induction a.
  intros.
  induction b.
  reflexivity.
  discriminate.
  intros [ | b]; simpl in *; intuition.
  discriminate.  
Qed.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-03 10:03:53

这两个部分的想法都是通过induction进行的,但是在执行之前,您必须小心上下文中的内容。在您的特定情况下,您不应该立即引入b。以下是我在上半场的表现:

代码语言:javascript
复制
intros.
split.
revert b. (* puts b back into the goal, so that it is generalized correctly by induction *)
induction a as [ | a hi ]. (* this just gives explicit names to the term newly created by induction *)
  intro [ | b ]. (* this is equalivalent to intro b. destruct b as [ | b ]. *)
    intros; simpl; reflexivity.
    intros; discriminate.

  intro [ | b ].
    intros; discriminate.
    intros h; injection h; intros h2.
    simpl; apply hi; assumption

简短的版本如下:

代码语言:javascript
复制
intros.
split.
revert b.
induction a as [ | a hi]; intros [ | b ]; simpl in *; intuition.
discriminate.
discriminate.

遵循同样的模式(不要忘记在目标中泛化b ),您应该能够完成下半部分的证明。

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

https://stackoverflow.com/questions/24010706

复制
相关文章

相似问题

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