我正在学习 coq 并试图证明 peano 算术的等式。
我陷入了一个简单的分数定律。
我们从小学就知道 (n + m) / 2 = n / 2 + m / 2。在 peano 算术中,这仅在 n 和 m 是偶数时才成立(因为除法会产生正确的结果)。
Compute (3 / 2) + (5 / 2). (*3*)
Compute (3 + 5) / 2. (*4*)
所以我们定义:
Theorem fraction_addition: forall n m: nat ,
even n -> even m -> Nat.div2 n + Nat.div2 m = Nat.div2 (n + m).
据我了解,这是一个正确且可证明的定理。我尝试了一个归纳证明,例如
intros n m en em.
induction n.
- reflexivity.
- ???
这让我陷入了这样的境地
en = even (S n)
并且IHn : even n -> Nat.div2 n + Nat.div2 m = Nat.div2 (n + m)
,所以我找不到应用归纳假设的方法。
经过对标准库和文档的长期研究,我找不到答案。