簡體   English   中英

如何證明 (forall x, P x /\\ Q x) -> (forall x, P x)

[英]How to prove (forall x, P x /\ Q x) -> (forall x, P x)

如何在 Coq 中證明 (forall x, P x /\\ Q x) -> (forall x, P x)? 已經嘗試了幾個小時,但不知道如何分解 Coq 可以消化的東西的前因。 (我是新手,顯然:)

你可以通過應用 H 來更快地完成它,但是這個腳本應該更清晰。

Lemma foo : forall (A:Type) (P Q: A-> Prop), (forall x, P x /\ Q x) -> (forall x, P x).
intros.
destruct (H x). 
exact H0.
Qed.
Assume ForAll x: P(x) /\ Q(x)
   var x; 
      P(x) //because you assumed it earlier
   ForAll x: P(x)
(ForAll x: P(x) /\ Q(x)) => (ForAll x: P(x))

直觀地說,如果對於所有 x,P(x) AND Q(x) 成立,那么對於所有 x,P(x) 成立。

嘗試

elim (H x).

實際上,當我發現這個時,我想出了這個:

計算機科學家的數學 2

在第 5 課中,他解決了完全相同的問題,並使用“cut (P x /\\ Q x)”將目標從“P x”重寫為“P x /\\ Q x -> P x”。 從那里您可以進行一些操作,當目標只是“P x /\\ Q x”時,您可以應用“forall x : P x /\\ Q x”,其余的很簡單。

這是答案:

Lemma fa_dist_and   (A : Set) (P : A -> Prop) (Q: A -> Prop): 

(forall x, P x) /\ (forall x, Q x) <-> (forall x : A, P x /\ Q x).

Proof.

split.

intro H.

(destruct H).

intro H1.

split.

(apply H).

(apply H0).

intro H.

split.

intro H1.

(apply H).

intro H1.

(apply H).

Qed.

您可以在此文件中找到其他已解決的練習: https : //cse.buffalo.edu/~knepley/classes/cse191/ClassNotes.pdf

暫無
暫無

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

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