A tour of String diagrams and Monoidal categories
summary
Describes a Scala declarative DSL that encodes string diagrams / monoidal structure, composes processes by tensor (parallel) and sequential operations, and supplies two concrete interpreters: a GraphViz renderer built from a port-graph case class representation and a ZIO RIO execution engine that uses zipPar for concurrent parallel composition. Gives the Kronecker product example for matrices, shows how categorical laws are encoded, and demonstrates rendering and running diagrams successfully.
AI-written summary · about
chapters (26)
- 0:00Intro
- 0:24Goals
- 0:47A few references
- 2:48A process
- 3:04Processes as diagrams
- 3:57Parallel composition
- 4:30Sequential composition
- 4:56Complex diagrams
- 5:51Diagram equations
- 6:33Process equations
- 7:31Formalization
- 7:45Plan
- 9:17Categories: equations
- 9:47Example: Matrices
- 11:13a. Strict Monoidal Categories
- 13:03One more law
- 13:55Matrices again
- 15:132b. Monoidal categories
- 16:16Cartesian Monoidal Categories
- 16:52Symmetric Monoidal Categories
- 18:30Circuit diagrams
- 19:18Airflow-like process manager
- 21:57Tagless Process DSL
- 24:23Laws (the fine print)
- 26:05ZIO interpreter
- 28:48Category of Port Graphs
related talks
32mClassical Category Theory in Plain Scala
59mLive-coding with Universal Constructions
52mCategory Theory Through Functional Programming (part 1/3)
42mA pragmatic introduction to Category Theory
34mThe Monoiad: an epic poem on monoids
55mMonoids, Monoids, Monoids
49mFrom ZX to first order logic: a survey of string diagrammatic calculi
20mGraphical Primitive Recursion For String Diagrams
