# Category theory

Category theory is an abstract branch of mathematics used to model mathematical "objects", and mappings between them.

In order to define a category you define the mathematical objects involved (such as "Sets" for instance), and the mappings (such as "Functions" for instance). So there is a category of mathematical sets and their functions.

Now the categories themselves could also be considered mathematical objects, and we could look at mappings between categories as well, which would also be a category.

In more detail a Category consists of:

- Objects.
- Mappings (called morphisms) between those objects.
- A binary composition operator, which can combine those mappings such that a mapping from object A to object B, and a mapping from object B to object C can be combined into a single mapping from object A to object C.
- There should be a mapping that acts as an identity under composition, such that composing that mapping with another mapping M, gives you back the mapping M.
- Composition should be associative.

Anything that can be represented by the above list can be analyzed as a category, that is why it is considered so abstract.

## Notes

- The Curry Howard isomorphism. The idea that logic and programming are just two sides of the same coin: types are propositions and programs are proofs.
- Originally, category theory traces it roots to algebraic topology. What you find is that you can associate to topological spaces (often simplicial complexes or other triangulated spaces) an algebraic object (often a group, abelian group, ring, vectorspace, or module). And the continuous maps then "lift" to the corresponding algebraic homomorphism.
- Look at the relationships between things, rather than the components of a thing.

## Links

