Dynamic GoI machine Call-by-need and call-by-value graph rewriter - - PowerPoint PPT Presentation

dynamic goi machine
SMART_READER_LITE
LIVE PREVIEW

Dynamic GoI machine Call-by-need and call-by-value graph rewriter - - PowerPoint PPT Presentation

Dynamic GoI machine Call-by-need and call-by-value graph rewriter Koko Muroya & Dan Ghica (Univ. Birmingham) S-REPLS 4 (London), 27 September 2016 GoI machine [Danos & Regnier 99] [Mackie 95] abstract machine to interpret


slide-1
SLIDE 1

Dynamic GoI machine

Call-by-need and call-by-value graph rewriter

S-REPLS 4 (London), 27 September 2016

Koko Muroya & Dan Ghica (Univ. Birmingham)

slide-2
SLIDE 2

Muroya (U. Birmingham)

  • abstract machine to interpret λ-calculus
  • a λ-term → a graph → moves of a token

GoI machine [Danos & Regnier ’99] [Mackie ’95]

2

compositionally

  • Geometry of Interaction [Girard, ’89]
  • “an execution path on a proof net”
slide-3
SLIDE 3

Muroya (U. Birmingham)

GoI machine [Danos & Regnier ’99] [Mackie ’95]

(λx. x) 1

q q 1 1

slide-4
SLIDE 4

Muroya (U. Birmingham)

GoI machine [Danos & Regnier ’99] [Mackie ’95]

(λx. x) 1

q q 1 1

slide-5
SLIDE 5

Muroya (U. Birmingham)

call-by-name

  • a token on a static graph
  • space efficiency
  • compositionality / interaction between components
  • categorical GoI [Abramsky+, ’02]
  • compilation to digital circuits [Ghica+, ’07-]

GoI machine [Danos & Regnier ’99] [Mackie ’95]

4

slide-6
SLIDE 6

Muroya (U. Birmingham)

call-by-name call-by-value

  • a token on a static graph
  • space efficiency

GoI machine [Danos & Regnier ’99] [Mackie ’95]

5

CPS transformation (Schöpp, Hoshino+) memory assigned to nodes (Hoshino+, Dal Lago+) parallelism: multiple tokens (Dal Lago+) dynamic jumps (Fernández+)

slide-7
SLIDE 7

Muroya (U. Birmingham)

call-by-name call-by-value

  • a token on a static graph
  • dynamic rewrites & “checkpoint” mechanism
  • space time efficiency
  • compositional reasoning
  • categorical GoI [Abramsky+, ’02]

Dynamic GoI machine

6

avoid repeated evaluation force evaluation of function arguments

slide-8
SLIDE 8

Muroya (U. Birmingham)

Avoid re-evaluation

7

(λx. x + x) (1 + 2)

q q 3 q 3 6

slide-9
SLIDE 9

Muroya (U. Birmingham)

Avoid re-evaluation

7

(λx. x + x) (1 + 2)

q q 3 q 3 6

slide-10
SLIDE 10

Muroya (U. Birmingham) 8

Avoid re-evaluation: dynamic rewrite

(λx. x + x) (1 + 2)

slide-11
SLIDE 11

Muroya (U. Birmingham) 8

Avoid re-evaluation: dynamic rewrite

(λx. x + x) (1 + 2)

slide-12
SLIDE 12

Muroya (U. Birmingham) 8

Avoid re-evaluation: dynamic rewrite

(λx. x + x) (1 + 2)

slide-13
SLIDE 13

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

9

(λx. x + x) (1 + 2)

slide-14
SLIDE 14

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

9

(λx. x + x) (1 + 2)

slide-15
SLIDE 15

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

9

(λx. x + x) (1 + 2)

slide-16
SLIDE 16

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

10

(λx. x + x) (1 + 2)

slide-17
SLIDE 17

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

10

(λx. x + x) (1 + 2)

slide-18
SLIDE 18

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

11

(λx. x + x) (1 + 2)

slide-19
SLIDE 19

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

11

(λx. x + x) (1 + 2)

slide-20
SLIDE 20

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

11

(λx. x + x) (1 + 2)

slide-21
SLIDE 21

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

12

(λx. x + x) (1 + 2)

slide-22
SLIDE 22

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

12

(λx. x + x) (1 + 2)

slide-23
SLIDE 23

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

13

(λx. x + x) (1 + 2)

slide-24
SLIDE 24

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

13

(λx. x + x) (1 + 2)

slide-25
SLIDE 25

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

14

(λx. x + x) (1 + 2)

slide-26
SLIDE 26

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

14

(λx. x + x) (1 + 2)

slide-27
SLIDE 27

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

14

(λx. x + x) (1 + 2)

slide-28
SLIDE 28

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

15

(λx. x + x) (1 + 2)

