簡體   English   中英

Coq 正向推理:適用於多個假設

[英]Coq forward reasoning: apply with multiple hypotheses

我有兩個假設,我想使用正向推理來應用同時使用它們的定理。

我的具體我有假設

H0 : a + b = c + d
H1 : e + f = g + h

我想應用標准庫中的定理:

f_equal2_mult
     : forall x1 y1 x2 y2 : nat, x1 = y1 -> x2 = y2 -> x1 * x2 = y1 * y2

現在我知道我可以手動給出 x1, y1, x2, y2 的值​​,但是我希望 Coq 在與H0H1統一時自動確定這些值。 我發現我可以讓它像這樣工作:

eapply f_equal2_mult in H0; try exact H1.

但這感覺就像一個黑客,破壞了對稱性和try 我真的很想能夠說apply f_equals2_mult in H0, H1或類似的情況下apply f_equals2_mult in H0, H1 有這樣的方法嗎?

您可以使用pose proof在上下文中引入引理,並specialize將其應用於其他假設。

Lemma f (a b c d : nat) : a = b -> c = d -> False.
intros H1 H2.
pose proof f_equal2_mult as pp.
specialize pp with (1 := H1).
specialize pp with (1 := H2).

(* or *)
specialize pp with (1 := H1) (2 := H2).

暫無
暫無

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

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