Local stores Paul-Andr Mellis Oregon Summer School in Programming - - PowerPoint PPT Presentation
Local stores Paul-Andr Mellis Oregon Summer School in Programming - - PowerPoint PPT Presentation
Programming Languages in String Diagrams [ four ] Local stores Paul-Andr Mellis Oregon Summer School in Programming Languages June 2011 Finitary monads A monadic account of algebraic theories Algebraic presentations of
Finitary monads
A monadic account of algebraic theories
Algebraic presentations of effects
We want to reason about programs with effects like states, excep- tions... Computational monads: A
pimpurep
- B
= A
ppurep
- T (B)
Algebraic theories:
- perations
: A n −→ A and equations
A useful correspondence
Recall that a monad T : Set −→ Set is finitary when it preserves the filtered colimit. Important fact. There is an equivalence of categories the category
- f
algebraic theories
- the category
- f
finitary monads
4
Finitary monads
Alternative definition. A monad T : Set −→ Set is finitary when the diagram Set
id
- FinSet
i
- T◦ i
- Set
T
- exhibits the functor T as a left Kan extension of T ◦ i along i.
5
Finitary monad
A monad T on the category Set is finitary when every map [1] −→ TA factors as [1]
e
−→ T [p]
T f
−→ TA for a pair of maps [1] −→ T [p] [p] −→ A.
6
Finitary monad
Moreover, the factorization should be unique up to zig-zag: T [p]
Tu
- T f1
- [1]
e1
- e2
- TA
T [q]
T f2
- 7
The Kleisli category of a monad
The Kleisli category Set T associated to a monad T : Set −→ Set has sets as objects, and functions f : A −→ T(B) as morphisms from A to B. An alternative formulation of the category of free algebras.
8
The Lawvere theory of a monad
The Lawvere theory Θ T associated to a monad T : Set −→ Set is the full subcategory of Set T with finite ordinals [p] = { 0 , 1 , . . . , p − 1 } as objects. Remark. The category Θ T has finite sums.
9
Algebras of a monad
A set A equipped with a function alg : TA −→ A making the two diagrams below commute: TTA
T ( alg )
- µ
- TA
alg
- TA
alg
A
TA
alg
- A
ηA
- id
A
10
Key theorem [ originating from Lawvere ]
The category of T-algebras is equivalent to the category of finite product preserving functors Θ op
T
−→ Set This property holds for every finitary monad T.
11
Finitary monads as saturated theories
The finitary monad describes the equational classes of the theory : Tn = terms with n variables modulo equations where n = x0 , x1 , · · · , xn−1 The monad often reveals a canonical form for the equational theory.
Mnemoids
An algebraic presentation of the state monad
The state monad
A program accessing one register with a finite set V of values A
impure
- B
is interpreted as a function V × A
pure
- V × B
thus as a function A
pure
- V ⇒ (V × B)
Hence, the state monad T : A → V ⇒ (V × A)
14
What is an algebra of the state monad ?
An elegant answer by Plotkin and Power [2002]
Mnemoids
A mnemoid is a set A equipped with a V-ary operation lookup : A V −→ A and a unary operation updateval : A −→ A for each value val ∈ V .
16
Mnemoids
Typically, the lookup operation on the boolean space V = { false , true } is binary : lookup : A × A −→ A The intuition is that lookup (u, v) =
- u
when the register is false v when the register is true
17
Annihilation lookup – update
A V
lookup
- A
updateV
- id
A
term = lookup val → updateval term
18
Annihilation lookup – update
Here, the map updateV : A −→ A V is the V-ary vector update0 , · · · , updateV−1 also noted val → updateval
19
Annihilation lookup – update
x
=
x x true false
20
Interaction update – update
A
updateval1
- A
updateval2
- updateval2
A
updateval1 ◦ updateval2 = updateval2
21
Interaction update – update
val2 val1
=
val2
22
Interaction update – lookup
AV
lookup
- Aval
- A
updateval
- A
updateval
A
updateval ◦ lookup x → term(x) = updateval ◦ term(val)
23
Interaction update – lookup
x y true
=
true x
24
Key theorem [ Plotkin & Power ]
the category of mnemoids is equivalent to the category of algebras of the state monad Provides an algebraic presentation of the state monad
25
A proof in three steps
1. establish that the state monad T is finitary [easy] 2. construct a functor [easy] ι : Θ M −→ Θ T starting from the Lawvere theory Θ M of mnemoids by interpreting the update and lookup operations and by checking that the equations are valid in Θ T 3. show that the functor ι is full and faithful [rewriting]
26
Store with several locations
Algebraic presentation of the state monad
The global state monad
The state monad is generally defined as T : A → S ⇒ (S × A) for a set of states S = V L induced by a set L of locations and a finite set V of values.
28
Global store [Plotkin & Power ]
A global store is a family of compatible mnemoidal structures lookuploc : AV −→ A updateloc,val : A −→ A
- ne for each location loc ∈ L.
A tensor product of algebraic theories
29
Annihilation lookup – update
AV
lookuploc
- A
updateloc,V
- id
A
lookuploc val → updateloc,val term = term
30
Annihilation lookup – update
x
=
t r u e f a l s e
x x
31
Interaction update – update
A
updateloc,val
- A
updateloc,val′
- updateloc,val′
A
updateloc,val1 ◦ updateloc,val2 = updateloc,val2
32
Interaction update – update
val1 val2
=
val2
33
Interaction update – lookup
AV
lookuploc
- Aval
- A
updateloc,val
- A
updateloc,val
A
updateloc,val ◦ lookuploc x → term(x) = updateloc,val ◦ term(val)
34
Interaction update – lookup
true
y x
=
true
x 35
Interaction update – lookup
false
y x
=
false
y 36
Commutation update – update
A
updateloc,val
- updateloc′,val′
- A
updateloc′,val′
- A
updateloc,val
A
updateloc,v updateloc′,v′ x = updateloc′,v′ updateloc,v x when loc loc′
37
Commutation update – update
val′ val
=
val val′
38
Corollary [ Plotkin & Power ]
the category of objects with a global store is equivalent to the category of algebras of the state monad
39
Graded monads
A stratified version of finitary monads
Presheaf models
Key idea: interpret a type A as a family of sets A[0] A[1] · · · A[n] · · · indexed by natural numbers, where each set A[n] contains the programs of type A which have access to n variables.
41
Presheaf models
This defines a covariant presheaf A[n] : Inj −→ Set
- n the category Inj of natural numbers and injections.
The action of the injections on A are induced by the operations collectloc : A[n] −→ A[n+1] defined for 0 ≤ loc ≤ n.
42
Local stores [Plotkin – Power]
The slightly intimidating monad TA : n → S[n] ⇒ p∈Inj S[p] × A[p] × Inj(n, p)
- n the presheaf category [Inj, Set] where the contravariant presheaf
S[p] = V p describes the states available at degree p.
43
Graded arities
A graded arity is defined as a finite sum of representables [ p0 , · · · , pn ] = 0 + · · · + 0
- p0 times
+ · · · + n + · · · + n
- pn times
where each representable presheaf n : Inj −→ Set is defined as n = p → Inj(n, p)
44
Graded arities
This defines a full and faithful functor Σ Inj op −→ Inj op which generalizes the full and faithful functor FinSet −→ Set encountered in the case of finitary monads.
45
Graded monads
- Definition. A monad
T : [Inj, Set] −→ [Inj, Set] is graded when the diagram [Inj, Set]
id
- Σ Inj op
i
- T◦ i
- [Inj, Set]
T
- exhibits the functor T as a left Kan extension of T ◦ i along i.
46
Graded monad
A monad T on the category [Inj, Set] is graded when every map n −→ TA factors as n
e
−→ T [p0, . . . , pk]
T f
−→ TA for a pair of maps n −→ T [p0, . . . , pk] [p0, . . . , pk] −→ A.
47
Graded monad
Moreover, the factorization should be unique up to zig-zag: T [p0, · · · , pi]
Tu
- T f1
- n
e1
- e2
- TA
T [q0, · · · , qj]
T f2
- 48
Motivating example
- Theorem. The local state monad
TA : n → S[n] ⇒ p∈Inj S[p] × A[p] × Inj(n, p) is a graded monad on the presheaf category [Inj, Set].
49
Graded theories
A stratified version of algebraic theories
The Lawvere theory of a graded monad
The Lawvere theory Θ T associated to a graded monad T : [Inj, Set] −→ [Inj, Set] is the full subcategory of [Inj, Set] T with the graded arities [ p0 , · · · , pn ] as objects. Remark. The category Θ T has finite sums.
51
Modules over the category Inj
An Inj-module is a category A equipped with an action
- :
Inj × A −→ A (m, A) m A satisfying the expected properties: (p + q) A = p (q A) 0 A = A
52
Modules over the category Inj
A category A equipped with an endofunctor D : A −→ A and two natural transformations permute : D ◦ D −→ D ◦ D collect : Id −→ D depicted as follows in the language of string diagrams:
D D D D D
53
Yang-Baxter equation
D D D D D D
=
D D D D D D
54
Symmetry
D D D D
=
D D D D
55
Interaction dispose – permute
D D D
=
D D D D D D
=
D D D
56
Graded theories
A graded theory is a category with finite products with objects [ p0 , · · · , pn ] = 0 × · · · × 0
- p0 times
× · · · × n × · · · × n
- pn times
equipped with an action of the category Inj satisfying D(A × B)
- DA × DB
D(1)
- 1
In particular D [ p0 , · · · , pn ] = [ 0 , p0 , · · · , pn ]
57
The trivial graded theory
Σ Inj op is the free Inj-module with finite sums such that D(A + B)
- DA + DB
D(0)
- Π Inj is the free Inj-module with finite products such that
D(A × B)
- DA × DB
D(1)
- 1
58
The graded theory of local stores
Letמ be the graded theory associated to the monad of local stores. Fact.
מ is the free Inj-module with finite sums such that
D(A + B)
- DA + DB
D(0)
- such that D is a dynamic mnemoid.
59
Dynamic mnemoids
A dynamic mnemoid is a pair of sets A[0] A[1] equipped with the following operations lookup : AV
[1]
−→ A[1] updateval : A[1] −→ A[1] freshval : A[1] −→ A[0] collect : A[0] −→ A[1] satisfying a series of basic equations.
60
Garbage collect : fresh – dispose
val
=
id
61
Interaction fresh – update
val2 val1
=
val2
62
Interaction fresh – lookup
x y true
=
true x x y false
=
false y
63
Model of a graded theory
A model of a graded theoryמ is a functor M :מ−→[Inj, Set] which preserves the finite products and the action of D. A stratified version of the usual algebraic theories
64
The graded theory of local mnemoids
Main theorem [after Plotkin and Power] The category of models of the theoryמ of local mnemoids is equivalent to the category of algebras of the local state monad
65
Local stores in string diagrams
A graphical account of memory calls
Annihilation lookup – update
x
=
t r u e f a l s e
x x
The equation D(A × B) DA × DB means that space commutes with time ramification !!!
Interaction update – update
val1 val2
=
val2
68
Interaction update – lookup
true
y x
=
true
x 69
Interaction update – lookup
false
y x
=
false
y 70
Interaction fresh – dispose
val
D D D D D D
=
D D D D D D
71
Interaction fresh – update
D D D D D D D val1 val2
=
D D D D D D D val2
72
Interaction fresh – lookup
true
D D D y x
=
true
D D D y
73
Interaction fresh – lookup
false
D D D y x
=
false
D D D y
74
Interaction fresh – permutation
val D D D D D D D
=
val D D D D D D D
75
The Segal condition
A basic tool in higher dimensional algebra
76
In higher dimensional algebra
Exactly the same categorical combinatorics !!!
77
In higher dimensional algebra
A globular set is defined as a contravariant presheaf over the cate- gory
s
- t
- 1
s
- t
- 2
s
- t
- · · ·
defined by the equations s ◦ s = s ◦ t t ◦ s = t ◦ t An ω-category is then defined as an algebra of a particular monad T. Is the notion of ω-category equational ?
78
Level 1 : the free category monad
A category C is a graph where every path A0
f1
A1
f2
A2
f3
· · ·
fn
An
defines an edge A0
- n (f1, ··· ,fn)
- An
where the operations ◦n are required to be associative. the arities of the theory are finite paths rather than finite sets
Category with arities
A fully faithful and dense functor i0 : Θ0 −→
A
where Θ0 is a small category. Typical example: the full subcategory Θ0 of linear graphs [n] =
1 · · · n
in the category Graph.
80
The nerve functor
This induces a fully faithful functor nerve :
A
−→
- Θ0
which transports every object A of the category A into the presheaf nerve : Θ0 −→ Set p →
A( i0p , A )
81
The nerve functor
Definition of a monad T with arity
- the functor T is the left kan extension of T ◦ i0 along the functor i0
A
id
- Θ0
i0
- T◦i0
- A
T
- This enables to reconstruct T from its restriction to the arities
83
Monads with arities
- this left kan extension is preserved by the nerve functor:
- Θ0
A
nerve
- id
- Θ0
i0
- T◦i0
- A
T
- 84
A purely combinatorial formulation
For every object A, the canonical morphism p∈Θ0
A(i0n, Ti0p) × A(i0p, A)
−→
A(i0n, TA)
is an isomorphism.
85
Unique factorization up to zig-zag
Every map n −→ TA in the category A decomposes as n
e
−→ Tp
T f
−→ TA A finite number of words encounters a finite number of letters A finite path in the free category TA encounters a finite path in A
86
Unique factorization up to zig-zag
The factorization should be unique up to zig-zag of Ti0p
Ti0u
- T f1
- i0n
e1
- e2
- TA
Ti0q
T f2
- 87
Model of an algebraic theory
A model A of a Lawvere theory L is a presheaf A : Θop
L
−→ Set such that the induced presheaf Θop
i0
Θop
L A
Set
is representable along i0.
88
Key theorem
The category of T-modules is equivalent to the category of models of the theory ΘT This property holds for every monad T with arities Θ0.
89
Algebraic theories with arities
A 2-dimensional approach to Lawvere theories
90
Algebraic theory with arities
An algebraic theory L with arities i0 : Θ0 −→
A
is an identity-on-object functor L : Θ0 −→ ΘL such that...
91
Algebraic theories with arities
... there exists a functor F :
A
−→
A
making the diagram
- Θ0
∃L
- ΘL
L∗
- Θ0
nerve
- nerve
- A
F
- A
commute up natural isomorphism.
92
Algebraic theories with arities
Set
- Θop
L
- nerve(A)
- Θop
L left Kan extension
- This simply means that the free construction works...
93
Theorem
the category of algebraic theories with arity (A, i0) is equivalent to the category of monads with arity (A, i0) This generalizes the traditional correspondence algebraic theories ∼ finitary monads Also extends the result by Power on enriched Lawvere theories
94