你可以通过学习各种各样的例子来真正欣赏范畴。范畴有各种形状和大小,经常出现在意想不到的地方。我们将从一些非常简单的东西开始。

3.1 No Objects

最小的范畴是拥有 0 个对象的范畴。因为没有对象,自然也就没有态射。它本身是一个非常可悲的范畴,但是它在其他范畴的上下文中可能很重要,例如,在所有范畴的范畴中(是的,有这么一个范畴)。如果你认为一个空集是有意义的,那么为什么空范畴就不会有意义呢?

3.2 Simple Graphs

您可以通过用箭头【arrows】连接对象【objects】来构建范畴【category】。您可以想象从任何一个有向图【directed graph】开始,通过简单地添加更多箭头【arrows】,即可以将其变成一个范畴。首先,在有向图【directed graph】的每个节点上添加一个恒等箭头【Identity Arrow】。然后为任意两个首尾相连的箭头(换句话说,即任意两个可组合的箭头)增加一个组合箭头。每次你添加新箭头时,还必须要考虑任意其他箭头(除恒等箭头之外)与其自身的组合。通常会得到无穷多个箭头,但这没关系。

让我们从另一个角度看这个过程,您正在创建一个范畴,对于有向图【directed graph】中的任一节点,范畴都有一个对应的对象【object】,而有向图【directed graph】中由所有可组合的边【edgs】所构成的链【chains】,范畴都有一个对应的态射 (你甚至可以把恒等态射看作为长度为零的链的特殊情况)。

PS:有向图【directed graph】中的“链【chains】”是指连续的边(即首尾相连的边),它使得连接有向图【directed graph】中的两个顶点成为可能。通俗而言,边【edge】即是范畴中对象与对象之间的箭头,链【chains】则是箭头的组合!!

这种由给定的图而衍生出的范畴,被称为自由范畴【 free category】。它是一种自由构造【free construction】的例子,即给定一个结构,并用符合法则(这里指的是范畴的法则)的最小数量的条目来扩展它。我们接下来看到更多这样的例子。

3.3 Orders

现在出现了截然不同的情况!现在有这样一个范畴,它所包含的态射是用来描述两个对象【objects】之间的关系:小于等于的关系。那么我们接下来来检查它是否是一个范畴。

  • 它有恒等态射吗?每一个对象都小于或者等于自身----匹配!
  • 它可以组合吗?如果a<=b & b <= c,那么a <= c ----匹配!

具有这种关系的集(合)也被成为预序【preorder,也可称为准序列,即quasiorder】,因此预序本质上是一个范畴

注:

考虑集合 P 及其上的二元关系 <= 。若 <= 具有自反性和传递性,则称 <= 为预序。
具体来说,对任意 P 的元素 a,b 和 c,下列性质成立:
① a <= a (自反性)
② 若 a <= b 且 b <= c,则 a <= c (传递性)
带预序的集合称为预序集合。
如果一个预序同时满足反对称性(若 a <= b 且 b <= a,则 a = b)的预序被称为偏序。
如果一个预序同时满足对称性(若a <= b,则b <= a),则为等价关系
PS: 该定义中的 <= 指的是一个二元操作,并非小于等于的意思!!

除此之外,你还可以通过额外施加这样一个条件,即如果a <= b且b <= a,则必须a = b,来得到一个更强的关系,这也被称为偏序【partial order】。

最后,您还可以再施加一个条件,即集合中的任何两个对象都以某种方式彼此关联;这就得到了一个全序【total order,也成为线性序,即linear order】

注:

全序关系即集合 X上的反对称的、传递的和完全的二元关系(一般称其为 <=)。若 X满足全序关系,则下列陈述对于  X中的所有a,b和c成立:
① 反对称性:若 a <= b且b <= a则 a = b
② 传递性:若 a <= b且 b <= c则 a <= c
③ 完全性: a <= b 或 b <= 1
满足全序关系的集合叫做全序集合、线性序集合、简单序集合或链。 链还常用来描述偏序集合的全序子集。
全序关系的完全性可以如下这样描述:集合中的任何一对元素都是可相互比较的。
注意:完全性条件蕴涵了自反性: a <= a,因此全序关系也是(满足“完全性”条件的)偏序关系。

让我们把这些有序的集合描述为范畴。

预序是一个最多只有一个态射(该态射表示的是从任意对象a到任意对象b的映射)的范畴。对于这种范畴还有另外一个名字:瘦【thin】。一个预序也是一个瘦范畴。

