【发布时间】:2024-01-10 00:19:01
【问题描述】:
我试图证明以下关于自然排序的玩具定理:
Inductive Le: nat -> nat -> Prop :=
| le_n: forall n, Le n n
| le_S: forall n m, Le n m -> Le n (S m).
Theorem le_Sn_m: forall n m,
Le (S n) m -> Le n m.
在纸面上,这是对Le (S n) m 的简单归纳。特别是 le_n 的基本情况是微不足道的。
不过,在 Coq 中,以归纳法开始我的证明给了我以下信息:
Proof.
intros n m H. induction H.
1 subgoal
n, n0 : nat
______________________________________(1/1)
Le n n0
...在这种情况下我被阻止了。
我应该如何继续?
【问题讨论】:
-
恕我直言,这个例子可以作为 Coq 归纳类型和索引的练习;但是,如果您打算将
<=关系形式化,这完全是矫枉过正,会给您带来很多麻烦。我确实建议您将您的关系定义为函数nat -> nat -> bool。
标签: coq coq-tactic