从属类型是取决于类型项的类型。因此,我想知道依赖类型是否可以通过其自身类型的术语进行索引?我尝试过的是这个
Parameter Obj: Type.
Parameter a: Obj.
Parameter foo: Obj -> Type.
Parameter b : foo a.
Parameter boo : Obj -> Type.
Fail Parameter c : boo b.
自The term "b" has type "foo a" while it is expected to have type "Obj".
起失败。我要使用依存类型理论尝试做些什么以及如何使用Coq实现它?
答案 0 :(得分:2)
在我所知道的任何系统中都不可能直接实现。它在Agda中间接起作用,但在Coq中则不起作用。在Agda中,您需要使用其他类型来包装索引:
-- forward declaration
data A : Set
data B : A -> Set
data A where
wrap : B -> A
data B where
-- list your other constructors here
Coq尚不支持这种形式的索引(称为“归纳式”)。