Let's Study Category Theory

Pages Possibly for Novice Computer Science Learners

24th Oct. 2019 Updated
by Akihiko Koga, 31st Aug. 2017 (First Version)

Cat is CCC with Fun(C, D)

Contents

- Motivations

I was a software researcher of a certain Japanese company. I retired the company in April 2014 when I was 55 yeas old.

Recently I realized Category Theory is important for software/computer science and started to study it by reading text books.

I think there are some kinds of hurdles to understand the category theory for the person without enough maturity of mathematics. To tell the truth, category theory is too difficult (for me).

Studying the category theory by oneself requires a lot of patience and causes fears such as

While it is important to study the theory steadily, proving the theorems carefully, it is also useful to grasp the whole map of the theory beforehand, the mile stones we will study and the valuable results we will acquire.

In this site, I write simple summaries of text books, etc, studying them by myself. While learning the category theory should require one's real efforts, the knowledges of the notions in whole text book in advance will help the study as I said just above (these knowledges act as, so to say, "Advance Organizers" in education).

For the time being, I will make very short summaries of some books/lecture notes (The first candidate may be Awodey's "Category Theory").

Lastly, please note the following might contain my misunderstandings, since I am also studying them.

- Rich Resources for Study of Category Theory

The following link of Dr. Peter Smith's site lists up plenty of the resources for studying category theory classifying into books, lecture notes, videos, ... I looked for some text books/lecture notes to read.
Logic Matters : Category Theory
Dr. Peter Smith is a person who wrote the following simple introduction of Galois connection used to understand the relationship between logical systems and its interpretation structures. This paper is very easy to understand.
The Galois Connection between Syntax and Semantics

I wrote a very simple introduction of the paper. Please refer to here
Galois connection between syntax and semantics by peter smith

He (Peter Smith) also wrote a text book for category theory.

Peter Smith: : Category Theory: A Gentle Introduction, 2016
The adjective "Gentle Introduction" sounds sweet.

- Short Explanations of text books/lecture notes

When an explanation is relatively long, I wrote it at the page linked. Please put the link for those books. When an explanation is short, it is written here.

  1. Steve Awodey : Category Theory, 2006

    This is a famous text book. It contains topics in computer science, lambda-calculus, logic, etc.

    I wrote a short explanation of the whole contents. Please press the picture or here.

  2. Tom Leinster : Basic Category Theory, 2014

    This book does not contain computer science topics. It is a very thin book that enables relatively rapid study. It contains full of examples and seems to try to tell vivid images to readers.

    I wrote a short explanation of the whole contents. Please press the picture or here.

  3. M. Barr and C. Wells : Category Theory for Computing Science, 1998, 558 pages
    It is relatively thick book, and contains a lot of interesting topics in computer science.

    I linked a sort of its expanation page below. I am sorry that it is written in japanese, since I do not have enough energy to write it in english now. But, most figures are written in english.

    24th Oct. 2019

  4. Peter Smith : Category Theory : Gentle Introduction, 2016

    The autor is Dr. Peter Smith I wrote just above.

    The title says this book is "Gentle Introduction".

    In the beginning of chapter 4, the author says that this book is slow space for the readers without enough maturity of mathematics. Chapter 1 to 12 (page i - page 119) are about the topics inside categories. chapter 13 to chapter 27 are about the topics between categories. The polycy and structure of the book are contrast to Leinster's "Basic Category Theory". Leinster's book introduces "Adjoints" very fast.

    At the day of 9th Oct. 2017, the chapters after "25 Adjoints introduce" are not yet stable, they may be changed.

    This book is trying to tell background knowledge of concepts that are described only technically in other (usual) text books. For example, it has three chapters concerning natural transformations, "18 Natural isomorphism", "19 Natural transformations and functor categories", "20 Equivalent categories" roughly corresponding to the "chapter 7 Naturality" of Awodey's "Category Theory". I used those chapters as complemented information (mainly about "background rationale of the concepts introduced) when I read Awodey's chapter 7.

  5. David I. Spivak: Category Theory for the Sciences, 2014, 263 pages

    The phrase "for scientists" seems attractive...

    Though this book is published from MIT Press, the PDF of its previous version is available freely at

    David I. Spivak, "Category Theory for Scientists (Old Version)", September 17, 2013"

    I bound the printed material by my self( binding method (written in Japanese)) and began to read.

    (the rest is to be filled)

  6. Benjamin Pierce : A Taste of Category Theory for Computer Scientists, 1988, 75 pages

    It is very short lecture note of 75 pages in total, 37 pages about basics of category theory. Therefore, it can be used to grasp the whole figure of category theory very rapidly.

    Moreover, this lecture note contains case studies, the examples of applications of category theory to computer sciences. Case studies have 4 sections,

    1. Categorical Type Systems
    2. Implicit Conversions and Generic Operations
    3. Semantics
    4. Recursive Domain Equations

    Since this lecture note is a little old, readers should look for recent research results after having grasped the whole figure of category theory and applications to computer science by this lecture note.

  7. Emily Riehl : Category Theory in Context, 2014, xvii + 240 pages

    This is published by Dover Publications. Thus, the price would be reasonable to many learners. The PDF seems to be available at the author's web site. Seeing the her web site, she seems to be active to music, sports, wide range of talents except the category theory.

    While I have not yet read it, since I found many its good reputations I printed the PDF and added to the list to be read.

    Topics in this book seems to be inside mathematics and does not contain computer science1) basically. My criteria to mathematics books seems to be

    1. Does it contain topics in computer science?
    2. Is it easy to study?
    3. Does it try to tell the rich background knowledge, rationale or feeling of formal definitions
    4. Is it gentle to foreign (Japanese) non-native readers
      By my poor english skill, beautifully described good books sometimes become rather hardest books to me.

    The contents of this book are

    1. Categories, Functors, Natural Transformations
    2. Universal Properties, Representability, and the Yoneda
    3. Limits and Colimits
    4. Adjunctions
    5. Monads and their Algebras
    6. All Concepts are Kan Extensions

    Notes:

    1) This book contains the phrase "computer science" about 10 times, "currying" that is "A x B -> C is isomorphic to A -> B -> C", "Maybe monad", etc.
    (the rest is to be filled)

