首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在类型声明中匹配Agda模式

在类型声明中匹配Agda模式
EN

Stack Overflow用户
提问于 2020-03-06 04:09:58
回答 1查看 243关注 0票数 2

我正在学习HoTT与Agda形式开始。我遵循了https://www.cs.bham.ac.uk/~mhe/HoTT-UF-in-Agda-Lecture-Notes/中的说明

当我开始按指示输入依赖和类型归纳的声明时,

代码语言:javascript
运行
复制
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)有错误

代码语言:javascript
运行
复制
expected sequence of possibly hidden bound identifiers

当我更改类型声明时:

代码语言:javascript
运行
复制
Σ-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不支持类型声明中的模式匹配。

附注:我正在使用Agda 2.6.0.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-06 16:15:28

在望远镜记录上进行模式匹配的能力将在(不久)即将推出的Agda 2.6.1版本中提供。

请参阅开发分支的文档:https://agda.readthedocs.io/en/latest/language/telescopes.html#irrefutable-patterns-in-binding-positions

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60557445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档