cost 432 ms
Coq:等式策略的對稱性和傳遞性是如何定義的?

[英]Coq: How are the equality tacticts symmetry and transitivity defined?

我對 Coq 策略symmetry和transitivity的實際工作方式很感興趣。 我已經閱讀了 Coq 手冊,但這只描述了它們的作用,而不是它們如何對證明進行操作並更改證明狀態。 作為我正在尋找的示例,在Interactive Theorem Proving and Program Devel ...

破壞假設:一般情況

[英]Destruct hypothesis: general case

如果H包含合取或析取,那么destruct H的作用就很清楚了。 但我無法弄清楚它在一般情況下的作用。 它做了一些奇怪的事情,特別是如果H: a -> b 。 一些例子: 假設剛剛被破壞: 另一個: 現在我有兩個分支: 第三個例子。 這無法證明,但對我來說仍然沒有意義: 現在我必須在第二個分支 ...

2021-08-18 19:21:48   1   156    coq / ltac  
將 ltac 應用於目標的子表達式

[英]apply ltac to subexpression of a goal

這是我正在嘗試做的一個簡短示例。 假設我有關系 我還有以下 ltac Ltac simplify := autorewrite with blah 我想定義一個 ltac,它確實簡化為“可分”目標中的第一項。 就像是 當我在下面嘗試上述內容時, 我得到一個 是否可以將 ltacs ...

2021-06-25 16:19:59   1   46    coq / ltac  
Coq:Ltac 表示蘊涵的傳遞性(又名假設三段論)

[英]Coq: Ltac for transitivity of implication (a.k.a. hypothetical syllogism)

這個問題是關於我正在做的一個項目,即在 Coq 中編碼Principia Mathematica 。 Principia推導出了推理規則,其中之一是 Syll: ∀ PQR : Prop, P→Q, Q→R : P→R 我正在嘗試創建一個 Ltac 腳本來編寫 Syll 推理形式。 以下來自 ...

是否可以將上下文模式轉換為 Gallina 函數?

[英]Is it possible to turn a context pattern into a Gallina function?

在 Ltac 中,上下文模式可用於構建Ltac 級函數,該函數接受一個 Gallina 項並通過填充一個洞來構造一個 Gallina 項。 我想具體化這個功能並在 Gallina 級別使用它,而不是 Ltac。 例如,以下代碼使用元變量而不是上下文模式工作。 但是以下代碼不起作用,因為在填充模 ...

2020-02-09 00:47:10   1   106    coq / ltac  
Isabelle/HOL 有戰術語言嗎?

[英]Does Isabelle/HOL have its tactic language?

Coq 有戰術語言 Ltac 和匹配設施等。 Isabelle/HOL 是否有一些用於策略的編程語言以及用於解析、模式匹配等的服務? 我瀏覽了 Isabelle 的 Isar 參考手冊和舊的 Pawlson 教程,但我找到了線索。 ...

是否可以在Ltac-match中綁定必要的不同術語?

[英]Is it possible to bind necessarily different terms in Ltac-match?

在用戶定義的策略中進行模式匹配( match goal with )時,我們可以使用?x綁定Gallina術語,以便以后可以引用它。 我們可以在一個子句中使用多個這樣的標識符( ... ?x ... ?y ... ),或者甚至可以使用相同的標識符( ... ?x ... ?x ... )來表示 ...

將重寫策略應用於子表達式

[英]apply rewrite tactic to sub-expression

如何應用rewrite ->僅定位子表達式? 例如,考慮以下定理: 直觀地講,它只需要轉換一個(add ab)子表達式,但是如果我rewrite -> (comm ab) ,它將重寫所有出現的情況。 如何定位特定的子表達式? ...

2019-04-21 21:05:42   2   54    coq / ltac  
將具體假設應用於存在目標的策略

[英]Coq tactic for applying a concrete hypothesis to an existential goal

考慮以下示例: apply H失敗, 因此,我知道我可以使用exists 1+2+3的策略來申請在這里工作,或者,基於這個其他stackoverflow問題,還有一種更復雜的方法可以在H上使用正向推理以使其成為存在形式。 但是我希望有一些聰明的策略可以在統一時實例化存在變量 ...

