Type Theory for Mobility and Locality
Thesis Proposal Jonathan Moody Committee: Frank Pfennning, Karl Crary, Jeannette Wing, Andrew Gordon (MSR) School of Computer Science Carnegie Mellon University
Type Theory forMobility and Locality – p.1/49
Type Theory for Mobility and Locality Thesis Proposal Jonathan - - PowerPoint PPT Presentation
Type Theory for Mobility and Locality Thesis Proposal Jonathan Moody Committee: Frank Pfennning, Karl Crary, Jeannette Wing, Andrew Gordon (MSR) School of Computer Science Carnegie Mellon University Type Theory forMobility and Locality
Thesis Proposal Jonathan Moody Committee: Frank Pfennning, Karl Crary, Jeannette Wing, Andrew Gordon (MSR) School of Computer Science Carnegie Mellon University
Type Theory forMobility and Locality – p.1/49
Type Theory forMobility and Locality – p.2/49
program env.
No — We can safely ignore locations, we’re done...
Type Theory forMobility and Locality – p.2/49
program env.
No — We can safely ignore locations, we’re done... Yes — Must be careful when programs or values move.
Type Theory forMobility and Locality – p.2/49
Type Theory forMobility and Locality – p.3/49
Type Theory forMobility and Locality – p.4/49
Type Theory forMobility and Locality – p.4/49
Type Theory forMobility and Locality – p.5/49
Type Theory forMobility and Locality – p.5/49
Type Theory forMobility and Locality – p.5/49
Type Theory forMobility and Locality – p.5/49
Type Theory forMobility and Locality – p.5/49
“proof
✘that
✙is true” “term has type
✙”
✚✛ ✘ ✜ ✢ ✙ ✜ ✣ ✢✥✤ ✦ ✙Proposition
✚✛Type Proof
✚ ✛Program
Evaluation
Type Theory forMobility and Locality – p.6/49
Natural Deduction Term Typing
✜★✧ ✙ ✢ ✩ ✜ ✢ ✙ ✪ ✩ ✪ ✫ ✜ ✣ ✧ ✙ ✢ ✤ ✩ ✜ ✣ ✢ ✤ ✙ ✪ ✩ ✪ ✫ ✜ ✢ ✙ ✪ ✩ ✜ ✢ ✙ ✜ ✢ ✩ ✪ ✬ ✜ ✣ ✢ ✤ ✙ ✪ ✩ ✜ ✣ ✢ ✤ ✙ ✜ ✣ ✢ ✤ ✩ ✪ ✬Type Theory forMobility and Locality – p.7/49
Natural Deduction Term Typing
✜★✧ ✙ ✢ ✩ ✜ ✢ ✙ ✪ ✩ ✪ ✫ ✜ ✣ ✧ ✭ ✦ ✙ ✢ ✤ ✦ ✩ ✜ ✣ ✢ ✤ ✮ ✭ ✦ ✙ ✯ ✦ ✙ ✪ ✩ ✪ ✫ ✜ ✢ ✙ ✪ ✩ ✜ ✢ ✙ ✜ ✢ ✩ ✪ ✬ ✜ ✣ ✢ ✤ ✦ ✙ ✪ ✩ ✜ ✣ ✢ ✤ ✰ ✦ ✙ ✜ ✣ ✢ ✤ ✰ ✦ ✩ ✪ ✬Type Theory forMobility and Locality – p.7/49
Type Theory forMobility and Locality – p.8/49
Type Theory forMobility and Locality – p.8/49
Type Theory forMobility and Locality – p.8/49
Type Theory forMobility and Locality – p.9/49
Type Theory forMobility and Locality – p.9/49
Type Theory forMobility and Locality – p.10/49
Type Theory forMobility and Locality – p.11/49
Type Theory forMobility and Locality – p.12/49
Type Theory forMobility and Locality – p.13/49
A true A true B true C true C true B true
Type Theory forMobility and Locality – p.13/49
B valid
Type Theory forMobility and Locality – p.13/49
B valid B true B true B true B true
Type Theory forMobility and Locality – p.13/49
C poss
Type Theory forMobility and Locality – p.13/49
C poss C true
Type Theory forMobility and Locality – p.13/49
C poss C true
Type Theory forMobility and Locality – p.13/49
C poss C true
Type Theory forMobility and Locality – p.13/49
Type Theory forMobility and Locality – p.14/49
Type Theory forMobility and Locality – p.14/49
Type Theory forMobility and Locality – p.15/49
Type Theory forMobility and Locality – p.15/49
Type Theory forMobility and Locality – p.16/49
Type Theory forMobility and Locality – p.17/49
Type Theory forMobility and Locality – p.18/49
let box u = box M in N
Type Theory forMobility and Locality – p.19/49
let box u = box M in N {..., M}
Type Theory forMobility and Locality – p.19/49
N ... u ... V
Type Theory forMobility and Locality – p.19/49
N ... u ... V
let box
❴= box
❵in
❛ ❜❝ ❞ ❡ ❳❩❨ ❢ ❭ ❵ ❝❤❣ ❳ ❨ ❬ ❭ ❪ ❫ ❫ ❫ ❨ ❢ ✐ ❴ ❜ ❜ ❛ ❜ ❝ ❳❩❨ ❢ ❭ ❥ ❝❤❣ ❳❩❨ ❬ ❭ ❪ ❫ ❨ ❢ ❜❝ ❞ ❡ ❳❩❨ ❢ ❭ ❥ ❝❤❣ ❳❩❨ ❬ ❭ ❪ ❫ ❥ ❜❝ ❳❩❨ ❬ ❭ ❪ ❫let box
❴= box
❥in
❛ ❜❝ ❞ ❡ ❳❩❨ ❬ ❭ ❪ ❫ ❫ ❫ ❥ ✐ ❴ ❜ ❜ ❛ ❜❝Type Theory forMobility and Locality – p.19/49
Type Theory forMobility and Locality – p.20/49
Type Theory forMobility and Locality – p.21/49
Type Theory forMobility and Locality – p.22/49
Type Theory forMobility and Locality – p.23/49
let dia x = in F dia V
*
Type Theory forMobility and Locality – p.24/49
{...x, F}
2
l
2
let dia x = dia in F [V/x] F l
Type Theory forMobility and Locality – p.24/49
[V/x] F
Type Theory forMobility and Locality – p.24/49
[V/x] F
let dia
q= dia
♦ ❢in
r ❜❝ ❣ ❳ ♦ ❢ ❭{
❥}
❝ ❞ ❡ ❳ ♦ ❬ ❭ ♣ ❫ ♦ s ❢ ❜❝ ❣ ❳ ♦ s ❢ ❭ ❫ ❥ ✐ q ❜ r ❝ ❣ ❳ ♦ ❢ ❭{
❥}
❝ ❳ ♦ ❬ ❭ ♣ ❫let dia
q= dia {
❥} in
r ❜❝ ❞ ❡ ❳ ♦ ❬ ❭ ♣ ❫ ❫ ❥ ✐ q ❜ r ❜ ❝Type Theory forMobility and Locality – p.24/49
Type Theory forMobility and Locality – p.25/49
Type
✙ ✧ ✩ ✦ ✦ ✼ ✙ ✪ ✩ t ◆ ✙ t ❙ ✙Term
✧ ✰ ✦ ✦ ✼ ✭ t ❀ t ✮ ✭ ✦ ✙ ✯ t ✰ tExpr.
✬ ✧ ♥ ✦ ✦ ✼Type Theory forMobility and Locality – p.26/49
Type
✙ ✧ ✩ ✦ ✦ ✼ ✙ ✪ ✩ t ◆ ✙ t ❙ ✙Term
✧ ✰ ✦ ✦ ✼ ✉ t ✭ t ❀ t ✮ ✭ ✦ ✙ ✯ t ✰ tExpr.
✬ ✧ ♥ ✦ ✦ ✼ ✈ tLabel
✇ ✦ ✦ ✼ ✉ t ✈Process
① ✦ ✦ ✼ ② ✉ ✦ ③ t ② ✈ ✦ ✬ ③Config.
❇ ✦ ✦ ✼ ▲ t ❇ ✧ ①Type Theory forMobility and Locality – p.26/49
Type Theory forMobility and Locality – p.27/49
Type Theory forMobility and Locality – p.27/49
and
❇ ✼ ✛ ❇ ④ ✼ ✛ ✶ ⑦ ④❷❶ ⑦ ✯ ✶ ⑤ ④ ✯ ⑤ ④ ✢ ⑥ ❇ ④ ✦ ⑦ ④ ⑦ ④Type Theory forMobility and Locality – p.28/49
and
❇ ✼ ✛ ❇ ④ ✼ ✛ ✶ ⑦ ④❷❶ ⑦ ✯ ✶ ⑤ ④ ✯ ⑤ ④ ✢ ⑥ ❇ ④ ✦ ⑦ ④ ⑦ ④and
⑤❹❸ ❊ ❸ ❺ ❻ ❺ ❄ ❅ ❺ ✼ ✛ ✶ ❇ ④ ✯ ❇ ✼ ✛ ❇ ④Type Theory forMobility and Locality – p.28/49
Type Theory forMobility and Locality – p.29/49
G H C D C D * * * * C’ D’
Type Theory forMobility and Locality – p.29/49
Type Theory forMobility and Locality – p.30/49
Type Theory forMobility and Locality – p.31/49
Type Theory forMobility and Locality – p.32/49
Type Theory forMobility and Locality – p.33/49
Type Theory forMobility and Locality – p.33/49
Type Theory forMobility and Locality – p.34/49
Type Theory forMobility and Locality – p.35/49
Type Theory forMobility and Locality – p.36/49
Type Theory forMobility and Locality – p.36/49
Type Theory forMobility and Locality – p.36/49
Type Theory forMobility and Locality – p.36/49
Type Theory forMobility and Locality – p.36/49
Type Theory forMobility and Locality – p.37/49
Type Theory forMobility and Locality – p.37/49
Type Theory forMobility and Locality – p.38/49
Type Theory forMobility and Locality – p.38/49
Type Theory forMobility and Locality – p.39/49
Type Theory forMobility and Locality – p.39/49
Type Theory forMobility and Locality – p.40/49
Type Theory forMobility and Locality – p.40/49
Type Theory forMobility and Locality – p.40/49
Type Theory forMobility and Locality – p.40/49
Type Theory forMobility and Locality – p.40/49
Type Theory forMobility and Locality – p.41/49
Type Theory forMobility and Locality – p.41/49
Type Theory forMobility and Locality – p.41/49
Type Theory forMobility and Locality – p.42/49
Type Theory forMobility and Locality – p.43/49
Type Theory forMobility and Locality – p.44/49
Type Theory forMobility and Locality – p.45/49
box
❵ ❭ ➝ ➈ ➝ ↔ ➄➆➅ ➇ ➉➐➊ ❵ ❭ ➝ ➈ ➄ ❣ ❴ ❭ ❭ ➈ ➅ ➇ ➉➐➊ ❛ ❭ ➑ ➄ ➅ ➇ ➉ ➊let box
❴=
❵in
❛ ❭ ➑ ➝ ➙ ➄ ➅ ➇ ➉➐➊ ❵ ❭ ➈ ➄ ➅ ➇ ➉➋➊{
❵}
➞ ➈ ➏➟ ➠ ➠ ➄ ➅ ➇ ➉➐➊ ❵ ❭ ➡ ➈ ➄➆➅ q ❭ ➈ ➉ ➊ ➜ r ➞ ➑ ➄➆➅ ➇ ➉➋➊let dia
q=
❵in
r ➞ ➑ ➡ ➙ ➄ ➅ ➇ ➉➐➊ ➙ ➞ ➈ ➄ ➅ ➇ ➉ ➊dia
➙ ❭ ➡ ➈ ➡ ↔ ➄ ➅ ➇ ➉ ➊ ❵ ❭ ➝ ➈ ➄ ❣ ❴ ❭ ❭ ➈ ➅ ➇ ➉➐➊ r ➞ ➑ ➄➆➅ ➇ ➉➋➊let box
❴=
❵in
r ➞ ➑ ➝ ➙➤➢Type Theory forMobility and Locality – p.46/49
(
❵,
❛)
❭ ➈➧➦ ➑ ➄➆➅ ➇ ➉ ❵ ❭ ➈ ➦ ➑ ➄➆➅ ➇ ➉fst
❵ ❭ ➑ ➄ ➅ ➇ ➉ ❵ ❭ ➈➧➦ ➑ ➄➆➅ ➇ ➉snd
❵ ❭ ➈Type Theory forMobility and Locality – p.47/49
(
❵,
❛)
❭ ➈➧➦ ➑ ➄➆➅ ➇ ➉ ❵ ❭ ➈ ➦ ➑ ➄➆➅ ➇ ➉fst
❵ ❭ ➑ ➄ ➅ ➇ ➉ ❵ ❭ ➈➧➦ ➑ ➄➆➅ ➇ ➉snd
❵ ❭ ➈Type Theory forMobility and Locality – p.47/49
Type Theory forMobility and Locality – p.48/49
Type Theory forMobility and Locality – p.48/49
Type Theory forMobility and Locality – p.48/49
comp
➨ ❭ ➫ ➈ ➫ ↔ ➄ ➅ ➇ ➉➐➊ ❵ ❭ ➫ ➈ ➄ ➅ ➇ ❣ q ❭ ➈ ➉ ➊ ➭ ❭ ➩ ➑ ➄➆➅ ➇ ➉➋➊let comp
q=
❵in
➭ ❭ ➩ ➑ ➫ ➙ ➄ ➅ ➇ ➉➐➊ ❵ ❭ ➈ ➄ ➅ ➇ ➉ ➊[
❵]
❭ ➩ ➈ ➯ ➟ ➲ ➏ ➄ ➅ ➇ ➉➐➊ ❵ ❭ ➝ ➈ ➄ ❣ ❴ ❭ ❭ ➈ ➅ ➇ ➉➐➊ ➭ ❭ ➩ ➑ ➄➆➅ ➇ ➉➋➊let box
❴=
❵in
➭ ❭ ➩ ➑ ➝ ➙➵➳ ➄➆➅ ➇ ➉➐➊ ➨ ❭ ➩ ➈ ➄➆➅ ➇ ➉➋➊{
➨}
➞ ➈ ➏➟ ➠ ➠ s ➄ ➅ ➇ ➉ ➊ ❵ ❭ ➫ ➈ ➄ ➅ ➇ ❣ q ❭ ➈ ➉➐➊ r ➞ ➑ ➄➆➅ ➇ ➉➋➊let comp
q=
❵in
r ➞ ➑ ➫ ➙ ➢Primitive effects:
➸ ❞ ➸ ❬ ❣ ➺ ➻ ❭ ➈ ❣ ➸ ❢ ➸ ➅ ➄ ➅ ➇ ➉ ➻ ➺ ➻ ❭ref
➈ ➺ ➼ ➼ ❨ ➄ ➅ ➇ ➉➋➊ ❵ ❭ ➈ ➄ ➅ ➇ ➉ ➊ref
❵ ❭ ➩ref
➈ ➽ ➺ ♦ ♦ ➟ ➯ ➄➆➅ ➇ ➉➋➊ ❵ ❭ref
➈ ➄ ➅ ➇ ➉➋➊!
❵ ❭ ➩ ➈ ➽➣➾➚ ➽ ➄➆➅ ➇ ➉➋➊ ❵ ❭ref
➈ ➄ ➅ ➇ ➉➋➊ ❛ ❭ ➈ ➄➆➅ ➇ ➉➋➊ ❵:=
❛ ❭ ➩1
➽ ➠ ➚ ➽Type Theory forMobility and Locality – p.49/49