A prop (historically PROP, “products and permutations category”) is a symmetric strict Monoidal Category with , monoidal unit and monoidal product on objects given by addition. Every object is the -fold product of the generating object . To specify a prop it suffices to give
(i) hom-sets for ; (ii) identities ; (iii) symmetries ; (iv) composition for , ; (v) monoidal product for , ,
and check the axioms of a symmetric monoidal category. Props are the complementary simplification of SMCs to symmetric monoidal preorders: preorders constrain the morphisms (at most one), props constrain the objects (generated by ). Consequently wiring diagrams for props need no labels on the wires — perfect for signal flow graphs, which have wires of a single type.
Sources: 7 Sketches §5.2 (Definition 5.2, Examples 5.3, 5.6–5.8, 5.12, Definition 5.11, Exercises 5.5, 5.9, 5.10), §5.2.2–5.2.5, §5.3–5.4, §6.5.3; Kittenlab Lecture 4 ( and with objects ); Catlab
@theory/ThBiproductCategory.
Examples
| prop | morphisms | notes |
|---|---|---|
| functions ; by disjoint union (Eq. 5.4) | Example 5.3, 7S Exercise 5.5 | |
| bijections (empty unless ) | the Free Prop on the empty signature (Example 5.27) | |
| partitions of | compact closed (Example 5.7) | |
| relations | Example 5.8; for a rig (Definition 5.79) | |
| open directed acyclic port graphs | the free prop on one generator of every arity | |
| -labeled port graphs / prop expressions | (signal flow graphs) | |
| matrices over a Rig | composition = matrix multiplication, = direct sum | |
| linear relations | Graphical Linear Algebra | |
| posetal props | a poset structure on with monotone | 7S Exercise 5.9: discrete, usual, reverse orders; not divisibility |
| cospans | the hypergraph prop (Chapter 6) |
Prop functors and presentations
A prop functor is a functor that is identity on objects and preserves on morphisms (Definition 5.11): e.g. , and sending to its graph (Example 5.12). The semantics functor is the key example (Functorial Semantics). Props are built by free constructions on a signature and by presentations (generators and equations); Theorem 5.60 gives a presentation of . A prop presented by generators , and the monoid equations is “the theory of monoids”: monoid objects in are strict monoidal functors from it (Remark 5.74) — Lawvere’s algebraic theories.
Props are exactly -coloured operads’ “one-sorted” cousins; a symmetric strict monoidal category is a commutative Monoid Object in (Example 5.71).
Docs: FinSets · Theories & presentations — Kittenlab Lecture 4
using Catlab
# FinSet with + is a prop: objects are natural numbers, morphisms functions, ⊕ is disjoint union
f = FinFunction([1, 1, 2], 2); g = FinFunction([3, 1], 4)
oplus(f, g) # f + g : 5 → 6 (Eq. 5.4)
# Catlab's theories of props: ThBiproductCategory (matrices), ThHypergraphCategory, etc.;
# free props via @present on a signature with a single generating object:
@present SigSFG(FreeSymmetricMonoidalCategory) begin
X::Ob
copy::Hom(X, X ⊗ X); discard::Hom(X, munit())
add::Hom(X ⊗ X, X); zero::Hom(munit(), X)
a::Hom(X, X) # one scalar generator (add one per rig element)
end-- Mathlib has no bundled "prop"; a prop is a strict symmetric monoidal category on ℕ.
-- The skeleton of FinSet (`FintypeCat.Skeleton`) with sums is the prototypical example.
#check CategoryTheory.FintypeCat.Skeleton-- a prop as a type of morphisms indexed by (m, n) with series and parallel composition
class Prop' hom where
idP :: Int -> hom
compP :: hom -> hom -> hom -- f ; g when arities match
plusP :: hom -> hom -> hom -- f + g
swapP :: Int -> Int -> hom -- σ_{m,n}
-- e.g. matrices over a rig (see Prop of Matrices), finite functions (see Category of Finite Sets)