小编pro*_*ver的帖子

在 agda 中通过参数和返回类型重载

我正在尝试编写一个形式为f : (X + Y) -> (Z + T)where X, Y, Z, Tare types的函数,它+是 sum 类型的伪符号。的返回类型f将由上下文确定,即在伪 agda 中

postulate x : X

t : T
t = f x -- OK, since (f : X -> T) definition is used
Run Code Online (Sandbox Code Playgroud)

制作这样的东西很容易(再次在伪 agda 中,我试图简洁明了):

fromX : X -> X + Y
toT : Z x T -> T

t2 : T
t2 = toT (f (fromX x))
Run Code Online (Sandbox Code Playgroud)

但这对于我想要完成的事情来说太吵了。我尝试滥用实例查找。这是我想要工作但不进行类型检查的最小代码:

module Agda2 where
  infix 21 _·_ …
Run Code Online (Sandbox Code Playgroud)

overloading agda dependent-type

5
推荐指数
0
解决办法
124
查看次数

标签 统计

agda ×1

dependent-type ×1

overloading ×1