簡體   English   中英

將策略應用到前提而不是目標

[英]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 兩個前提( ab -> 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.

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