[英]Agda pattern matching inside type declarations
我正在從 Agda 形式開始學習 HoTT。 我按照https://www.cs.bham.ac.uk/~mhe/HoTT-UF-in-Agda-Lecture-Notes/ 中的說明進行操作
當我開始像說明的注釋那樣輸入依賴和類型歸納的聲明時,
record Σ {𝓤 𝓥} {X : 𝓤 ̇ } (Y : X → 𝓥 ̇ ) : 𝓤 ⊔ 𝓥 ̇ where
constructor _,_
field
x : X
y : Y x
pr₁ : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } → Σ Y → X
pr₁ (x , y) = x
pr₂ : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } → (z : Σ Y) → Y (pr₁ z)
pr₂ (x , y) = y
Σ-induction : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } {A : Σ Y → 𝓦 ̇ }
→ ((x : X) (y : Y x) → A (x , y))
→ ((x , y) : Σ Y) → A (x , y)
Σ-induction g (x , y) = g x y
我的 agda 說代碼有錯誤→ ((x , y) : Σ Y)
:
expected sequence of possibly hidden bound identifiers
當我改變我的類型聲明時:
Σ-induction : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } {A : Σ Y → 𝓦 ̇ }
→ ((x : X) (y : Y x) → A (x , y))
→ (z : Σ Y) → A (pr₁ z , pr₂ z)
Σ-induction g (x , y) = g x y
這個版本不錯。
所以我想知道問題是否是 agda 不支持類型聲明內的模式匹配。
ps 我使用的是 Agda 2.6.0.1
在(很快)即將推出的 Agda 2.6.1 版本中將提供對望遠鏡記錄進行模式匹配的功能。
參見開發分支的文檔: https : //agda.readthedocs.io/en/latest/language/telescopes.html#irrefutable-patterns-in-binding-positions
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.