- An invitation to category theory (2018) - Just what is category theory? Tai-Danae Bradley explains.
- What is Applied Category Theory? (2018) (HN)
- Category Theory nLab
- Applied Category Theory – Online Course
- Functional Programming and Category Theory [Part 1] - Categories and Functors
- Seven Sketches in Compositionality: An Invitation to Applied Category Theory (PDF) (Paper)
- Category Theory for Programmers PDF
- Category Theory for Programmers: The Preface (Notes)
- Learn You Some Category Theory
- The Catsters YouTube channel - Videos on category theory.
- ELI 5: Category Theory
- A Perspective on Higher Category Theory
- Category theory foundations 1.0 course
- Why category theory matters: a functional programmer’s perspective
- Category Theory in Coq - Encodes category theory in Coq, with the primary aim being to allow representation and manipulation of categorical terms, as well realization of those terms in various target categories.
- Formalization of category theory in cubical Agda
- Applied Category Theory Course: Databases
- Category theory library for Agda
- Conexus Act - Looking for promising ventures that want to utilize category theory to pursue the latest breakthroughs in Logistics, Pharma, Aerospace, Manufacturing, Transportation and more.
- From design patterns to category theory (2017) (HN)
- Fully formal ETCS
- The Yoneda Perspective: an object is completely determined by its relationships to other objects (2017)
- Understanding Yoneda (2013)
- Idris category theory - Formally verified category theory library.
- Category Theory and Lambda Calculus Thesis (2018)
- Computational Category Theory
- A categorical semantics for causal structure (2019)
- A categorical view of computational effects (2019)
- Awesome Applied Category Theory
- Ecats - Editor for category theory.
- Lambda World 2019 - A categorical view of computational effects - Emily Riehl
- Theoretical Computer Science for the Working Category Theorist
- Notes on Applied Category Theory (2018)
- Applied Category Theory MIT lectures (2019)
- Categorical Logic Notes
- Programming with Categories lectures (2020)
- Aspects of categorical recursion theory (2020) (HN)
- Compiling to categories (2017)
- OCaml version of Category Theory For Programmers
- Recursion schemes, categorically
- Todd Trimble: Geometry of regular relational calculus (2020)
- Bartosz Milewski's publications
- Computational Category Theory in Python (HN)
- [HN: Applied Category Theory (2019)(https://news.ycombinator.com/item?id=23048149)
- Definition of a monoidal category summarised in string diagrams
- Statebox Category Theory Course
- Category Theory -- The math behind hyper-convergence automation (2019)
- Pittsburgh Functional Programming Book Club featuring Category Theory for Programmers -
- Applied Category Theory 2020 (2020 Recordings) (2020 Tutorials)
- MIT Categories Seminar - Eugenia Cheng: Distributive laws for Lawvere theories (2020)
- AlgebraicJulia: Applied Category Theory in Julia | James Fairbanks (2020)
- Why does the "working mathematician" need category theory? (2020)
- F-Algebras (2017)
- Topology: A Categorical Approach (2020) - Graduate-level textbook that presents basic topology from the perspective of category theory. (Lobsters)
- MIT: Programming with Categories (2020) (HN) (Draft)
- n-Category Cafe category theory posts
- Category Theory for the Sciences (2014)
- Categorical Probability and Statistics (2020) (Videos)
- Charity - Categorical programming language. (Code)
- A monoid is a category with just one object. so what's the problem? (2019)
- Epidemiological Modeling With Structured Cospans (2020)
- Garlandus blog - Essays on some of the mathematics behind computing, from classical logic to the monads of category theory, by way of Goettingen.
- Logical Relations as Types: Proof-Relevant Parametricity for Program Modules (2020)
- Category Theory Resources
- Applied Category Theory: Notes on generative effects
- Executing Categories (2020)
- App for interactive category theory diagrams and notebooks
- Yoneda lemma
- Category Theory introduction lectures
- The significance of the Curry-Howard isomorphism (2019)
- Basic Category Theory for Computer Scientists
- Categorical Systems Theory Book (2020)
- Emily Riehl Research - Associate professor in the department of mathematics at Johns Hopkins University working on a variety of topics in category theory related to homotopy theory.
- David Jaz Myers - Interested in (higher) category theory, homotopy type theory, and cohesion.
- P-Func: Math for the Mothership (2020)
- David Jaz Myers: Paradigms of composition (2020)
- ACT 2020 Recordings
- David Jaz Myers: Open dynamical systems, trajectories and hierarchical planning (2020)
- Quiver - Modern commutative diagram editor. (Code) (HN)
- Applied Category Theory 2021
- Category Theory Illustrated (Code)
- Papers on aspects of Generalised Algebraic Theories, Contextual Categories and Mathematical Theory Of Data
- Emily Riehl is rewriting the foundations of higher category theory (2021) (HN)
- Emily Pillmore: Type Arithmetic and the Yoneda Lemma (2020)
- Categorical logic from a categorical point of view
- Category Theory Illustrated - Orders
- tikzcd-editor - Simple visual editor for creating commutative diagrams. (Code)
- The Categorical Machine: Part 1 (Applied Category Theory) (2020) - Compare Functional Programming, Lambda Calculus, and Categories (Cats).
- Category Theoretic Approaches to Machine Learning
- Towards Categorical Foundations of Learning (2021)
- Category theory is a universal modeling language
- Ask HN: How to Get into Category Theory? (2021)
- nForum - Discussion forum about contributions to the nLab wiki and related areas of mathematics, physics, and philosophy.
- Infinity Category Theory Offers a Bird’s-Eye View of Mathematics (2021) (HN)
- Categories for the idle mathematician - YouTube (2021) - Introductory lectures on category theory.
- Category Theory Illustrated - Logic (HN)
- Dinatural transformations (2019)
- Adventures in Category Theory - The Algebra of Types (2018) (HN)
- Further remarks on Bourbaki (Tweet)
- Category Theory relation to consciousness
- Thoughts on adjoint, norm and such
- Category Theory Resources
- Introduction to Category Theory
- Collected works of F. W. Lawvere
- Cubical Sets (2021)
- A quickie: Axiom J (2021)
- Higher Theories and Monads (2021)
- Polynomial Lens
- An introduction to regular categories (2020)
- Crash Course Category Theory Notes/Resources (Code) (HN)
- Evan Patterson: Realizing Applied Category Theory in Julia (2020)
- Category Theory by Example (2021)
- NASA's Category Theory Resources (Tweet)
- Fun with Categories (2019)
- Recommended resources for learning category theory / Haskell (2021)
- Category Theory: Lecture Notes and Online Books (HN)
- Learn Applied Category Theory! (2021)
- Cauchy complete category
- Cauchy completion in category theory - Scott Johnson (1993)
- Foundations of Relative Category Theory
- Theoretical Computer Science for the Working Category Theorist (2022)
- Topos Theory in a Nutshell (HN)
- Kerodon - Online resource for homotopy-coherent mathematics.
- Analogies are Functors: A Gentle Introduction to Category Theory (2020)
- cats - Category Theory and Algebraic abstractions for Clojure and ClojureScript.
- Derived Categories and Moduli Spaces
- Category Theory Applied to Functional Programming (Code)
- Understanding Visualization: A Formal Approach using Category Theory and Semiotics (2013)
- With Category Theory, Mathematics Escapes from Equality (2019) (HN)
- Category theory diagram - Implements some basic Category theory in the form of a diagram with the intention to help to visualize and understand the concepts in Category theory.
- Dialectica Categories - Place to collect work on dialectica categories.
- On the the missing diagrams in Category Theory (first-person version) (2022) (Tweet)
- Categorical Query Language (CQL) (Code)
- CatsCheatSheet - Listing of common theorems in elementary category theory.
- Formalization of Category Theory in Agda
- Dialectica - 2022 AMS MRC on Applied Category Theory.
- A Sensible Introduction to Category Theory (2022)
- Space-time tradeoffs of lenses and optics via higher category theory (2022)
- Playing with Category Theory in Lean 4