- Related Topics

The usual text books of category theory do not tell how the category theory is used in the application areas such as computer science. To complement this point, it is useful to read tutorials and papers in such application areas. Here, I gather such materials.
  1. Monads
    Some programmers are interested in monads since monads are said to be used to structure the programs with effects in the functional programming languages. Other than the usage in the programming languages, monads seem to be used. Here, I am going to survey and study such usages.

    Just to make sure, I write the definition of monad simply. A monad is defined to be a triple of an endofunctor T : C -> C and two natural transformations η : id -> T and μ : T2 -> T that satisfies some conditions similar to the conditions of monoid.

  2. Bart Jacobs , Jan Rutten : A Tutorial on (Co)Algebras and (Co)Induction, 1997, 38 pages
    This tutorial is useful to study the usage of algebras in category theory for the bases of understanding data types and behaviors of computer systems. This tutorial focus on coalgebraic methods especially. The knowledge of chapter 10 of Awodey's text book helps the understanding of the tutorial, and, vice versa.

- Useful Links

When I find some useful sites, I will add them here.
  1. Peter Smith's Logic Matters : Category Theory

    I have alread written this above. There are listed up full of resources of category theory. Moreover, we can get knowledges about Logic.

  2. Bartosz Milewski

    Very interesting site explaining the category theory relating to the functional programming language Haskel. In his site, sometimes, pretty pigs appear kindly to explain us easily and funny. He (not a pig, Bartosz Milewski) also put his videos about category theory to youtube. The videos are also very interesting and funny sometimes.

- Afterword

Why am I writing this site with incomplete knowledge? One reason is that summarizing what I learned and trying to explain it to virtual somebody is good for my own study. The other reason is I am free and a bit tired since I retired, a little early.

Top of My Homepage (Japanese)