读书笔记: 范畴论

读书笔记: 范畴论

基本概念

范畴论

  • 数学构造(Mathematical structure)
    在数学上,在集合上的一个构造是一个附加的数学对象,赋予这个集合某种意义。

  • 范畴论(category theory)
    范畴论的目的是:规范化数学构造。
    方法为:使用带标签的有向图。
    研究内容:各种数学结构之间的关系。

范畴(category)

一个范畴是一个带标签的有向图,其节点为对象(object),带有标签的有向边为箭头(arrow or morphism)。

一个范畴C包含3个数学实体:

  • 对象集合:ob(C)
    每个元素都是一个对象,一个对象又可以认为是一个集合。

  • 态射集合: hom(C)
    态射集合的每个元素是一个态射, f:ab,每个态射f有一个源对象(source object) a和目标对象(target object)b。
    hom(a,b)表示从a到b的所有态射。

  • 性质:二元操作:态射结合(composition of morphisms):
    f:ab,g:bc 的结合是 gf。具有

    • 满足结合律(Associativity): h(gf)=(hg)f
    • 存在恒等态射(identity):
      对于每个对象x,存在一个恒等态射(identity morphism) 1x:xx
      其性质为,对于任何态射f:ab,有1bf=f=f1a
      恒等态射的含义是:定义了相同关系(equality relation A = B)。
      可以简单的认为是;f(x)=x

态射(morphism)

态射可以理解为一个函数,在范畴论中,往往表示为一个对象和另一个对象的map关系。
态射作为函数理解的时候,不用纠结于参数的个数。

