Types 在agda中,没有公理K,为什么归纳族和参数化归纳类型的宇宙级限制行为不同

Types 在agda中,没有公理K,为什么归纳族和参数化归纳类型的宇宙级限制行为不同,types,programming-languages,agda,dependent-type,homotopy-type-theory,Types,Programming Languages,Agda,Dependent Type,Homotopy Type Theory,在agda中定义列表并启用--without-K时的观察结果: 接受以下参数化归纳定义: data List (A : Set) : Set where [] : List A _::_ : A → List A → List A 但不是等效的归纳族定义: data List' : Set → Set where []' : {A : Set} → List' A _::'_ : {A : Set} → A → List' A → List' A 错误消息

在agda中定义
列表
并启用
--without-K
时的观察结果:

接受以下参数化归纳定义:

data List (A : Set) : Set where
    [] : List A
    _::_ : A → List A → List A
但不是等效的归纳族定义:

data List' : Set → Set where 
    []'  : {A : Set} → List' A
    _::'_ : {A : Set} → A → List' A → List' A
错误消息已设置为
Set₁ 不小于或等于Set
,因此我必须从
列表中更改类型:Set→ 将
设置为
List”:设置→ 设置₁以便进行类型检查。如果我禁用了
--without-K
,那么agda也会正确地进行类型检查

我试图查找为什么会出现这种情况,例如,在页面上显示“当启用了
--without-K
时,必须在更高的宇宙级别定义一些索引数据类型。特别是,所有索引的类型都应符合数据类型的排序。”但没有说明归纳族之间存在这种差异的原因(索引数据类型)定义和参数化归纳定义。我猜这与基础类型理论的同伦模型解释有关。但是我想知道如果归纳族生活在一个较小的宇宙中(语法和语义),会发生什么样的“坏”事情参数化归纳定义如何避免此类问题