首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义集合的方式可以通过可拓展性证明相等性

定义集合的方式可以通过可拓展性证明相等性
EN

Stack Overflow用户
提问于 2020-04-10 03:14:58
回答 1查看 33关注 0票数 3

我需要定义集合(对于我的用法,只有有限的集合是足够的),这样就可以证明下面的引理。

代码语言:javascript
复制
Lemma set_extensionality: forall X A B,
  (forall x, set_in x A <-> set_in x B) -> A = B.

一种方法是使用列表来表示集合,但附加条件是列表不重复任何元素并且是升序的。就像这样

代码语言:javascript
复制
Inductive set (X : Type) : Type :=
  | set_cons (l : list X) (Hnd : NoDup l) (Hasc : asc l).

但不幸的是,我不能定义asc,因为我需要对任意类型的X进行排序。

另一种方法是使用谓词作为集合,并添加函数扩展作为公理。

代码语言:javascript
复制
Inductive set (X : Type) : Type :=
  | set_cons (P : X -> Prop).

但我不喜欢使用任何公理或额外的假设。有关于如何实现这一点的想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-10 03:37:25

您可以通过强制对列表的元素进行排序来获得扩展相等。有许多采用这种方法的库,包括我自己的Extensional Structures (在GitHub页面上有更多替代方案的链接)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61128600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档