坚持存在甚至引理

时间:2014-04-11 21:50:59

标签: coq theorem

我被this lecture留在了一个“留下来作为练习”的引理。它是这样的:

Lemma even_double : forall n, even n -> exists k, n = 2 * k.
Proof.
  intros n H.
  induction H.
  ...

even是一个如此定义的归纳谓词:

Inductive even : nat -> Prop :=
| even0 : even 0
| evenS : forall p:nat, even p -> even (S (S p).

请帮忙吗?我总是以(S (S p) = 2或类似的方式结束。

修改

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

destruct IHeven
exists (S x)
rewrite mult_succ_l
apply eq_S
apply plus_n_Sm

1 个答案:

答案 0 :(得分:2)

在归纳步骤之后,您应该有两个目标。

第一个(even0的基本情况)应该很容易证明。存在主义的证人应该被选为0,之后目标应该由反身性来保持。

第二种情况(对于evenS)看起来像:

p : nat
H : even p
IHeven : exists k : nat, p = 2 * k
============================
 exists k : nat, S (S p) = 2 * k

IHeven表示存在一个号码(我们将其命名为k1),以便p = 2 * k1

您的目标是展示一个数字(例如k2),以便证明S (S p) = 2 * k2

如果你进行数学运算,你会发现(S k1)是最理想的候选人。

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

  • destruct要求IHeven分隔证人k1和证明p = 2 * k1
  • exists展示(S k1)作为您目标的存在主义见证。
  • 然后一些工作证明平等成立。