Coq 在存在的偶数引理上卡住

Coq 在存在的偶数引理上卡住,coq,theorem,Coq,Theorem,我被困在一个引理上,引理“作为练习”来自。事情是这样的: Lemma even_double : forall n, even n -> exists k, n = 2 * k. Proof. intros n H. induction H. ... Inductive even : nat -> Prop := | even0 : even 0 | evenS : forall p:nat, even p -> even (S (S p). 其中,偶数是一个归

我被困在一个引理上,引理“作为练习”来自。事情是这样的:

Lemma even_double : forall n, even n -> exists k, n = 2 * k.
Proof.
  intros n H.
  induction H.
  ...
Inductive even : nat -> Prop :=
| even0 : even 0
| evenS : forall p:nat, even p -> even (S (S p).
其中,
偶数
是一个归纳谓词,定义如下:

Lemma even_double : forall n, even n -> exists k, n = 2 * k.
Proof.
  intros n H.
  induction H.
  ...
Inductive even : nat -> Prop :=
| even0 : even 0
| evenS : forall p:nat, even p -> even (S (S p).
请帮忙?我总是以
(S(sp)=2
或类似的方式结束

编辑

我使用的一些引理和策略(不完全证明):


在你的入职培训之后,你应该有两个目标

第一个(即使是0的基本情况)应该很容易证明。存在性证人应该被选为0,然后目标应该通过自反性来实现

第二种情况(对于
evenS
)如下所示:

p : nat
H : even p
IHeven : exists k : nat, p = 2 * k
============================
 exists k : nat, S (S p) = 2 * k
ih偶
表示存在一个数字(我们称之为
k1
),这样
p=2*k1

你的目标是展示一个数字(比如,
k2
),这样你就可以证明
S(sp)=2*k2

如果你计算一下,你会发现
(sk1)
将是完美的候选人

因此,要继续,您可以使用以下策略:

  • destruct
    销毁
    iheen
    分离证人
    k1
    和证明
    p=2*k1
    的证据
  • 存在
    以展示
    (S k1)
    作为你目标的存在见证
  • 然后一些工作证明了平等是成立的