Theorem ev_ev__ev_full : forall n m,
even (n+m) <-> (even n <-> even m).
Proof.
intros n m. split.
- intros H. split.
+ intros H1. apply (ev_ev__ev n m H H1).
+ intros H1. rewrite plus_comm in H. apply (ev_ev__ev m n H H1).
- intros H.
输出:
n, m : nat
H : even n <-> even m
============================
even (n + m)
现在 n 可以是偶数也可以不是偶数。
如果 n 是偶数,则 m 也是偶数。那么由
ev_sum
定理 (n+m) 也是偶数。如果 n 不是偶数,它的形式为 (n' + 1),其中 n' 是偶数。m 也不是偶数,形式为 (m' + 1),其中 m' 是偶数。所以它们的总和等于:
n + m = n' + 1 + m' + 1 => n + m = (n' + m') + 2。
偶数 ((n' + m') + 2)。在apply ev_SS
我们得到偶数 (n' + m') 之后。我们知道 n' 是偶数并且 m' 是偶数,我们apply ev_sum
. 这证明了这个定理。
如何在 coq 中编写这个非正式的证明?