[英]Applying apply tactic to premises instead of the goal
如果目標狀態是這樣的:
a : Prop
b : Prop
H1 : a
H2 : b -> c
============================
c
然后,我可以使用apply H2
策略將其轉換為以下狀態:
a : Prop
b : Prop
H1 : a
H2 : b -> c
============================
b
現在,我想做同樣的事情,但要假設如下:
a : Prop
b : Prop
H1 : a
H2 : b -> a
============================
b
我想引入一個新的假設(或簡化現有假設),以便在前提中擁有一個新的H3 : b
。 那可能嗎 ?
我嘗試了各種變化apply
,但一切都導致了某種錯誤。 達到上述狀態的代碼:
Lemma test : forall {a b : Prop},
a /\ (b -> a) -> b.
Proof.
intros a b.
intros [H1 H2].
Abort.
這是不可能的,因為您的test
引理不成立。 例如,將a
設為True
並將b
設為False
。 兩個前提( a
和b -> a
)都成立,但b
不成立。
但是,如果您稍稍更改了結果語句,這將起作用:
Lemma test : forall a b : Prop, a /\ (a -> b) -> b.
Proof. intros [H1 H2]. apply H2 in H1. exact H1. Qed.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.