簡體   English   中英

如何輕松地在Coq中證明以下內容,例如僅使用假設?

[英]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.

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