An introduction to (co)algebra and (co)induction

B. Jacobs, J. Rutten
{"title":"An introduction to (co)algebra and (co)induction","authors":"B. Jacobs, J. Rutten","doi":"10.1017/CBO9780511792588.003","DOIUrl":null,"url":null,"abstract":"Algebra is a well-established part of mathematics, dealing with sets with operations satisfying certain properties, like groups, rings , vector spaces, etcetera. Its results are essential throughout mathematics and other sciences. Universal algebra is a part of algebra in which algebraic structures are studied at a high level of abstraction and in which general notions like homomorphism, subalge-bra, congruence are studied in themselves, see e.g. [Coh81, MT92, Wec92]. A further step up the abstraction ladder is taken when one studies algebra with the notions and tools from category theory. This approach leads to a particularly concise notion of what is an algebra (for a functor or for a monad), see for example [Man74]. The conceptual world that we are about to enter owes much to this categorical view, but it also takes inspiration from universal algebra, see e.g. [Rut00]. In general terms, a program in some programming language manipulates data. During the development of computer science over the past few decades it became clear that an abstract description of these data is desirable, for example to ensure that one's program does not depend on the particular representation of the data on which it operates. Also, such abstractness facilitates correctness proofs. This desire led to the use of algebraic methods in computer science, in a branch called algebraic specification or abstract data type theory. The object of study are data types in themselves, using notions and techniques which are familiar from algebra. The data types used by computer scientists are often generated from a given collection of (constructor) operations. The same applies in fact to programs, which themselves can be viewed as data too. It is for this reason that \" initiality \" of algebras plays such an important role in computer science (as first clearly emphasised in [GTW78]). See for example [EM85, Wir90, Wec92] for more information.","PeriodicalId":129836,"journal":{"name":"Advanced Topics in Bisimulation and Coinduction","volume":"36 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"57","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Advanced Topics in Bisimulation and Coinduction","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1017/CBO9780511792588.003","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 57

Abstract

Algebra is a well-established part of mathematics, dealing with sets with operations satisfying certain properties, like groups, rings , vector spaces, etcetera. Its results are essential throughout mathematics and other sciences. Universal algebra is a part of algebra in which algebraic structures are studied at a high level of abstraction and in which general notions like homomorphism, subalge-bra, congruence are studied in themselves, see e.g. [Coh81, MT92, Wec92]. A further step up the abstraction ladder is taken when one studies algebra with the notions and tools from category theory. This approach leads to a particularly concise notion of what is an algebra (for a functor or for a monad), see for example [Man74]. The conceptual world that we are about to enter owes much to this categorical view, but it also takes inspiration from universal algebra, see e.g. [Rut00]. In general terms, a program in some programming language manipulates data. During the development of computer science over the past few decades it became clear that an abstract description of these data is desirable, for example to ensure that one's program does not depend on the particular representation of the data on which it operates. Also, such abstractness facilitates correctness proofs. This desire led to the use of algebraic methods in computer science, in a branch called algebraic specification or abstract data type theory. The object of study are data types in themselves, using notions and techniques which are familiar from algebra. The data types used by computer scientists are often generated from a given collection of (constructor) operations. The same applies in fact to programs, which themselves can be viewed as data too. It is for this reason that " initiality " of algebras plays such an important role in computer science (as first clearly emphasised in [GTW78]). See for example [EM85, Wir90, Wec92] for more information.
介绍(co)代数和(co)归纳法
代数是数学中一个完善的部分,它处理集合和满足某些性质的运算,比如群,环,向量空间等等。它的结果在数学和其他科学中都是必不可少的。普遍代数是代数的一部分,其中代数结构是在高抽象水平上研究的,其中一般概念如同态、次代数、同余等本身也是研究的,参见[Coh81, MT92, Wec92]。当一个人用范畴论的概念和工具学习代数时,在抽象的阶梯上又走了一步。这种方法导致了一个特别简洁的代数概念(对于函子或单子),参见[Man74]。我们即将进入的概念世界,在很大程度上要归功于这种范畴论的观点,但它也受到普遍代数的启发,例如[Rut00]。一般来说,用某种编程语言编写的程序对数据进行操作。在过去几十年计算机科学的发展过程中,很明显,需要对这些数据进行抽象描述,例如,确保程序不依赖于它所操作的数据的特定表示。此外,这种抽象性有助于正确性证明。这种愿望导致了在计算机科学中使用代数方法,在一个称为代数规范或抽象数据类型理论的分支中。研究的对象是数据类型本身,使用从代数中熟悉的概念和技术。计算机科学家使用的数据类型通常是由给定的(构造函数)操作集合生成的。这同样适用于程序,程序本身也可以被视为数据。正是由于这个原因,代数的“初始性”在计算机科学中起着如此重要的作用(在[GTW78]中首次明确强调)。参见[EM85, Wir90, Wec92]获取更多信息。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信