slide-29
SLIDE 29

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

15

(λx. x + x) (1 + 2)

slide-30
SLIDE 30

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

16

(λx. x + x) (1 + 2)

slide-31
SLIDE 31

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

16

(λx. x + x) (1 + 2)

slide-32
SLIDE 32

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

16

(λx. x + x) (1 + 2)

slide-33
SLIDE 33

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

17

(λx. x + x) (1 + 2)

slide-34
SLIDE 34

Muroya (U. Birmingham)

Avoid re-evaluation: dynamic rewrite

17

(λx. x + x) (1 + 2)

slide-35
SLIDE 35

Muroya (U. Birmingham)

call-by-name call-by-need

  • a token on a static graph
  • dynamic rewrites
  • space time efficiency
  • compositional reasoning
  • categorical GoI [Abramsky+, ’02]

Dynamic GoI machine

18

avoid repeated evaluation force evaluation of function arguments

slide-36
SLIDE 36

Muroya (U. Birmingham)

Force evaluation of arguments

19

(λx. 0) (1 + 2)

q q 3 6

slide-37
SLIDE 37

Muroya (U. Birmingham)

Force evaluation of arguments

19

(λx. 0) (1 + 2)

q q 3 6

slide-38
SLIDE 38

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

20

(λx. 0) (1 + 2)

slide-39
SLIDE 39

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

20

(λx. 0) (1 + 2)

slide-40
SLIDE 40

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

20

(λx. 0) (1 + 2)

slide-41
SLIDE 41

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

21

(λx. 0) (1 + 2)

slide-42
SLIDE 42

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

21

(λx. 0) (1 + 2)

slide-43
SLIDE 43

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

21

(λx. 0) (1 + 2)

slide-44
SLIDE 44

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

22

(λx. 0) (1 + 2)

slide-45
SLIDE 45

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

22

(λx. 0) (1 + 2)

slide-46
SLIDE 46

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

23

(λx. 0) (1 + 2)

slide-47
SLIDE 47

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

23

(λx. 0) (1 + 2)

slide-48
SLIDE 48

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

23

(λx. 0) (1 + 2)

slide-49
SLIDE 49

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

24

(λx. 0) (1 + 2)

slide-50
SLIDE 50

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

24

(λx. 0) (1 + 2)

slide-51
SLIDE 51

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

25

(λx. 0) (1 + 2)

slide-52
SLIDE 52

Muroya (U. Birmingham)

Force evaluation of arguments: checkpoint

25

(λx. 0) (1 + 2)

slide-53
SLIDE 53

Muroya (U. Birmingham)

Dynamic GoI machine, extended

26

“move” transition

_ ((G, `e, `b), p, d, m) 99K ((G, `e, `b), p0, d0, m0)

(α : p, m) 99K (β : Ax : α : p, m) (α : p, m) 99K (β : Cut : α : p, m) Ax α ↑ β Ax α β ↓ Cut α ↓ β Cut α β ↑ (αl : p, m) 99K (β : ($, αr) : αl : p, l : m) (β : p, l : m) 99K (αl : ($, αr) : β : p, m) $ αl ↓ αr β $ αl αr β ↓ $ αl αr β ↑ $ αl ↑ αr β (αr : p, m) 99K (β : ($, αl) : αr : p, r : m) (β : p, r : m) 99K (αr : ($, αl) : β : p, m) $ αl αr ↓ β $ αl αr β ↓ $ αl αr β ↑ $ αl αr ↑ β (α : p, m) 99K (β : ! : α : p, m) (β : p, m) 99K (α : ! : β : p, m) ! α ↓ β ! α β ↓ ! α β ↑ ! α ↑ β (α : p, m) 99K (β : D : α : p, m) D α ↓ β D α β ↓ (αi : p, m) 99K (β : C+ : αi : p, m) (α : p, m) 99K (β : C : α : p, m) Ck+1 αi ↓ α1 αk+1 · · · · · · β Ck+1 αi α1 αk+1 · · · · · · β ↓ C1 α ↓ β C1 α β ↓ (β : p, m) 99K (α1 : Sum1 : β : p, m) (α1 : p, m) 99K (α2 : Sum2 : α1 : p, m) Sum α1 α2 β ↑ Sum α1 ↑ α2 β Sum α1 ↓ α2 β Sum α1 α2 ↑ β (α2 : p, m) 99K (β : Sum : α2 : p, m) (α : p, m) 99K (α : (Val, n) : α : p, m) Sum α1 α2 ↓ β Sum α1 α2 β ↓ n α ↑ n α ↓

(β : p, m) 99K (β0 : (⇧, α0, α) : β : p, m) α0 α β0 β " α0 α β0 # β

slide-54
SLIDE 54

Muroya (U. Birmingham)

Dynamic GoI machine, extended

