![](/img/trans.png)
[英]Proving (p->q)->(~q->~p) using Coq Proof Assistant
[英]Coq for HoTT: proving || P-> X || -> (P-> ||X||)
我需要在 Coq 中證明對於任何類型 X 和任何命題 P(盡管我認為即使 P 是一種類型它也應該工作)存在
截斷實現:|| P-> X || -> (P-> ||X||)
在哪里 ||_|| 是HoTT書中用來表示命題截斷的符號。
我證明了類型論中的陳述:一個人通過使用命題截斷的歸納原理得到論文,假設從 H:|| P-> X || 和 ap: P 即 H=|H'|,其中 H': P->X,然后定義 trunc_impl(p):= |H'(p)|。 (|-| 表示拖拽的構造函數,即|_|: A -> ||A||)。
順便說一句,我不能在 Coq 中編寫它。 任何幫助將不勝感激。
我正在使用 GitHub 上提供的 HoTT 庫。
您需要Require Import Basics.
因為 coq 不知道 Trunc.TruncType 可以強制轉換為 Type 否則。 您要注意的策略是apply Trunc_ind
,它將作用於諸如forall (x: Tr _ _), _
之類的目標。
intros xy
和revert x
將派上用場,以將目標轉換為您想要應用trunc_ind
的形式。
您還具有(自定義)策略strip_truncations
它將在上下文中搜索任何被截斷包裹的術語,並嘗試對它們進行歸納以刪除它們。 這要求目標被截斷,但這在這里不應該是一個問題。
最后,截斷的構造函數是tr
,所以你可以在那里使用apply
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.