在范畴C中,从对象a到对象b的态射集也被成为hom-set,写作

范畴论:1.3 大大小小的范畴相关推荐

  1. Haskell 与范畴论

    说到 Haskell,这真是一门逼格极高的编程语言,一般初学者如果没有相关函数式编程的经验,入门直接接触那些稀奇古怪的概念,简直要跪下.现在回想起来,隐隐觉得初学者所拥有的命令式编程语言(impera ...

  2. 范畴、类型、复合、函数式编程

    范畴是一系列有联系的概念的集合: 类型关乎复合 范畴论与箭头的复合有关.但是并非任意两个箭头都可以复合.一个箭头的目标对象必须与下一个箭头的源对象相同,这样的两个箭头方能复合.在编程中,我们将一个函数 ...

  3. 由集合范畴到事实价值

    集合论和范畴论都是现代数学的重要分支,它们有一些相似之处,也有一些不同之处.两者相似之处是:1. 都是数学中的基础理论:集合论和范畴论都是数学中的基础理论,它们为其他分支的研究提供了基础和工具.2. ...

  4. Haskell 与范畴论-函子、态射、函数

    范畴论基本概念 如果你是第一次听说范畴论(category theory),看到这高大上的名字估计心里就会一咯噔,到底数学威力巨大,光是高等数学就能让很多人噩梦连连.和搞编程的一样,数学家喜欢将问题不 ...

  5. Haskell与范畴论

    http://www.yi-programmer.com/blog/2010-04-06_haskell_and_category_translate.html#id24 白菜 - 精确编程 Home ...

  6. (转)Haskell与范畴论

    Haskell与范畴论 http://www.yi-programmer.com/blog/2010-04-06_haskell_and_category_translate.html 用haskel ...

  7. 【JS】446- 你不知道的 map

    本文来自[前端早读课],内容不错,推荐给大家. 前言 今日早读文章由酷家乐@Gloria投稿分享. 正文从这开始-- 作为前端工程师,你肯定用过Array.prototype.map方法. 如果你听说 ...

  8. 完备性的定义(ZZ)

    完备性 在数学及其相关领域中,一个对象具有完备性,即它不需要添加任何其他元素,这个对象也可称为完备的或完全的. 简介 完备性也称完全性,可以从多个不同的角度来精确描述这个定义,同时可以引入完备化这个概 ...

  9. 范畴论 Kleisli范畴

    您已经了解了如何将类型[types]和纯函数[ pure functions]建模为范畴. 我还提到范畴理论中有一种对副作用[ side effects]或非纯函数[non-pure function ...

最新文章

  1. javascript: new Date(string)在IE中显示NaN的问题!
  2. c语言中freopen函数,fopen和freopen_C中freopen和fopen的区别(用法+详解+区别)
  3. Java线程之守护线程(Daemon)
  4. Java 面向对象 --单例模式
  5. 在CentOS4上安装JMagick
  6. 那些互联网IT岗位的招聘潜台词,能看到说明你是历经磨难的老司机
  7. Javascript特效:表单选中、取消选中、反选
  8. C语言多线程基础-01-线程的创建与销毁
  9. 百度ueditor使图片在编辑器中自适应大小
  10. Unity_AR制作_80
  11. 我问自己代言,甄嬛篇
  12. [AV1] AV1 Video Codec
  13. Python-标准库calendar的使用
  14. 模拟海_学前教育系未来之星 课堂模拟大赛
  15. 中国软件10大最具影响力人物
  16. 关于 苏生不惑 公众号
  17. 毕业后的档案问题如何处理
  18. 主数据管理系统mdm哪个产品好,为什么,越详细越好?
  19. diskpart修改盘符
  20. [SSD固态硬盘技术 8] 固件概述和固件升级

热门文章

  1. 二级建造师什么专业好考?
  2. web前端微信小程序水平仪,如何做水平仪
  3. 如何实现换脸呢?只要一款安卓软件,不需要编程知识
  4. 宝贝全计划: 针对0-6岁儿童教育的移动应用软件
  5. OpenCV神技——人脸检测,猫脸检测
  6. 你真的会用Stream流吗,面试中问到你使用过Stream流吗?你知道那些方法?
  7. 落寞的枭雄家乐福中国,如何挽回颓势?
  8. Server 2008R2更新系统失败,提示8000FFFF的解决方法
  9. Webpack 3 —— 了解
  10. Android开机自启动C程序调试