态射的种类(f:ab):

  • 单态射(monomorphism or monic)
    如果fg1=fg2g1=g2,g1,g2:xa
    其含义是:不存在两个a中元素 map 到同一个b中的元素。
    a1,a2A,a1a2f(a1)f(a2)

  • 满态射(epimorphism or epic)
    如果g1f=g2fg1=g2,g1,g2:bx
    其含义是:每一个b中的元素,都在a中有至少一个 source mapper。

  • 双态射(bimorphism)
    即是单态射,有时满态射。

  • 同构(isomorphism)
    如果存在一个同构g:ba,有fg=1b,gf=1a
    其含义是:a,b两个对象的元素存在一对一的 map 关系。
    同构 = 双态射 + 存在逆态射。
    g称为逆态射,也是一个同构,g 的逆态射是 f。
    比如:f是加法,g是减法。

  • 自态射(endomorphism)
    表示一个态射源对象和目标对象是同一个, f:aa。记为:end(a)。

  • 自同构(automorphism)
    如果f既是一种自态射,又是具有同构性。记为:aut(a)。

  • 撤回射(retraction)
    如果存在一个f的右逆,也就是说,如果存在: $g : b \to a, f \circ g = 1_b。
    f 是另一个态射g的撤回射,其含义是:g 可以通过f找到 source element。f必定是一个满态射(epimorphism)。

  • 部分射(section)
    如果f的左逆是存在的,也就是说,如果存在: $g : b \to a, g \circ f = 1_a。
    f 是另一个态射g的部分射,其含义是:f 确定了g的同构部分。f必定是一个单态射(monomorphism)。
    是不是可以理解为f的g应用的一个条件???

  • 同态(homomorphism)
    同态(homomorphism)是一个态射,表示一个数学结构\mathcal{A}(C, *, e)到另一个数学结构\mathcal{B}(C', ', e')的map关系,并且维持了数学结构上的的每一种操作
    同态(homomorphism) f:AB,有:
    f(xy)=f(x)f(y)

    同一种操作在不同的数学结构上定义可以不同。
    比如:指数函数是一个同态。

(1)f:RRf(x)=exex+y=exeyf(xy)=f(x)f(y)wheref exponential function is a homomorphismthe source is A=Rthe target is B=R=+ in A=× in B

  • 域(domain)/协域(codomain)
    对于一个态射(morphism) f:ST。 域(domain)是这个态射的源,协域(codomain)是这个态射目标。

  • 范畴的表达

    1. 表达1

(2)C=(Ob(C),HomC(x,y),idx,)whereOb(C)SetobjectHomC(x,y)Setmorphism | x,yOb(C)idxHomC(x,x) : identity morphism of x:HomC(y,z)×HomC(x,y)HomC(x,z) : composition formulaIdentity Law:x,yOb(C),f:xyfidx=fidyf=fAssociative Law:w,x,y,zOb(C),h:wx,g:xy,f:yz(hg)f=h(gf)HomC(w,z)

函子(functor)

函子是范畴之间的map关系。可以理解为范畴之间的态射。

  • 协变(covariant)函子
    F:CD, F包含:
    • 对于每一个 C 中的对象x,对应一个 D 中的F(x)。
    • 对于每一个C中的态射f:xy,对应D的态射F(f):F(x)F(y)
  • 逆变(contravariant)函子
    和协变函子类似,只不过态射的方向是从D到C。

自然转换(Natural transformation)

自然转换是两个函子之间的关系。函子描述“自然构造(natural constructions)”,自然转换描述两个这样构造的"自然同态(natural homomorphisms)"。
homomorphism的意思是相同的形状。

其它

  • 本体(olog)

  • 交换图(commutative diagram)

  • 通用性质(universal property)
    如果,两个数学结构是同构(isomorphism),那么它们之间就存在通用性质。
    同构意味着两个数学结构X和Y中的元素是存在一一对应。
    那么,Y上的性质(态射)意味着X上存在一个对应的性质(态射)。比如:
    X = {A, B, C}
    Y = {1, 2, 3}
    A --> 1
    B --> 2
    C --> 3
    如果+(1, 2) = 3,我们也可以认为存在 +(A, B) = C。起点性质。
    如果+(1, 2),我们也可以认为存在 +(C) = (A, B)。起点性质。
    通用性质(universal property)要么是一个起点性质(initial property),要么是一个终点性质(terminal property)。

    • 起点性质(initial property)
      唯一存在

(3)U:DCD{A,Y}C{X,U(A),U(Y),ϕ:XU(A)}initial property:f:XU(Y)g,g:AYU(g),g:U(A)U(Y)

  • 终点性质(terminal property)
    唯一存在

(4)U:DCD{A,Y}C{X,U(A),U(Y),ϕ:U(A)X}terminal property:f:U(Y)Xg,g:YAU(g),g:U(Y)U(A)

  • 起点性质示例

(5)X=(L:(a,b,c),A:L×L,B:L)Y=(N:(1,2,3),Ay:N×N,By:N,Cy:Ay)ϕ:CyAy=ce.g. (1,2)=(1,2)f:CyBy=c1+c2e.g. 1+2=3g:ABe.g. a+b=c

  • 终点性质示例

(6)X=(L:(a,b,c),A:L×L,B:L)Y=(N:(1,2,3),Ay:N×N,By:N,Cy:By)ϕ:AyCy=a1+a2e.g. 1+2=3f:ByCy=be.g. 3=3g:BAe.g. c=a+b

  • 拉回(pullback)
  • 推出(pushout)
  • limit/colimit

关系

  • 二元关系(binary relation)
    一个基于集合X的二元关系,是一个RX×X的子集。

  • 等价关系(equivalence relations)
    一个集合X上的等价关系,是一个RX×X的子集,具有

    • 自反性(Reflexivity)
      (x,x)R
    • 对称性(Symmetry)
      $(x, y) \in R \text{, iff } (y,x)R$
    • 传递性(Transitivity)
      $\text{if } (x, y) \in R, (y, z) \in R \text{, then } (x,z)R$

幺半群(monoid)

幺半群可以代表一个序列或者列表。

  • 幺半群(monoid)
    一个幺半群是一个序列(sequence)(M,e,)。M是一个集合,
    eM是一个元素,成为单位元素(identity element)。
    :M×MM是一个函数,称为乘法公式(multiplication formula)。
    幺半群具有以下属性:

    • 同一律(identity law)
      me=m
      em=m
    • 结合律(associativity law)
      (mn)p=m(np)
      比如:字符串就是一个幺半群,e = "", = +。
  • List in set
    集合X,在X上的List是

(7)(n,f)wherenN : the length of the listf:n_Xn_={1,2,,n}

记做:

(8)(n,f)=[f(1),f(2),,f(n)]

  • 列表单体(free monoid generated by X)
    M:=(List(X),[],++)
    List(X);集合X的元素列表集合。
    []是一个空列表。
    ++是连接操作(concatenation)。

  • 显示幺半群(presented monoid)

显示幺半群的作用是提供了替换方法。
由有限集合G和等价关系产生的显示幺半群(the monoid presented by generators G and relation (mi,mi)|1in)

(9)M={M,e,}where{(xmiyxmiy)|x,yList(G),1in} : equivalence relationM=List(G)/e=[] : concatenating operation

  • 循环(cyclic)幺半群

循环幺半群的作用是提供了一个环形列表的定义方法。
循环(cyclic)幺半群是只有一个等价关系的显示幺半群。

  • 幺半群行动(monoid actions)
    在集合S上的幺半群(M,e,)的行动为函数:

(10)

符号

术语 English Notation
单态射 monomorphisms
满态射 epimorphisms
同构 isomorphisms

群(group)

group是一个monoid,并且每个元素都有一个倒数(inverse)。
推论:倒数具有唯一性。

图形(graphs)

图形(graphs)是由多个顶点(vertex)和顶点之间的箭头(arrow)定义而成。
路径(path)

顺序(order)

  • 预次序关系(preorder)
    预次序关系(preorder)(S,)是一个基于集合S的二元关系RS×S
    R的关系:if (s,s)R,then ss
    并且有

    • 自反性(Reflexivity): ss
    • 传递性(Transitivity): if ssand ss",then ss"
  • 部分有序(partial order)
    部分有序(partial order)是预次序关系,并且

    • 反对称性(Antisymmetry)
      如果s <= s', 并且 s' <= s, 则 s = s'。
  • 线性有序(linear order)
    线性有序(linear order)是部分有序,并且

    • 可比较性(Comparability)
      要么 s <= s', 要么 s' <= s。
  • 派系(clique)
    派系(clique)中的每两个点都是毗邻的(adjacent)。

(11)cliqueSwhere(S,) is a preorderSSab,a,bS

  • meet 和 join
    (S,)是一个preorder。s,tS
    s和t的meet(the biggest thing smaller than both)是一个元素wS
    表示为:wst
    具有:

(12)wswtxw | xS,xs & xt

s和t的join(the smallest thing bigger than both)是一个元素wS
表示为:wst
具有:

(13)swtwwx | xS,sx & tx

meet 和 join 不一定是唯一的。任何两个meet一定在同一个派系内。

digraph finite_state_machine {
    rankdir=LR;
    size="8,5"

    node [shape = doublecircle]; S;
    node [shape = point ]; qi

    node [shape = circle];
    qi -> S;
    S  -> q1 [ label = "a" ];
    S  -> S  [ label = "a" ];
    q1 -> S  [ label = "a" ];
    q1 -> q2 [ label = "ddb" ];
    q2 -> q1 [ label = "b" ];
    q2 -> q2 [ label = "b" ];
}
  • 反顺序(Opposite order)
    S:=(S,)是一个预次序(preorder),则反顺序Sop:=(s,op),
    有:
    ssss

  • 次序的态射(morphism of orders)
    S:=(S,)S:=(S,)次序的态射f,表示为f:SS

(14)if s1s2, then f(s1)f(s2)

Database vs Graph

  • 路径等价声明(path equivalence declaration)
    图形G:=(V,A,src,tgt), PathG为G中所有路径的集合。
    pq|p,gPathG为路径等价声明,表示p,g有相同的起点和终点。
    在G上的一个一致(congruence) 是一个在PathG上的 等价关系,具有:
  1. 是一个等价关系.
  2. 如果 pq,则src(p) = src(q).
  3. 如果 pq,则tgt(p) = tgt(q).
  4. 假设 p,q:bc是路径,并且m:ab。如果 pq,则mpmq.
  5. 假设 p,q:bc是路径,并且n:bc。如果 pq,则pnqn.

是一个集合,定义了图形上的所有约束。

  • 引理:假设psimeqq:ab,rs:bc,则prqs

  • Database Schema
    Database Schema C:=(G,),G是一个图形,是G上的一致。

  • Olog = Database Schema

  • 实例(instance)
    一个顶点对应的集合,和出入箭头的所有路径上的节点集合。

(15)(PK,FK):CSet is an instancewhereC=(G,)G=(V,A,src,tgt)PK:VSet, one set for one vertexFK(a):PK(v)PK(w) | v=src(a),w=tgt(a),aA

  • 路径法则(Law 1 - Path through a database)

(16)FK(am)FK(a1)(x)=FK(an)FK(a1)(x)=PK(w),xPK(v)wherep=va1a2am:vwq=va1a2an:vwpq

范畴化

如何将一个monoid/order group/group index通过一个函子转化成一个范畴。

Database Schema present categories

参照

posted @   SNYang  阅读(4546)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示