[英]Solve ~(P /\ Q) |- Q -> ~P in Isabelle
〜(P / \\ Q)|-Q->〜P
我不知道從哪里開始。 否定使我感到困惑。
我必須在Isabelle(一個程序)中解決此問題,但是如果有人解釋了如何使用自然演繹來解決問題,這將是足夠的幫助。
假設您正在談論Isabelle / HOL,則可以將“單步策略”(例如rule
, erule
, assumption
與基本自然演繹規則一起使用。 您可能需要的建議是:
notI
, conjI
, disjE
impI
notE
, conjE
, disjE
, impE
mp
(modus ponens), conjunct1
和conjunct2
如果您想了解特定規則的含義,只需編寫thm notI
,Isabelle將顯示該定理的陳述。
您可以設定一個目標
lemma "¬(P ∧ Q) ⟹ Q ⟶ ¬P"
然后寫例如
apply (rule impI)
應用介紹規則進行暗示,使您擁有更新的目標狀態
goal (1 subgoal):
1. ¬ (P ∧ Q) ⟹ Q ⟹ ¬ P
現在,您找到下一條合適的規則,並應用該規則,直到解決所有子目標。 然后,您可以寫done
並且證明已經完成。
至於assumption
和erule
:如果你結束了,有一些目標P
證明和P
已經在假設,您可以使用apply assumption
來解決它。 ( erule
就像帶有直接鏈接在其后的assumption
rule
,通常便於應用消除規則)
但是,這種證明非常繁瑣。 更好的方法是使用Isabelle的結構化證明語言Isar進行整個證明。 有關Isar的介紹,請參閱《 具體語義》的第5章。
這是一個示例,一個SO問題的質量很多時候是由答案而不是問題決定的。 我會給這個答案以感謝M.Eberl的另一個有用的答案,因為我無法發表評論。
關於上面的評論,您可能會問一個作業問題,該評論是有效的,但是如果您對否定感到困惑,那么無論如何您都會注定要失敗,直到取得進展,所以即使是一個完整的答案也不會幫助您,在這里,沒有正確的答案。
該公式是如此基礎,除非通過應用分步規則,否則任何人都很難證明自己理解自己的論證,而無需經過繁瑣的步驟。
例如:
lemma "~(P ∧ Q) ==> Q --> ~P"
by auto
如果要求是您表現出理解力,那肯定不會給您帶來任何好處。
我在很大程度上是通過“隨着時間的推移吸收吸收的方法”取得了進步,在回答中,埃伯爾先生對自然演繹的基本原理做了重要的概述。 我對它的興趣是弄亂周圍,看看我是否還能吸收更多。
至於rule
和erule
,有備忘單:
http://www.phil.cmu.edu/~avigad/formal/FormalCheatSheet.pdf
對於通過Isabelle進行的邏輯證明,Isabelle / HOL是如此龐大且涉及很多,以至於一點點幫助都不會給您帶來什么好處,盡管總的來說這很重要。
我很久以前就知道了一種含蓄的等效陳述。 甚至在HOL.thy,第998行中 :
lemma disj_not2: "(P | ~Q) = (Q --> P)"
由此可見,連同DeMorgon的定律(HOL.thy的993行)一起,您發現自己在問題中的等同性。
好吧,當然不完全是,這就是所有麻煩的源頭。根據瑣碎的對等重新排列事物,以最終證明對等。 (雖然也知道表示法的含義,例如|-
將是==>
。我使用ASCII是因為我不信任瀏覽器中的圖形。)
M.Eberl提到了結構化證明。 考慮一下這一點:
lemma "~(P ∧ Q) ==> Q --> ~P"
proof-
fix P Q :: bool
assume "~(P ∧ Q)"
hence "~P ∨ ~Q" by simp
hence "~Q ∨ ~P" by metis
thus "Q --> ~P" by metis
qed
在功課方面,我應該得到什么? 沒什么。 metis
知道如何使用基本的一階邏輯實際上是一個證詞。 否則,如何知道從~Q ∨ ~P
跳至Q --> ~P
?
與JIT編譯器類似,這是一個LJEFAATGAA答案(從另一個答案中學到的知識足以給出答案)。
這更多的是我學到的東西,而不是別人可能學到的東西,這可能有助於別人學習。 Isabelle的學習曲線非常殘酷。 我認為OP需要幫助的時機已經過去了。
rule thm
產生特定的目標狀態,對於特定的thm
,為什么rule thm
產生無法應用初步證明方法的消息。 經過幾番評論,我從大綱中顯示了我的證明。 從必須解決的細節中我獲得了以下理解,我在談話中好像我知道自己是對的:
apply(rule thm)
的用法apply(rule thm)
鏈式事實和目標聲明的組合,其中輸出中的this
顯示一個或多個鏈式事實。 fix PQ :: bool
,然后在子上下文中聲明fix Q :: bool
,則子上下文中的Q
引用的變量不同於父上下文Q
在適當地相信Chris之后,我在此處插入他的概述,因此可以輕松地將其與Isar來源進行比較:
1. ~(P & Q) premise
2. { Q assumption
3. { P assumption
4. P & Q and-introduction 3, 2
5. _|_ negation-elimination 1, 4 }
6. ~P negation-introduction 3-5 }
7. Q -> ~P implication-introduction 2-6
來源:
lemma "~(P & Q) ==> Q --> ~P"
proof-
fix P Q :: bool
assume a1: "~(P & Q)"
{
assume a2: "Q"
{
assume a3: "P"
have a4: "P & Q"
apply(rule conjI) apply(rule a3) by(rule a2)
(* NOTE: have to set 'notE' up right. Next 'hence False' doesn't do it. *)
(* hence False apply(rule) by(metis a1) *)
(* 'rule' applies the default of 'conjI', because there is the fact
'this: P & Q', which comes from 'hence'; 'rule notE' gives an error.*)
from a1 a4
have False (* From 'this' and 'goal': ~(P & Q) ⟹ P & Q ==> False *)
by(rule notE) (* notE: ~P ==> P ==> R *)
}
hence "~P"
apply(rule notI) by(assumption)
}
thus "Q --> ~P"
apply(rule impI) by(assumption)
qed
在我的陳述中要求有人認為是have False
。 我不是在為notE
設置合適的東西。 只看我是否走在正確的軌道上,我將執行sledgehammer
,但是在那種情況下它不能證明是False
。
這是因為我處於自動駕駛狀態,並且在兩個本地環境中使用了fix Q :: bool
和fix P :: bool
。 我把它們拿出來, sledgehammer
很容易找到證據。
這是一個人了解一些邏輯,但不知道如何正確使用Isabelle / HOL和Isabelle / Isar語言實現邏輯的示例。
接下來,我必須學習如何正確設置apply(rule notE)
於apply(rule notE)
。
我對上述消息來源的部分理解來自於isar-ref.pdf中的 鏈接事實 一詞 。 稍微接觸自然演繹規則以及M.Eberl對統一,實例化和解析的解釋最終有助於弄清輸出面板中發生的事情。
上面, hence False
我將hence False
注釋掉,然后使用have False
。 幸運的是,在伊莎貝爾(Isabelle),有多種做事方法,但目標是應用notE
。 即使這樣,也可以使用不同的Isar關鍵字進行設置。
無論如何,看到如何將rule
事實與鏈式事實一起使用是一個瞬間。 我猜這實際上是語句have False
涉及的內容,因為它與notE
:
term "~P ==> P ==> R" (* notE: line 376 of HOL.thy *)
lemma "~(P & Q) ⟹ P & Q ==> False"
by(rule notE)
如果我有一個帳戶,我會投票贊成這個問題,以擺脫那個-1。
感謝克里斯給出了准確的輪廓。
由於您明確提到自然推論。 在一種特殊的自然演繹形式中-行編號並且假設范圍用方框顯式標記(在下面用大括號表示)-一種證明您的陳述的方法如下:
1. ~(P & Q) premise
2. { Q assumption
3. { P assumption
4. P & Q and-introduction 3, 2
5. _|_ negation-elimination 1, 4 }
6. ~P negation-introduction 3-5 }
7. Q -> ~P implication-introduction 2-6
實際上,由於您的目標是證明含義,所以一開始您只有一個選擇,即含義引入。
最好將上述證明盡可能忠實地轉換為結構化的Isar證明(例如,使用所謂的“原始證明塊”,順便說一下,在Isabelle中也用花括號表示)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.