27

“rewrite” transition

_ ((G, `e, `b), p, d, m) ((G0, `0

e, `0 b), p0, d0, m)

α : ($, α0) : β : Cut : γ : ($⇤, δ0) : δ : p α : Cut : δ : p $ $⇤ Cut α ↑ α0 δ δ0 β γ Cut Cut α ↑ δ α0 δ0 $ $⇤ Cut α0 α ↑ δ0 δ β γ Cut Cut α ↑ δ α0 δ0 α : Cut : β : Ax : γ : p γ : p Cut Ax α ↑ β γ γ ↑ α : ! : β : Cut : γ : Ax : δ : p α : ! : δ : p ! Cut Ax α ↑ β γ δ ! α ↑ δ α : ! : β : Cut : γ : ? : δ : p α : ! : Cut : δ : p ! ? Cut α ↑ β γ δ ! Cut α ↑ β δ α : ! : β : Cut : γ : D : δ : p α : Cut : δ : p ? ? ! D Cut α1 β1 αm βm α ↑ β γ δ G · · · · · · β1 βm Cut α ↑ δ G · · ·

α : Sum : β2 : ! : γ2 : (Val, m) : γ2 : ! : β2 : Sum2 : β1 : ! : γ1 : (Val, n) : γ1 : ! : β1 : Sum1 : α : p γ1 : ! : α : p Sum ! ! n m γ1 γ2 β1 β2 α ↓ n + m ! γ1 ↑ α α : ! : β : Cut : γ : C : δ : p α : ! : β : Cut : δ : p ? ? ! C1 Cut α1 β1 αm βm α ↑ β γ0 δ G · · · · · · ? ? ! Cut α1 β1 αm βm α ↑ β δ G · · · · · ·

↵ : ! : : Cut : : C+ : i : p ↵ : ! : : Cut : i : p ? ? ! Ck+1 Cut ~ C · · · ↵1 1 ↵m m ↵ ↑

  • 1

k+1 i · · · · · · G · · · · · · ? ? ! Cut ↵1 ↵m ↵ ↑

  • i

G · · · · · · ? ? ! Ck Cut ~ C · · · µ1 µm µ ⌫

  • 1

· · · k+1 ˜ G · · · · · · 1 m ⌫1 ⌫m α : ! : β : Cut : γ0 : (⇧, δ0, δ) : γ : p γ : p ? ? ! Cut α1 β1 αm βm α " β γ0 δ0 γ δ G · · · · · · ? ? ! Cut α1 β1 αm βm α β γ0 γ " G · · · · · ·

slide-55
SLIDE 55

Muroya (U. Birmingham)

  • Dynamic GoI machine
  • Call-by-value storeless abstract machine

“Linear-cost” simulation

28

_

def.

⇐ ⇒ ( if a rewrite is possible 99K if no rewrite but a move is possible

hV, Eit !val hE, V ic hM N, Eit !val hM, E[[ ] N]it hM + N, Eit !val hM, E[[ ] + N]it hx, E1[let x = V in E2]it !val hE1[let x = V in E2], V ic

h i ! h i h[ ], A[V ]ic !val hA[V ]ia hE[[ ] N], A[x. M]ic !val hN, E[A[let x0 := [ ] in M[x0/x]]]it hE[[ ] + N], A[n]ic !val hN, E[A[n + [ ]]]it hE[n + [ ]], A[m]ic !val hE, A[n + m]ic hE[let x = V 0 in [ ]], A[V ]ic !val hE, let x = V 0 in A[V ]ic hE[let x := [ ] in M], A[V ]ic !val hM, E[A[let x = V in [ ]]]it

_ _ Theorem A.2. There exists a binary relation ‡ that satisfies c

k

→val c0 ∧ c ‡ (G, p, d, m) = ⇒ (G, p, d, m)

O(k)

_ · · · _ (G0, p0, d0, m0) ∧ c0 ‡ (G0, p0, d0, m0) .

slide-56
SLIDE 56

Muroya (U. Birmingham)

“Linear-cost” simulation

29

x† :=

_ _ Theorem A.2. There exists a binary relation ‡ that satisfies c

k

→val c0 ∧ c ‡ (G, p, d, m) = ⇒ (G, p, d, m)

O(k)

_ · · · _ (G0, p0, d0, m0) ∧ c0 ‡ (G0, p0, d0, m0) .

(λx. M)† := (M N)† :=

slide-57
SLIDE 57

Muroya (U. Birmingham)

call-by-name call-by-need & call-by-value

  • a token on a static graph
  • dynamic rewrites & “checkpoint” mechanism
  • space time efficiency
  • automated graph rewriter
  • categorical GoI [Abramsky+, ’02]

Dynamic GoI machine

30

avoid repeated evaluation force evaluation of function arguments