coq - 如何在 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 的新手)
解决方案
Coq 告诉你这set
不是类型,而是类型,Type -> Type
意思是它需要一个类型作为参数。
如果您查看定义:https ://coq.inria.fr/library/Coq.Lists.ListSet.html
您可以看到它确实需要一个参数。因此,您要考虑的类型是set A
某种类型A
,实际上它只是 type list A
,ListSet
模块带来的是set A
保留不变量的操作,例如您没有两次相同的元素。
也许这些不是你想到的集合。
推荐阅读
- ajax - 我的 DataTable 的第一列与所有 DataTable 标题的宽度相同
- node.js - n 不会更改 node.js 版本
- php - 为什么我的 PHP 在从 AJAX 调用时无法识别我的其他类?
- bash - 如何将终端输出块拆分为可以循环的数组元素
- javascript - 如何使用浏览器进行查找/获取 DHT 数据
- c# - GC.CollectionCount 是否只分析分代堆?C# .netcore
- kdb - 给定 10x10 矩阵 m:(10 10)#100?1f In kdb/q
- database - Windev - 创建数据库管理(后台)
- c# - IIS 服务器如何同时处理请求?
- .net-core - Blazor WASM 的 JetBrains Rider 或 Dotnet Core 缓存问题