我是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的乐趣,但我也没有成功。非常感谢你的帮助!
答案 0 :(得分:1)
您似乎想要证明您的h
假设是使用fn2
规则生成的。在Coq术语中,这需要反转该假设。为此,您可以致电inversion h
。应用是相反的过程:将fn2
规则与指出fun A
的假设结合起来fun (n A)
。