What do programming, quantum physics, chemistry, neuroscience, systems biology, natural language parsing, causality, network theory, game theory, dynamical systems and database theory have in common?
As functional programmers, we know how useful category theory can be for our work - or perhaps how abstruse and distant it can seem. What is less well known is that applying category theory to the real world is an exciting field of study that has really taken off in just the last few years. It turns out that we share something big with other fields and industries - we want to make big things out of little things without everything going to hell! The key is compositionality, the central idea of category theory.
This talk will introduce the emerging field of applied category theory, with the aims of:
- Giving attendees a broad overview of cutting-edge applications of category theory
- Building an understanding of a small number of the most important core concepts
- Getting attendees excited, inspired to learn more, and equipped to apply some basic concepts to their work
3. From “Seven Sketches of Compositionality”
Fong & Spivak (2018)
Applied category theory
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
4. Applied category theory
• Emerging field!
• Explosion of papers, research, development in last 5 years
• Builds a common vocabulary of composition across
disciplines
• Enables intuitive, precise visual representations
11. Plan
• I want to put applied category theory on your roadmap
• The big idea: compositionality
• Case study: Complex adaptive system design: military search & rescue
• Four concepts of composition:
• Monoids
• Categories
• Operads
• Monoidal categories
• Two graphical languages:
• String diagrams
• Wiring diagrams
13. The meaning of a complex expression is determined by:
1. The meaning of the constituent parts
2. The rules for how those parts are combined
Frege’s Principle of Compositionality
17. Compositionality applied
• Little programs that work
BIG programs that work?
• Little electric circuits that work
BIG electric circuits that work?
• Little Feynman diagrams that describe real physics
BIG Feynman diagrams that describe real physics?
• Little resource plans that are feasible
BIG resource plans that are feasible?
• Little networks of agents that can solve problems
BIG networks of agents that can solve problems?
44. Case study: Complex Adaptive System Design
from
“Complex Adaptive System Design” blog posts by John C. Baez
(2016-2019)
“Network Models” by Baez, Foley, Moeller, Pollard (2017)
45. Military research: search & rescue
• Systems of systems
• Many different kinds of networks
• Complex realtime behaviour
• How to connect them all?
48. Overlay the
networks
We now have a
bigger network
working together
Helo
1
Target
1Port
1
My port
Intent to rescue
UAV
1
My port
In comms
range
In comms
range
In comms
range
Intent to rescue
52. How to sew together unrelated networks?
Helo
1
UAV
1
Target
1
UAV
2
UAV
3
UAV
5
Rescue-Scene
UAV
4
In comms
range
In comms
range
UAV-Search-Net
Helo
2
Homebase
Intent to rescue
My port
Havana
53. 1 2
3
4 5
6 7
8
9
How to sew together unrelated networks?
“Take 3 networks of 3, 4
and 2 vertices; return a
network of 9 vertices”
Intent to rescue
57. Morphisms with lots of inputs?
The ”type” is the number
of vertices expected in
subnetworks
“Take 3 networks of 3, 4 and
2 vertices; return a network
of 9 vertices”
3
4
2
9
71. Mapping it to reality
Helicopter
Port
UAV
Target
my port
Intent to rescue
Comms channel
Havana
Rescue-Scene
UAV-Search-Net
Homebase
72. Mapping it to reality
Helicopter
Port
UAV
Target
my port
Intent to rescue
Comms channel
Havana Rescue-Scene := ...
UAV-Search-Net := ...
Homebase := ...
joinNetworks(Rescue-Scene,
UAV-Search-Net,
Homebase)
To actually use an operad, translate
it to the operad of sets & functions,
preserving composition & identity
73. From “Seven Sketches of Compositionality”
Fong & Spivak (2018)
String diagrams
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
74. prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
morphisms
75. prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
objects
76. prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
egg
sugar
unbaked
pieadd
meringue
composition
77. prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
tensoring
78. Tensoring forms a monoid
(up to isomorphism)
lemon butter sugar
make
lemon filling
… on the objects of the category
lemon ⨂ butter ⨂ sugar
lemon
filling
79. Monoidal categories
Category C
Tensor operation
⨂ : (object, object) -> object
such that (a ⨂ b) ⨂ c ≃ a ⨂ (b ⨂ c)
Unit object
I : object
such that a ⨂ I ≃ I ⨂ a ≃ a
80. Monoidal categories
f g
x y y z
f g
x y z
f
g
x y
y z
x y
y z
f ⨂ g=
Horizontal composition Vertical composition
x ⨂ y
f ⨂ g=
y ⨂ z
81. Diagrams inside diagrams
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
Make lemon filling
lemon
butter
sugar
Blend
yolk
Beat
Combine
lemon
filling
82. Diagrams inside diagrams
prepare lemon meringue pie
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
Blend
Beat
Combine
87. String diagrams in software architecture
• Fantastic for software design
• I’ve used them for years to train junior & senior developers
• Modularity, boundaries
93. Operad of wiring diagrams
from
“The operad of wiring diagrams: formalizing a graphical
language for databases, recursion and plug-and-play circuits”
by David I. Spivak (2013)
97. Compositional SQL queries
SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
98. SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
99. SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
TablesConstants
100. SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
SELECT
101. SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
WHERE
(wiring)
102. In conclusion
• Applied category theory is an exciting new field that seeks to mine
the benefits of compositionality wherever they may be found
• Supports marvelous graphical languages
• Early days!
• Watch this space
103. The future
• Anything where “making big things out of little things” is an
important part
• So far: category theorists discovering applications and promoting
• Industry might eventually begin to lead the charge
• Computer science & programming will be at the forefront: software
has eaten the world
• Functional programming will be at the forefront: we are early
adopters
104. People to follow on Twitter
John C. Baez
@johncarlosbaez
Jules Hedges
@_julesh_
Dr. Eugenia Cheng
@DrEugeniaCheng
Jade Master
@JadeMasterMath
Tai-Danae Bradley
@math3ma
Joe Moeller
@CreeepyJoe
Statebox
@statebox
Jelle Herold
@wires_wires
Fabrizio
Remano
Genovese
@fabgenovese
105. Further reading
• “Seven Sketches of Compositionality” by Brendan Fong, David I. Spivak (2018)
• “Applied category theory course” by John C. Baez (2018)
• “What is applied category theory?” by Tai-Danae Bradley (2018)
• “Network models” by Baez, Foley, Moeller, Pollard (2017)
• “The operad of wiring diagrams: formalizing a graphical language for
databases, recursion and plug-and-play circuits” by David I. Spivak (2013)