由其自身类型的术语索引的从属类型

时间:2018-08-09 02:46:35

标签: types coq dependent-type

从属类型是取决于类型项的类型。因此,我想知道依赖类型是否可以通过其自身类型的术语进行索引?我尝试过的是这个

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实现它?

1 个答案:

答案 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尚不支持这种形式的索引(称为“归纳式”)。