如何在Coq中使用具有假设的策略?

时间:2016-03-10 17:47:30

标签: coq coq-tactic

我是Coq的新人,我遇到了死胡同。我有一个看似大致相似的归纳定义(我之前已经定义了感应接受):

Inductive fun : accepts -> Prop :=
  | fn1 : fun True
  | fn2 : forall (n : nat )(A : accepts), fun A -> fun (n A).

我需要证明的是:

Lemma lem_1  (A : formula) (n : nat) (h : fun (n A)) : fun A.

当然,在开始证明时我得到了

 A : accepts
 n : nat
 h : fun (n A)
 ============================
 fun A

我花了很长时间阅读关于战术,试图找到一些方法来将h插入我的fn2或类似的东西,我只是找不到办法做到这一点。有人可以在这里指导我并给我一些想法吗?我也试过做一些事情来简化A到A的乐趣,但我也没有成功。非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您似乎想要证明您的h假设是使用fn2规则生成的。在Coq术语中,这需要反转该假设。为此,您可以致电inversion h。应用是相反的过程:将fn2规则与指出fun A的假设结合起来fun (n A)