我正在使用Coq标准库中的ListSet扩展,以将有限集用作类的属性:
Require Import ListSet.
Class aux := {
attribute1: set;
attribute2: set -> set;
}.
但我遇到此错误:
Error: In environment
aux : Type
The term "set" has type "Type -> Type" which should be Set, Prop or Type.
我不明白为什么会这样。 (我是Coq的新手)
答案 0 :(得分:1)
Coq告诉您set
不是类型,而是类型Type -> Type
,意味着它以类型作为参数。
如果您查看定义:https://coq.inria.fr/library/Coq.Lists.ListSet.html
您会看到它确实需要一个参数。
因此,对于某些类型为{{1}的类型,您要考虑的类型为set A
,实际上,A
模块带来的只是list A
类型,是对{{ 1}}保留不变性,例如您没有相同元素的两倍。
也许这些不是您要记住的设置。