【发布时间】:2017-09-25 16:39:22
【问题描述】:
我无法使用 coq 的策略来证明 max a b <= a+b 的简单逻辑。我应该如何解决它?下面是我到目前为止工作的代码。 s_le_n 已证明,但为简单起见,此处不再提及。
Theorem s_le_n: forall (a b: nat), a <= b -> S a <= S b.
Proof. Admitted.
Theorem max_sum: forall (a b: nat), max a b <= a + b.
Proof.
intros.
induction a.
- simpl. reflexivity.
- rewrite plus_Sn_m. induction b.
+ simpl. rewrite <- plus_n_O. reflexivity.
+ rewrite <- plus_Sn_m. simpl. apply s_le_n. rewrite IHa.
【问题讨论】:
-
很抱歉对 coq-tactic 不太熟悉,但如果这是一个一般的数学问题,那么 max(a,b)
-
@DoesData:在 coq 中,我试图证明自然数在 coq 中都是 > 0 的值。
-
@AntonTrunov:编辑问题
-
使用图书馆的证明少于40个字符,我可以贴出来;但是,让我问你一件事,你将如何用笔和纸证明这个引理?
-
@ejgallego if a>b max a b = a, a
标签: coq coq-tactic