【发布时间】:2019-05-23 11:38:10
【问题描述】:
我正在研究IndProp.v 的Software Foundations (Vol 1: Logical Foundations) 中的定理ev_ev__ev。
Theorem ev_ev__ev : forall n m,
even (n+m) -> even n -> even m.
Proof.
intros n m Enm En. induction En as [| n' Hn' IHn'].
- (* En: ev_0 *) simpl in Enm. apply Enm.
- (* En: ev_SS n' Hn': even n'
with IHn': even (n' + m) -> even m *)
apply IHn'. simpl in Enm. inversion Enm as [| n'm H]. apply H.
Qed.
其中even 定义为:
Inductive even : nat -> Prop :=
| ev_0 : even 0
| ev_SS (n : nat) (H : even n) : even (S (S n)).
在第二个子弹-处,上下文以及目标如下:
m, n' : nat
Enm : even (S (S n') + m)
Hn' : even n'
IHn' : even (n' + m) -> even m
______________________________________(1/1)
even m
我了解上下文中的m, n', Enm, Hn' 是如何生成的。但是IHn'是怎么生成的呢?
【问题讨论】:
标签: coq theorem-proving coq-tactic induction