如何在Coq中的类属性中使用以列表形式表示的有限集?

时间:2020-07-15 20:49:03

标签: coq

我正在使用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的新手)

1 个答案:

答案 0 :(得分:1)

Coq告诉您set不是类型,而是类型Type -> Type,意味着它以类型作为参数。

如果您查看定义:https://coq.inria.fr/library/Coq.Lists.ListSet.html 您会看到它确实需要一个参数。 因此,对于某些类型为{{1}的类型,您要考虑的类型为set A,实际上,A模块带来的只是list A类型,是对{{ 1}}保留不变性,例如您没有相同元素的两倍。

也许这些不是您要记住的设置。