簡體   English   中英

如何在Coq中使用帶有假設的策略?

[英]How to use a tactic with a hypothesis in Coq?

我是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的事情,但是我也沒有成功。 非常感謝您的幫助!

您似乎想證明您的h假設是使用fn2規則產生的。 用Coq術語來說,這需要顛倒這一假設。 為此,您可以調用inversion h 應用是相反的過程:將fn2規則與陳述fun A的假設相結合以得出fun (n A)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM