Model Checking Higher-Order Computation: I
Luke Ong
Computing Laboratory, University of Oxford
Marktoberdorf Summer School, 4-15 August 2009
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 1 / 52
Model Checking Higher-Order Computation: I Luke Ong Computing - - PowerPoint PPT Presentation
Model Checking Higher-Order Computation: I Luke Ong Computing Laboratory, University of Oxford Marktoberdorf Summer School, 4-15 August 2009 Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 1 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 1 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 2 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 2 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 2 / 52
1
2
3
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 3 / 52
1
2
3
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 3 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 4 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 4 / 52
1http://homepages.inf.ed.ac.uk/wadler/realworld/ Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 5 / 52
1http://homepages.inf.ed.ac.uk/wadler/realworld/ Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 5 / 52
1http://homepages.inf.ed.ac.uk/wadler/realworld/ Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 5 / 52
1
2
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 6 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 7 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 8 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 9 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 9 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 9 / 52
1
2
3
1
2
3
4
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 10 / 52
1
2
3
1
2
3
4
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 10 / 52
b
a
c
b
c
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 11 / 52
b
a
c
b
c
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 11 / 52
b
a
c
b
c
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 11 / 52
b
a
c
b
c
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 11 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 12 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 13 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 13 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 14 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 14 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 14 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 15 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 15 / 52
◮ terminals f , g, a, etc. from Σ ◮ variables ϕ1 : A1, · · · , ϕm : Am from Var, ◮ non-terminals D, F, G, etc. from N.
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 16 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 17 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 18 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 19 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 20 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 21 / 52
1
2
3
4
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 22 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 23 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 23 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 23 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 24 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 25 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 25 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 26 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 26 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 27 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 28 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 29 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 30 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 31 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 31 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 31 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 31 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 31 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 31 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 32 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 32 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 33 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 33 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 34 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 34 / 52
1
2
3
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 34 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 35 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 36 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 36 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 36 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 37 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 37 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 38 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 39 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 39 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 39 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 40 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 40 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 40 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 41 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 41 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 42 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 43 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 43 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 43 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 44 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 45 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 46 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 46 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 46 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 46 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 47 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 47 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 48 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 49 / 52
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 50 / 52
0[[]]
t
1[[][]]
a b
0[[][a]]
t
1[[][a][a]]
a b
0[[][a][a a]]
t
1[[][a][a a][a a]] · · ·
b
2[[][b]]
1
2[[][a][a b]]
1
2[[][a][a a][a a b]] · · ·
1
2[[][]] 2[[][a][a]]
1
2[[][a][a a][a a]] · · ·
1
2[[][a][]] 2[[][a][a a][a]] · · ·
1
2[[][a][a a][]]
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 51 / 52
1
2
Luke Ong (University of Oxford) Model Checking Functional Programs 4-16 Aug 09, Marktoberdorf 52 / 52