这里是Coq的初学者,我最近独自完成了“ Logical Foundations ”的前7章。
我正在尝试通过Coq的归纳法创建证明
∀ n>= 3, 2n+1 < 2^n
。
我从destruct
开始删除错误的假设,直到达到 n = 3 。
然后,我在 n 上进行归纳,对于 n = 3 来说是微不足道的,但是,我如何证明归纳步骤? >
我可以看到目标成立。我可以通过使用destruct
进行案例分析来证明这一点,但是还不能以一般形式显示出来。
The functions I'm using are from "Logical Foundations" and can be seen here。
到目前为止我的证明
(* n>=3, 2n+1 < 2^n *)
Theorem two_n_plus_one_leq_three_lt_wo_pow_n : forall n:nat,
(blt_nat (two_n_plus_one n) (exp 2 n)) = true
-> (bge_nat n 3) = true.
Proof.
intros n.
destruct n.
(* n = 0 *)
compute.
intros H.
inversion H.
destruct n.
(* n = 1 *)
compute.
intros H.
inversion H.
destruct n.
(* n = 2 *)
compute.
intros H.
inversion H.
induction n as [ | k IHk].
(* n = 3 *)
- compute.
reflexivity.
- rewrite <- IHk.
(* Inductive step... *)
答案 0 :(得分:1)
好吧,因为这是家庭作业,所以我不能为您提供很多帮助。让我写下您在math-comp中构成的引理,该引理已经允许使用理智的符号:
Theorem two_n_plus_one_leq_three_lt_wo_pow_n n :
2*n.+1 < 2^n -> 3 <= n.
答案 1 :(得分:1)
缺少的重要部分是使归纳假设变得笼统。
我能够使用this.fb.login(['public_profile', 'user_friends', 'email'])
.then((retorno: FacebookLoginResponse) => {
const facebookCredential = firebase.auth.FacebookAuthProvider.credential(retorno.authResponse.accessToken);
firebase.auth().signInAndRetrieveDataWithCredential(facebookCredential)
.then(credential => {
this.resultado_facebook = credential.user;
console.log(this.resultado_facebook);
console.log('UID = ', this.resultado_facebook.uid);
})
})
完成证明。
所以证明看起来像这样:
generalize dependent k.