精益传递类型作为参数
Lean pass type as parameter
我正在尝试在精益中做一些类别理论。但是,我对类型理论还不是很流利,以下似乎并不奏效:
class pset (S: Type) :=
(point: S)
class category (: Type) :=
(test: unit)
instance pset_category : category pset :=
{
test := ()
}
我在 category pset
处发现类型不匹配,因为 pset
的类型为 Type -> Type
,而它的预期类型为 Type
。出了什么问题?
我假设您希望 pset
类似于“pointed sets”。那么它的定义应该是
class pset :=
(S : Type)
(point : S)
现在您会注意到 #check pset
告诉您它的类型为 Type 1
。所以你仍然不能把它变成 category
,因为你只定义了“小”类别。如果在category
的定义中把Type
改成Type*
,应该一切正常。
我正在尝试在精益中做一些类别理论。但是,我对类型理论还不是很流利,以下似乎并不奏效:
class pset (S: Type) :=
(point: S)
class category (: Type) :=
(test: unit)
instance pset_category : category pset :=
{
test := ()
}
我在 category pset
处发现类型不匹配,因为 pset
的类型为 Type -> Type
,而它的预期类型为 Type
。出了什么问题?
我假设您希望 pset
类似于“pointed sets”。那么它的定义应该是
class pset :=
(S : Type)
(point : S)
现在您会注意到 #check pset
告诉您它的类型为 Type 1
。所以你仍然不能把它变成 category
,因为你只定义了“小”类别。如果在category
的定义中把Type
改成Type*
,应该一切正常。