2018-11-07 21:43:46   1   67    coq / ltac  
Coq 正向推理:適用於多個假設

[英]Coq forward reasoning: apply with multiple hypotheses

我有兩個假設,我想使用正向推理來應用同時使用它們的定理。 我的具體我有假設 我想應用標准庫中的定理: 現在我知道我可以手動給出 x1, y1, x2, y2 的值​​,但是我希望 Coq 在與H0和H1統一時自動確定這些值。 我發現我可以讓它像這樣工作: 但這感覺就像一個黑客,破壞了對 ...

2018-11-04 08:05:54   1   624    coq / ltac  
刪除Coq中的所有雙重否定

[英]Remove All Double Negations in Coq

我想系統地刪除所有可能出現在我的假設和目標中的雙重否定。 我知道~~A -> A不是直覺主義邏輯的一部分,但我所采取的課程是經典的,所以我不介意。 我知道所提到的公理可以通過Coq.Logic.Classical_Prop.NNPP訪問,但是這個公理無助於從更復雜的句子中刪除雙重否 ...

Coq中的析取交換性

[英]Disjunction Commutavity in Coq

我想有一個Ltac策略來執行Disjunction Commutavity的工作。 主要是,如果我在假設H某處有一個子項P \\/ Q , Ltac Com H會將Q \\/ P作為另一個假設添加到上下文中。 我嘗試通過公理提供可交換性規則並apply它; 但是它僅適用於簡單的假設,例 ...

在Coq中分割帶有聯合結論的前提

[英]Splitting a premise with conjunction conclusion in Coq

我經常需要做“歸納加載”來證明Coq中的目標,在Coq中我可以通過歸納法同時證明多件事。 問題是,我經常遇到以下形式的歸納假設: 很好,但是像eauto這樣的策略確實不知道如何處理這樣的事情,因此它在大多數情況下會扼殺自動化。 我想知道的是,有沒有一種方法可以自動將這樣的前提 ...

Coq中的Modus Ponens和Modus Tollens

[英]Modus Ponens and Modus Tollens in Coq

我想對這些簡單的推理規則采用Ltac策略。 在Modus Ponens中,如果我有H:P->Q和H1:P ,則Ltac mp H H1將Q作為H2 : Q添加到上下文中。 在Modus Tollens中,如果我有H:P->Q和H1:~Q ,那么Ltac mt H H1會將 ...

Coq中的條件證明策略

[英]Conditional Proof Tactic in Coq

我相信標題是很容易解釋的: https : //en.wikipedia.org/wiki/Conditional_proof 我想采取一種策略,假設一個命題,然后繼續尋找另一個命題,如果成功的話,我發現第一個命題隱含着第二個命題,並將其作為上下文中的假設。 因此,例如Ltac cp ...

模式匹配從目標模式匹配獲得的假設

[英]Pattern-matching a hypothesis obtained from a pattern-match on goal

考慮以下發展: 這將輸出H != n 。 我發現這非常令人驚訝,因為范圍內的唯一假設是n並且done n並且done n已經由頂級匹配的第一個分支調度。 我如何能匹配done n沒有明確提到n ,在第二場比賽的第一個分支? ...

2018-10-21 21:37:46   1   51    coq / ltac  
注射策略可以修改最終目標,還是添加無關緊要的假設?

[英]Can the injection tactic modify the end goal, or add extraneous assumptions?

考慮以下開發,這是Adam Chlipala的simplHyp的孤立部分: 請參閱內聯注釋G在開始時就已匹配,並最終用於驗證最終目標是否保持不變。 這是否排除了injection H可能改變目標或添加無關緊要的假設的可能性? ...

2018-10-14 14:09:29   1   37    coq / ltac  
Coq:當只有一個案例時,在Prop for Set上執行反轉

[英]Coq: performing inversion on Prop for Set when there is only one case

假設我有一些編程語言,具有“有類型”關系和“小步”關系。 這里的關鍵細節是,對於每個術語變體,只有一種可能匹配的HasType變體。 假設我想證明一個進度引理,但我也希望能夠從中提取一個解釋器。 這給出了錯誤Inversion would require case anal ...


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