第十章代数语义学ppt课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• • • •
定义10-4 (单射,满射,双射) 若有态射函子f: A→B,对于任意两对象a1,a2∈A,且a1≠a2,都有f(a1)≠f(a2), (f(a1),f(a2)∈B),则f称为单射(injective)函子。 对于任意b∈B都可以找到一个a∈A,使得b|| =|| f (a),则f称为满射(surjective) 函 子。 若 f:A→B 的 f 既是单射又是满射,则 f 是可逆的,即存在 f -1 :B→A 。 f 称为双射 (bijective) 函子。 定义10-5(同态映射homomorphism) 若态射函子f: A→B是从代数(A,OP)到(B,OP,)的映射。如果对任意op∈OP,a1, a2,…an∈A有: f (op (a1,a2,…an)) = op' (f(a1),f(a2),…f(an)) (10-1)
•
更为抽象的是泛代数(universal algebra) 它把具体代数看作是具有某种操作性质的“对象”去研究各“对象”的“关系”。 这些“关系”被抽象为态射(morphism)。 • 定义10-2(子代数) 设(A,OP)是一个代数 ,(B,OP)也是一代数且(A,OP),则称(B,OP)是(A,OP) 的子代数,写为(B,OP)≤(A,OP)。 • 定义10-3 (范畴category) 范畴C是(ob(C),morp(C))的二元组。其中ob(C)为集合对象X,Y,Z,…等的象 元集合,morp(C)为C(X,Y),C(Y,Z),C(X,Z),…组成的态射集合。C(X,Y)为X到Y 的态射(morphism)集合,也可以写作f:X→Y,f∈C(X,Y)。X为态射函子f(function) 的域(domain),Y为f的协域(codomain)。公理保证这种映射总是有效。 对于每个态射函数的对偶(f,g),若一态射函数的域是另一态射函数的协域,即f:X→Y; g: Y→Z,则可利用组合算子o形成新的态射f o g: X→Z。组合算子服从结合律。若f: X→Y,g:Y→Z,h:Z→W,则有: (h o g) o f = h o (g o f): X→W 对于范畴每一对象X均存在着恒等(identity)态射idx: X→X。因此,对任何态射有: idx o f : (X→X) o (X→Y) = X→Y: f g o idy f : (Y→Z) o (Y→Y) = Y→Z: g 态射是表达两代数的结构相似性的有力工具。
第十章 代数语义学
• 代数语义学是用代数的方法来处理满足一计算逻辑的各种模型。把模型 的集合看作是代数结构。代数语义学公理规定算子的组合规则和约束。 算子集和域上值集的关系正好是代数系统研究的范畴。 • 代数规格说明成为语法、语义一体化描述的形式基础。 • 10.1 代数基础 • 定义10.1 代数是形如(A,OP)的对偶,其中A是承载子(carrier)集合,OP 代表了操作符的有限集。 OPi(a1,a2,…an) = as: A→A(ai,as ∈A,i = 1‥n) • 具体代数 ({true,false},{∧,∨, }) //布尔代数 (N,{+,*}) //整数代数 (S,{gcd,lcm}) //S-代数
• 抽象代数 只给出一抽象的A集合和(组合)算子{o},以及在构造中某些必需满足的 公理、定理。 • 抽象代数从更高的层次上研究构造子和承载子之间的关系,它不规定具体 的值集和操作集,只给出一抽象的A集合和(组合)算子{o},以及在构造中 某些必需满足的公理、定理。《抽象代数》中对构造子不同的约定(即应满 足的性质)得到不同的抽象代数: • 群: (A,{o}) //o不满足任何定理 • 半群: (A,{o}) // o必需满足结合律: x o (y o z) = (x o y) o z 独导半群满足恒等定律: x o (i(a)) = x = (i(a)) o x
同态保持两代数结构的相似性,同构即两代数结构相等,仅管其中值集不相同。 BOOLEAN = ({true,false},not) not(true) = false not(false) = true A = ({0,1},flip) flip(0) = 1 flip(1) = 0 B({yes,no, maybe},change) change(yes) = no change(no) = yes change(maybe) = maybe C({any},same) same(any) = any 若有态射函子h: BOOLEAN→A。具体定义是: h(true) = 1,h(false) = 0 我们验证(10-1)式,先看右侧: h(not(true) = h(flase) = 0 再看右侧: flip(h(true)) = flip(1) = 0 因此,代数 BOOLEAN 和代数 A 是同态的,且对于 0 , 1 均有映射 ( 满射且直射 ) ,故 BOOLEAN和A同构。h -1(1) = true,h-1(0) = false成立。
//其中(A,{o})是一个半群, i是恒等操作(函数)
i(a)为A的单位元。若o是+,A是整数集,i((a) = 0。同样若o是*,i(a) = 1。 单位元是相对o而言的。 每一群(A,{o , i })中都有一逆操作i-1的独异(A,{o,i-1})满足逆定律: x o i-1 = i(a) = i-1 o x
• •
• • •
• • •
Leabharlann Baidu
其中op'∈OP',f(a1),f(a2),…f(an)∈B,n = 0,1 … k。意即代数A中某k目操作 op,若将其k个变元先映射到代数B中,总可以找到同目的操作op',以映射后的变元 作变元,其结果和op运算后再映射的结果一致。(A,OP),(B,OP,)是同态的。 同理。若f: A→B中f是单射的且满足(10-1),则称单同态(monomorphism)。 若f是满射的且满足式(10-1),则称满同态(epimorphism)。 若f是双射的且满足式(10-1),则称同构(isomorphism)。