[英]How to easily prove the following in Coq such as using only assumptions?
是否有一種簡單的方法可以證明Coq中的以下內容,例如僅使用假設?
(P -> (Q /\ R)) -> (~Q) -> ~P
這個問題有點含糊……您是否想知道是否有可能(是),答案是什么(請參見上面的亞瑟評論),或者如何考慮解決這些問題?
在后一種情況下,請記住目標是創建具有指定類型的“ lambda項”。 您可以使用“策略”來幫助您構築“從內而外”的術語。最好是手動操作幾次,以了解正在發生的事情以及該策略的實際作用,我認為這是為什么要進行此練習。
如果看你的例子,
(P -> (Q /\ R)) -> (~Q) -> ~P
您會看到它是三個(!)參數的函數。 這是因為最后一個類型~P
實際上意味着P -> False
,因此您需要創建的函數的參數類型為
P -> (Q /\ R)
Q -> False
P
函數應該構造一個類型項
False
您可以創建一個fun ABC => _
的術語fun ABC => _
,其中A, B, C
具有上面的類型(這是該方法的intros
),並且您需要提出一個應結合到_
的術語術語A, B, C
和原始Gallina結構。
在這種情況下,當您成功創建了Q /\\ R
類型的項時,您將必須對其進行“分解”以獲得Q
類型的項(提示:為此,您將必須使用match
結構)。
希望這會有所幫助,而不會破壞樂趣!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.