Unifying graded and parameterised monads Dominic Orchard - - PowerPoint PPT Presentation

unifying graded and parameterised monads
SMART_READER_LITE
LIVE PREVIEW

Unifying graded and parameterised monads Dominic Orchard - - PowerPoint PPT Presentation

Unifying graded and parameterised monads Dominic Orchard Philip Wadler Harley Eades III MSFP 2020 ! 3 The humble monad T : T T return :: a -> m a join :: m m a -> m a T T multiplication


slide-1
SLIDE 1

Unifying graded and parameterised monads

!3

Dominic Orchard Philip Wadler Harley Eades III

MSFP 2020

slide-2
SLIDE 2

T : ℂ → ℂ

T ∘ T

T

μ

햨햽

T

η

!4

The humble monad

+ associativity and unitality axioms multiplication unit

join :: m m a -> m a return :: a -> m a

slide-3
SLIDE 3

!5

Graded monads

G : 피 → [ℂ, ℂ]

Functor

(피, ∙ ,I)

(Discrete) monoidal category

[Katsumata'14 - Parametric effect monads and semantics of effect systems]

+ associativity and unitality axioms

G (x ∙ y)

G x ∘ G y

μx,y

multiplication

햨햽

G I

η

unit

[Wadler&Thiemman’03 - Marriage of effects and monads]

slide-4
SLIDE 4

Graded monads for type-based effect analysis

Γ ⊢ e : MA Γ, x : A ⊢ e′ : M B Γ ⊢ do x ← e; e′ : M B Γ ⊢ e : A Γ ⊢ return e : M A

monadic metalanguage

!6

slide-5
SLIDE 5

Γ ⊢ e : G x A Γ, x : A ⊢ e′ : G y B Γ ⊢ do x ← e; e′ : G (x ∙ y) B Γ ⊢ e : A Γ ⊢ return e : G I A

Graded monads for type-based effect analysis

... for refining semantics

햲헍햺헍햾 x A = 햲헍허헋햾(헋햾햺햽헌(x)) → A × 햲헍허헋햾(헐헋헂헍햾헌(x))

헀햾헍 : (l : A ∈ ℒ) → 햲헍햺헍햾 A 헉헎헍 : (l : A ∈ ℒ) → A → 햲헍햺헍햾 1 헀햾헍 : (l : A ∈ ℒ) → 햲헍햺헍햾 {r(l)} A 헉헎헍 : (l : A ∈ ℒ) → A → 햲헍햺헍햾 {w(l)} 1

햲헍햺헍햾 A = 햲헍허헋햾(ℒ) → A × 햲헍허헋햾(ℒ)

Humble state

  • vs. graded

monadic metalanguage graded

!7

slide-6
SLIDE 6

!8

Graded monads

G : 피 → [ℂ, ℂ]

Functor

(피, ∙ ,I)

(Discrete) monoidal category + associativity and unitality axioms

G (x ∙ y)

G x ∘ G y

μx,y

multiplication

햨햽

G I

η

unit

slide-7
SLIDE 7

!9

(unordered)

G : 피 → [ℂ, ℂ]

Functor

(피, ∙ ,I)

(Discrete) monoidal category + associativity and unitality axioms

G (x ∙ y)

G x ∘ G y

μx,y

multiplication

햨햽

G I

η

unit

Graded monads

graded monads unordered

slide-8
SLIDE 8

!10

Graded monads

(피, ∙ ,I, ≤ )

Strict monoidal category

G y

G(h : x ≤ y)

G x

approximation + monotonicity

G : 피 → [ℂ, ℂ]

Functor + associativity and unitality axioms

G (x ∙ y)

G x ∘ G y

μx,y

multiplication

햨햽

G I

η

unit

graded monads unordered

slide-9
SLIDE 9

!11

Parametrised monads

P : 핀허헉 × 핀 → [ℂ, ℂ]

Functor

[Atkey'06/'09 - Parameterised notions of computation]

+ associativity and unitality axioms

P(i, j) ∘ P(j, k)

P (i, k)

μi,j,k

multiplication

햨햽

P (i, i)

ηi

unit

slide-10
SLIDE 10

!12

Parametrised monads

P : 핀허헉 × 핀 → [ℂ, ℂ]

Functor

[Atkey'06/'09 - Parameterised notions of computation]

+ associativity and unitality axioms

P(i, j) ∘ P(j, k)

P (i, k)

μi,j,k

multiplication

햨햽

P (i, i)

ηi

unit

A

f P(i, j) B

B

g P(j, k) C

A P(i, k) C

cf Floyd-Hoare logic

{i} C {j} {j} C′{k} {i} C; C′{k}

μi,j,k,C ∘ Pg ∘ f

slide-11
SLIDE 11

!13

Parametrised monads

P : 핀허헉 × 핀 → [ℂ, ℂ]

Functor

[Atkey'06/'09 - Parameterised notions of computation]

+ associativity and unitality axioms

P(i, j) ∘ P(j, k)

P (i, k)

μi,j,k

multiplication

햨햽

P (i, i)

ηi

unit + dinaturality axioms approximation

P (i, j)

P (i′, j′)

P(f : i′ → i, g : j → j′)

slide-12
SLIDE 12

!14

G and P: side-by-side

햨햽

G I

η

G x ∘ G y

G (x ∙ y)

μx,y

햨햽

P (i, i)

ηi

P(i, j) ∘ P(j, k)

P (i, k)

μi,j,k

Can we unify their definitions?

slide-13
SLIDE 13

!15

Roadmap

monads “oidify” category-graded monads graded monads parameterised monads discrete 2-category- graded monads category-graded monads + generalised unit 2-category-graded monads + generalised unit unordered

slide-14
SLIDE 14

!16

“Oidification”

https://ncatlab.org/nlab/show/horizontal+categorification

  • 1. concept shown to be equivalent to a single-object category

  • 2. generalise that to a category with more than one object/morphism
slide-15
SLIDE 15

One object Morphisms are endofunctors 2-morphisms are nat. trans.

Recall: functor axioms

F : ℂ → 픻

(Benabou 1967)

!17

Monads are lax functors

id : ⋆ → ⋆ ⋆

One object One morphism

Fg ∘ Ff = F(g ∘ f) id = F id

T : 1 → 햤헇햽허(ℂ)

Fg ∘ Ff ⇒ F(g ∘ f) id ⇒ F id

Lax functor axioms

  • is a 2-category

μ : Tid ∘ Tid ⇒ Tid η : id ⇒ T id

Here natural transformations + associativity/unitality

slide-16
SLIDE 16

“Category-graded monad”

  • idification

/ horizontal categorification

μf,g : Tf ∘ Tg ⇒ T(g ∘ f)

ηx : 햨햽 ⇒ T idx

Lax functor

η : 햨햽 ⇒ T id

μ : T id ∘ T id ⇒ T id

(Benabou 1967)

!18

Oidifying a monad

Monad

햤헇햽허(ℂ)

1

T

ℱ허헉

T

햤헇햽허(ℂ)

slide-17
SLIDE 17

[ℂ, ℂ]

(피, ∙ ,I)

Monoid-graded monad G

G

  • 1. Unordered graded monads are category-graded monads

“Category-graded monad”

μf,g : Tf ∘ Tg ⇒ T(g ∘ f)

ηx : 햨햽 ⇒ T idx

ℱ허헉

T

햤헇햽허(ℂ)

!19

slide-18
SLIDE 18

!20

Monoids are one-object categories are discrete monoidal categories

x ∙ y y x I

slide-19
SLIDE 19

[ℂ, ℂ]

(피, ∙ ,I)

Monoid-graded monad G

μx,y : G x ∘ G y ⇒ G (x ∙ y)

η⋆ : 햨햽 ⇒ G I

μf,g : Tf ∘ Tg ⇒ T(g ∘ f)

ηx : 햨햽 ⇒ T idx

ℱ허헉

T 햤헇햽허(ℂ)

햤헇햽허(ℂ) ≡

1(피op,∙,I)

G

Category-graded monad

  • 1. Unordered graded monads are category-graded monads

!21

slide-20
SLIDE 20
  • 2. Graded monads are 2-category-graded monads

T(h : g ⇒ f) : T g ⇒ T f

+ 2-morphism mapping

μf,g : Tf ∘ Tg ⇒ T(g ∘ f)

ηx : 햨햽 ⇒ T idx

T : ℱ허헉 → 햤헇햽허(ℂ)

2-category-graded monad

Category-graded monad (i.e., is a 2-category)

22

slide-21
SLIDE 21

!23

Pomonoids are one object 2-categories are monoidal categories

y x

x ≤ y

slide-22
SLIDE 22
  • 2. Graded monads are 2-category-graded monads

G(h : x ≤ y) : G x ⇒ G y

μx,y : G x ∘ G y ⇒ G (x ∙ y) η⋆ : 햨햽 ⇒ G I

G : 1(피op,∙,I,≤) → 햤헇햽허(ℂ)

μf,g : Tf ∘ Tg ⇒ T(g ∘ f)

ηx : 햨햽 ⇒ T idx

T : ℱ허헉 → 햤헇햽허(ℂ)

T(h : g ⇒ f) : T g ⇒ T f

2-category-graded monad

2-morphism mapping

(Ordered) Graded monad

24

slide-23
SLIDE 23

!25

Roadmap

monads “oidify” category-graded monads graded monads parameterised monads discrete 2-category- graded monads category-graded monads + generalised unit unordered

slide-24
SLIDE 24
  • 3. Discrete parameterised monads are category-graded monads

P : 핁허헉 × 핁 → [ℂ, ℂ]

where ! has only identity morphisms

∇(핁)1 = |핁| × |핁|

Define the category of ! -“dominoes”

Define a category graded monad

(e.g., composition ! )

(j, k) ∘ (i, j) = (i, k)

ηi : 햨햽 ⇒ T(i, i)

μ(i,j),(j,k) : T (i, j) ∘ T (j, k) ⇒ T (i, k)

T : ∇(핁) → 햤헇햽허(ℂ)

with !T(i, j) = P(i, j)

= ηP

i

= μP

i,j,k

!26

slide-25
SLIDE 25

Parameterised monads have some extra structure

morphism mapping (approximation)

P (i, j)

P (i′, j′)

P(f : i′ → i, g : j → j′)

+ dinaturality axioms

!27

slide-26
SLIDE 26

Generalised units

arises from lax natural transformations (Street, 1972)

핊 ⊆ ℱ

Wide sub-category Family of morphisms

̂ ηf:X→Y∈핊 : 햨햽 → Tf

Paper shows details

  • 4. Parameterised monads are category-graded monads + !

̂ η

28

slide-27
SLIDE 27

!29

Roadmap

monads “oidify” category-graded monads graded monads parameterised monads discrete 2-category- graded monads category-graded monads + generalised unit 2-category-graded monads + generalised unit unordered

slide-28
SLIDE 28

Example

|ℱ| = {free, critical}

lock : free → critical

unlock : critical → free

get, put : critical → critical

get : 햢허헇햼햲헍 get S

put : S → 햢허헇햼햲헍 put 1

lock : 햢허헇햼햲헍 lock 1

unlock : 햢허헇햼햲헍 unlock 1

spawn : (∀f . 햢허헇햼햲헍 (f : 햿헋햾햾 → 햿헋햾햾) 1) → 햢허헇햼햲헍 f 1

햢허헇햼햲헍 : ℱ허헉 → 햤헇햽허(ℂ)

30

slide-29
SLIDE 29
  • Shows us where graded & parameterised
  • verlap
  • A more general structure that captures both

aspects: tracing + restriction

Conclusions

granule-project.github.io

Category-graded monad

μf,g : Tf ∘ Tg ⇒ T(g ∘ f)

ηx : 햨햽 ⇒ T idx

ℱ허헉

T

햤헇햽허(ℂ)

Thank you!

31