为什么这不是agda中依赖函数类型的有效定义?

时间:2017-04-02 19:33:05

标签: lambda types agda

我正在观看一个讲座,讲师说这是不可能的,或者至少很难在Agda中定义Pi类型。但我确信必须有办法。给定Universe中的类型以及从类型到Universe的族,从类型到族中某些类型的任何函数都将是Pi类型。所以我认为使用lambda是有意义的:

data Pi (A : Set) (B : A -> Set) : Set where
  \ (a : A) -> (b : B a) : Pi A B

当我尝试加载它时,它会给我一个解析错误。我不确定为什么,也许它不希望\成为一个类型构造函数,但将lambda视为函数类型的类型构造函数是有意义的。请注意,我在Emacs中使用Agda的乳胶功能,但我不认为我可以在堆栈溢出中编写乳胶。话虽这么说,我尝试用大写的lambda替换小写lambda,看看它是否需要一个独特的类型构造函数,但无济于事。

1 个答案:

答案 0 :(得分:2)

: Pi A B中修复拼写错误后,你可以使用大写的lambda,即

data Pi (A : Set) (B : A -> Set) : Set where
  Λ : ((a : A) -> B a) -> Pi A B