` e : T. Gradual Typing. ` e X. Ronald Garcia University of British Columbia
|
|
- Sophia Hampton
- 5 years ago
- Views:
Transcription
1 <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> ` e : T ` e X Gradual Typing Ronald Garcia University of British Columbia 1
2 Static vs. Dynamic? static early error detection enforced discipline dynamic rapid prototyping flexible idioms 2
3 Gradual Typing! gradual early error detection enforced discipline 3 rapid prototyping flexible idioms programmer-controlled!
4 Outline Motivating Example (In Two Acts) Gradual Typing For All! Typing in Small Pieces Meat Strands and Related Works 4
5 Motivating Example Act 1: A New Type 5
6 A Dynamic Language 6
7 A Dynamic Language Standard ML 7
8 A Dynamic Language Robin Milner Standard ML 8
9 Standard ML: dynamically typed? datatype nat = Zero Succ of nat case x : nat of Zero )... Succ y )... 5 Adapted from Jafery and Dunfield [POPL17] 9
10 Standard ML: dynamically typed? datatype nat = Zero Succ of nat case x : nat of Zero )... Succ y )... But the Definition requires compilers to accept nonexhaustive matches: case x : nat of Succ y )... 5 Adapted from Jafery and Dunfield [POPL17] 10
11 Standard ML: dynamically typed? datatype nat = Zero Succ of nat case x : nat of Zero )... Succ y )... But the Definition requires compilers to accept nonexhaustive matches: case x : nat of Succ y )... If x = Zero, then the exception Match is raised. This nonexhaustive match is fine, if we know that x will never be Zero. 5 Adapted from Jafery and Dunfield [POPL17] 11
12 Static Types! 12
13 Standard ML: dynamically typed? datatype nat = Zero Succ of nat case x : nat of Zero )... Succ y )... But the Definition requires compilers to accept nonexhaustive matches: case x : nat of Succ y )... If x = Zero, then the exception Match is raised. This nonexhaustive match is fine, if we know that x will never be Zero. 5 Adapted from Jafery and Dunfield [POPL17] 13
14 Standard ML: dynamically typed? datatype nat = Zero Succ of nat case x : nat of Zero )... Succ y )... But the Definition requires compilers to accept nonexhaustive matches: case x : nat of Succ y )... If x = Zero, then the exception Match is raised. This nonexhaustive match is fine, if we know that x will never be Zero. Frank Pfenning 5 Adapted from Jafery and Dunfield [POPL17] 13
15 Standard ML: dynamically typed? datatype nat = Zero Succ of nat case x : nat of Zero )... Succ y )... But the Definition requires compilers to accept nonexhaustive matches: A widely employed style of programming, s which impose no discipline of types rocedures which work well on objects of case x : nat of Succ y )... If x = Zero, then the exception Match is raised. This nonexhaustive match is fine, if we know that x will never be Zero. Frank Pfenning Well, actually Milner [1978] said that (about LISP). 5 Adapted from Jafery and Dunfield [POPL17] 13
16 Standard ML: dynamically typed? datatype nat = Zero Succ of nat case x : nat of Zero )... Succ y )... But the Definition requires compilers to accept nonexhaustive matches: A widely employed style of programming, s which impose no discipline of types rocedures which work well on objects of case x : nat of Succ y )... This nonexhaustive match is fine, if we know that x will never be Zero. Frank Pfenning a wide variety (e.g., on lists of atoms, integers, or lists). Such flexibility is almost essential in this style If x of = programming; Zero, then the unfortunately exception one Match often pays is raised. a price for it in the time taken to find rather inscrutable bugs-anyone who mistakenly applies CDR to an atom in LISP, and finds himself absurdly adding a property list to an integer, will know the Well, actually Milner [1978] said that (about LISP) too 5 Adapted from Jafery and Dunfield [POPL17] 13
17 Refined Standard ML Datasort refinements [Freeman & Pfenning 1991, Davies 2005,... ] push the knowledge that x is not Zero into the type system. case x : nonzero of Succ y )... This is exhaustive, because x has datasort nonzero. 6 Frank Pfenning Adapted from Jafery and Dunfield [POPL17] 14
18 Refined Standard ML Datasort refinements [Freeman & Pfenning 1991, Davies 2005,... ] push the knowledge that x is not Zero into the type system. case x : nonzero of Succ y )... This is exhaustive, because x has datasort nonzero. 6 Frank Pfenning Adapted from Jafery and Dunfield [POPL17] 15
19 Refined Standard ML Datasort refinements [Freeman & Pfenning 1991, Davies 2005,... ] push the knowledge that x is not Zero into the type system. case x : nonzero of Succ y )... This is exhaustive, because x has datasort nonzero.? 6 Frank Pfenning Adapted from Jafery and Dunfield [POPL17] 16
20 Outline Motivating Example (In Two Acts) STILL Gradual Typing For All! Typing in Small Pieces Meat Strands and Related Works 17
21 Motivating Example Act 2: Adoption 18
22 19
23 20
24 21
25 22
26 No Refined ML! 23
27 Paucity of RML Code SML Application1 Refined ML Application0 Application2 Library1 Library2 *Figures not drawn to scale 24
28 SML Application1 Refined ML Application0 Application2 Library1 Library2 *Figures not drawn to scale 25
29 SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 *Figures not drawn to scale 26
30 SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 *Figures not drawn to scale 27
31 SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 *Figures not drawn to scale 28
32 SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 *Figures not drawn to scale 29 Wholesale Migration?!?
33 SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 *Figures not drawn to scale 30 Wholesale Migration?!?
34 SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 *Figures not drawn to scale 31 Wholesale Migration?!?
35 SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 Library1 *Figures not drawn to scale 32 Wholesale Migration?!?
36 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 *Figures not drawn to scale 33 Wholesale Migration?!?
37 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 *Figures not drawn to scale 34
38 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 *Figures not drawn to scale 35 Must We Assimilate?
39 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 *Figures not drawn to scale 36
40 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 Library2 Gradual Migration *Figures not drawn to scale 37
41 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 Library2 Gradual Migration *Figures not drawn to scale 38
42 SML Application1 Application2 Library1 Library2 *Figures not drawn to scale 39 Refined ML Application0 Application1 Application2 Library1 Library2 Gradual Migration SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating!
43 <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 ` e X Application2 Library1 Library2 *Figures not drawn to scale 40 Gradual Migration SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating!
44 <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 ` e X Application2 Library1 Library2 Free! *Figures not drawn to scale 41 Gradual Migration SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating!
45 <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> Optional Typing SML Application1 Application2 Refined ML Application0 Application1 Library1 Library2 ` e X Application2 Library1 Library2 Free! *Figures not drawn to scale 42 Gradual Migration SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating!
46 SML Application1 Application2 Library1 Library2 *Figures not drawn to scale 43 Refined ML Application0 Application1 Application2 Library1 Library2 Gradual Migration SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating!
47 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 Library2 ` e : T *Figures not drawn to scale 44 Gradual Migration SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating!
48 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 Library2 COUGH! ` e : T *Figures not drawn to scale 45 Gradual Migration SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating!
49 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1 Library2 ` e : T *Figures not drawn to scale 46 Gradual Migration SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating!
50 SML Application1 Application2 Library1 Library2 Refined ML Application0 Application1 Application2 Library1??? Library2 ` e : T Gradual Migration The Challenge! SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating! *Figures not drawn to scale 47
51 SML Sums of Uncertainty: Refinements Go Gradual Application1 Khurram A. Jafery Joshua Dunfield University of British Columbia Vancouver, Canada Refined ML Application0 ` e : T Application2 Library1 Library2 Application1 Application2 Library1??? Library2 *Figures not drawn to scale POPL17 Gradual Migration The Challenge! SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating! 48
52 SML Sums of Uncertainty: Refinements Go Gradual Application1 Khurram A. Jafery Joshua Dunfield University of British Columbia Vancouver, Canada Refined ML Application0 ` e : T Application2 Library1 Library2 Application1 Application2 Library1??? Library2 *Figures not drawn to scale POPL17 Gradual Migration The Challenge! SML Code (& Guarantees) Refined ML Code (& Guarantees) Interoperating! 49
53 Outline Motivating Example (In Two Acts) Gradual Typing For All! Typing in Small Pieces Meat Strands and Related Works 50
54 Type Spectrum ML Types Refinement Types 51
55 Type Spectrum Untyped ML Types Refinement Types 52
56 Type Spectrum Untyped ML Types Refinement Types 53
57 Type Spectrum Untyped ML Types Refinement Types Languages Typedness Typier 54
58 Type Spectrum Untyped ML Types Refinement Types Gradual Typing 55
59 Type Spectrum Untyped ML Types Refinement Types Gradual Typing 56
60 Type Spectrum Untyped ML Types Refinement Types Gradual Typing 57
61 Type Spectrum Untyped ML Types Refinement Types Gradual Typing Gradual Typing is a Relative Concept! 57
62 Type Spectrum Untyped ML Types Refinement Types Gradual Typing Gradual Typing is a Relative Concept! 57
63 Type Spectrum I always assumed gradual types were to help those poor schmucks using untyped languages to migrate to typed languages. I now realise that I am one of the poor schmucks. My recent research involves session types, a linear type system that declares protocols for sending Untyped ML Types Refinement Types Gradual Typing Gradual Typing is a Relative Concept! [Wadler SNAPL2015] 57
64 Type Spectrum Untyped ML Types Refinement Types Most Gradual Typing Work 58
65 Type Spectrum Untyped ML Types Refinement Types Most Gradual Typing Work Static Language Dynamic Language 58 Application0 Application1 Application2 Library1 Library2
66 Type Spectrum Untyped ML Types Refinement Types Much Recent Gradual Typing Work! Static Language Dynamic Language 59 Application0 Application1 Application2 Library1 Library2
67 Outline Motivating Example (In Two Acts) Gradual Typing For All! Typing in Small Pieces Meat Strands and Related Works 60
68 Gradual Types? 61
69 Gradual Types? What does Gradual Typing have to do with Types? 61
70 Gradual Types 62
71 What are Types About? ` e : T 63
72 Typing Γ t : T x:t Γ Γ x : T (T-Var) Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) 64
73 Typing Γ t : T x:t Γ Γ x : T (T-Var) Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) Inductive Definition 64
74 Typing Γ t : T x:t Γ Γ x : T (T-Var) Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) Inductive Definition Grammar on Steroids (i.e., data structure spec) 64
75 Typing Γ t : T x:t Γ Γ x : T (T-Var) Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) Inductive Definition Grammar on Steroids (i.e., data structure spec) Informally ascribe behavioural meaning to it 64
76 Typing Γ t : T x:t Γ Γ x : T (T-Var) Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) Inductive Definition Daniel Kahneman Grammar on Steroids (i.e., data structure spec) Informally ascribe behavioural meaning to it 64
77 Typing x:t Γ Γ x : T If you are shown a word Γ on t a : screen T in a language you know, you will read it. (T-Var) Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) Inductive Definition Daniel Kahneman Grammar on Steroids (i.e., data Thinking, structure Fast spec) and Slow Informally ascribe behavioural meaning to it 64
78 Typing Γ t : T x:t Γ Γ x : T (T-Var) Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) Inductive Definition Grammar on Steroids (i.e., data structure spec) Informally ascribe behavioural meaning to it 64
79 Typing Γ t : T If t1 turns T11s into T12s x:t Γ Γ x : T Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Var) (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) Inductive Definition Grammar on Steroids (i.e., data structure spec) Informally ascribe behavioural meaning to it 64
80 Typing and t2 yields T11s Γ t : T If t1 turns T11s into T12s x:t Γ Γ x : T Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Var) (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) Inductive Definition Grammar on Steroids (i.e., data structure spec) Informally ascribe behavioural meaning to it 64
81 Typing and t2 yields T11s Γ t : T If t1 turns T11s into T12s x:t Γ Γ x : T Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Var) (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 Inductive Definition Grammar on Steroids (i.e., data structure spec) (T-App) then appropriately linking them yields T12s Informally ascribe behavioural meaning to it 64
82 Type Safety Theorem [Progress]: Suppose t is a closed, well-typed term (that is, t : T for some T). Then either t is a value or else there is some t with t t. Theorem [Preservation]: If Γ t : T and t t,thenγ t : T. Well-typed programs don t go wrong 65
83 Gradual Type Safety? Application0 Application1 Application2 Library1 Library2 66
84 <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> Now You ve Got Two Problems! Application0 Application1 Application2 Library1 Library2 ` e X ` e : T 67
85 <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> Now You ve Got Two Problems! Application0 Application1 Application2 Library1 Library2 ` e X ` e : T Two Typing Judgments = Two Behavioural Contracts 67
86 <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> Now You ve Got Two Problems! Application0 Application1 Application2 Library1 Library2 ` e X ` e : T Two Typing Judgments = Two Behavioural Contracts Conflicts Signal Runtime Errors (is that wrong?) 67
87 <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> Now You ve Got Two Problems! Application0 Application1 Application2 Library1 Library2 ` e X ` e : T What counts as appropriate linking? Two Typing Judgments = Two Behavioural Contracts Conflicts Signal Runtime Errors (is that wrong?) 67
88 Typing and t2 yields T11s Γ t : T If t1 turns T11s into T12s x:t Γ Γ x : T Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 (T-Var) (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) then appropriately linking them yields T12s 68
89 and t1 turns T11s into T12s Typing and t2 yields T11s x:t Γ Γ x : T Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 Γ t : T (T-Var) (T-Abs) Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 (T-App) If the surrounding context behaves as Γ says then appropriately linking them yields T12s 69
90 and t1 turns T11s into T12s Typing and t2 yields T11s x:t Γ Γ x : T Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 Γ t : T (T-Var) (T-Abs) If the surrounding context behaves as Γ says Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 Typing Judgments are about program fragments (T-App) then appropriately linking them yields T12s 69
91 and t1 turns T11s into T12s Typing and t2 yields T11s x:t Γ Γ x : T Γ, x:t 1 t 2 : T 2 Γ λx:t 1.t 2 : T 1 T 2 Γ t : T (T-Var) (T-Abs) If the surrounding context behaves as Γ says Γ t 1 : T 11 T 12 Γ t 2 : T 11 Γ t 1 t 2 : T 12 Typing Judgments are about program fragments (T-App) then appropriately linking them yields T12s Context Matters, at least intuitively 69
92 Type Safety Theorem [Progress]: Suppose t is a closed, well-typed term (that is, t : T for some T). Then either t is a value or else there is some t with t t. Theorem [Preservation]: If Γ t : T and t t,thenγ t : T. Well-typed programs don t go wrong 70
93 Type Safety Theorem [Progress]: Suppose t is a closed, well-typed term (that is, t : T for some T). Then either t is a value or else there is some t with t t. Theorem [Preservation]: If Γ t : T and t t,thenγ t : T. Well-typed (whole) programs don t go wrong 70
94 Type Safety Theorem [Progress]: Suppose t is a closed, well-typed term (that is, t : T for some T). Then either t is a value or else there is some t with t t. Theorem [Preservation]: If Γ t : T and t t,thenγ t : T. Well-typed (whole) programs don t go wrong Do program fragments go right? 70
95 Outline Motivating Example (In Two Acts) Gradual Typing For All! Typing in Small Pieces STILL Meat Strands and Related Works 71
96 Type Safety Theorem [Progress]: Suppose t is a closed, well-typed term (that is, t : T for some T). Then either t is a value or else there is some t with t t. Theorem [Preservation]: If Γ t : T and t t,thenγ t : T. Well-typed (whole) programs don t go wrong Do program fragments go right? 72
97 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness [Milner 78] discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., Ifif p ` d e : T then = p = e : d T. : [Milner 1978] 73
98 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness [Milner 78] discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., Ifif p ` d e : T then = p = e : d T. : [Milner 1978] 73
99 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness [Milner 78] discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., Ifif p ` d e : T then = p = e : d T. : [Milner 1978] 73
100 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness [Milner 78] discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., Ifif p ` d e : T then = p = e : d T. : [Milner 1978] 73
101 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness [Milner 78] discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., Ifif p ` d e : T then = p = e : d T. : Data Structure Behavioural Invariant [Milner 1978] 74
102 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., If if p` e d : : T then then = p e = : T. d : Syntax Semantics Every proof of type assignment says something meaningful about code [Milner 1978] 75
103 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., If if p` e d : : T then then = p e = : T. d : Compositional Reasoning Modular Reasoning [Milner 1978] 76
104 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., If if p` e d : : T then then = p e = : T. d : Syntax Semantics As a corollary, under the conditions of the theorem we have WIT # wrong, since wrong has no type. Whole-Program Payoff! [Milner 1978] 77
105 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness implies discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., If if p` e d : : T then then = p e = : T. d : Syntax Semantics As a corollary, under the conditions of the theorem we have WIT # wrong, since wrong has no type. Whole-Program Payoff! [Milner 1978] 78
106 <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> <latexit sha1_base64="xc7bemic1t8t5xixg+hzt35dagq=">aaacmnicbvbnaxrbeo1jnikbe1c9eilcah5kmakbxvpqg3qlkp2anwwp6anjnunugbprlizd/iyv+swbhpsgifd/hlmfhzxxqcpjvvdu10tlrtxh0bdga/vbw53dvuet/cchh0/at5/1ffe5sv1z6minuvsklauuk9y0kb2hstx108spc78/jedvyc95vtli4ivvuzlijtruf06yrrhwiywvqeuwh+qjgooqtdp0eyb4b+ewcgfpyg4ktjgr9qti2bq3o1eylqh3sbwmhbhg2bh9k2sfraxzlhq9h8zryamahsupad5kkk8lyku8ogfdlrryo3p58hyogiwdvhdnswxldxoirup9zkrn0ibp/f1vif7pg1acvx3vypyvk5wrrxmlgqty9aezcirzzxqc0qnmryan6fby0/kihpjuyfdj7zimozd+cti5fb+uy0+8ec/fkxgln+jufbjnoiuk+cpuxq/xm7govge/gt+r6fawnnku/khw5y+6c6dz</latexit> Semantic Soundness implies discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that well-type programs cannot go wrong and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these THEOREM 1 (Semantic Soundness). If 7 respects jj and p 1 & is well typed then &[djt : 7. i.e., If if p` e d : : T then then = p e = : T. d : Syntax Semantics As a corollary, under the conditions of the theorem we have WIT # wrong, since wrong has no type. Whole-Program Payoff! [Milner 1978] 79
107 Discourse On The Method 80
108 Discourse On The Method 80
109 Discourse On The Method Payoff 80
110 Discourse On The Method Behavioural Invariant 80
111 Discourse On The Method Fragment Soundness is often(*) a Corollary Behavioural Invariant 80
112 <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> Syntactic Thinking Application0 Application1 Application2 Library1 Library2 ` e X ` e : T Two Typing Judgments = Two Behavioural Contracts Conflicts Signal Runtime Errors (go wrong!) 81
113 Semantic Thinking = e : T Application0 Application1 Application2 Library1 Library2 = e X (Semantically) Sound Gradual Typing Semantic Judgments Denote Behavioural Contracts Appropriate Linking Enforces Contracts 82
114 Outline Motivating Example (In Two Acts) Gradual Typing For All! Typing in Small Pieces Meat Strands and Related Works 83
115 Outline Motivating Example (In Two Acts) Gradual Typing For All! Typing in Small Pieces Meat Strands and Related Works 84
116 Gradual Typing 85
117 Gradual in which sense? 6.1 Gradual Typing Migratory typing is closely related to gradual typing [66, 67]. In the broad sense, the term gradual typing has come to describe any type system that allows some amount of dynamic typing. In the precise sense of Siek et al. [67], a gradual typing system includes: (1) a dynamic type that may be implicitly cast to any other type; (2) a relation between types that are equal up to occurrences [Greenman & Felleisen ICFP18] 86
118 Gradual in which sense? 6.1 Gradual Typing Migratory typing is closely related to gradual typing [66, 67]. In the broad sense, the term gradual typing has come to describe any type system that allows some amount of dynamic typing. In the precise sense of Siek et al. [67], a gradual typing system includes: (1) a dynamic type that may be implicitly cast to any other type; (2) a relation between types that are equal up to occurrences [Greenman & Felleisen ICFP18] 86
119 Gradual in which sense? 6.1 Gradual Typing Migratory typing is closely related to gradual typing [66, 67]. In the broad sense, the term gradual typing has come to describe any type system that allows some amount of dynamic typing. In the precise sense of Siek et al. [67], a gradual typing system includes: (1) a dynamic type that may be implicitly cast to any other type; (2) a relation between types that are equal up to occurrences [Greenman & Felleisen ICFP18] 86
120 Gradual Typing for Functional Languages Jeremy G. Siek University of Colorado Walid Taha Rice University Scheme
121 Gradual Typing for Functional Languages Jeremy G. Siek University of Colorado Walid Taha Rice University Rejected from ICFP
122 Gradual Typing for Functional Languages Jeremy G. Siek University of Colorado Walid Taha Rice University Rejected from ICFP 2006 >300 citations 89
123 Typing Gradually def f(x) = x + 2 def h(g) = g(1) h(f) Mixed Checking 90
124 Typing Gradually def f(x) = x + 2 def h(g) = g(1) Types might be inferred h(f) [Siek and Vachharajani DLS08] [Garcia and Cimini POPL15] Mixed Checking 91
125 Gradual Enforcement def f(x:bool) = x + 2 def h(g) = g(true) h(f) static error 92
126 <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> Gradual Enforcement def f(x:bool) = x + 2 def h(g) = g(true) h(f) static error ` e : T 92
127 Gradual Enforcement def f(x:int) = x + 2 def h(g) = g(true) h(f) runtime error 93
128 <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="184rnpzv8as3a91sfrw5waynu5g=">aaacc3icbva9swnben2lxzf+rs1tlgtbktyjogxqqssi5gnyicxtjsms3btjdy8qjvq2/hubc0vs/qn2/hv3khsa+gdg8d4mm/ocwhbtxpfbya2tb2xu5bclo7t7+wffw6ogjhlfsm4iealwabofd7fuubhyihwcdaq2g9fn5jfhqdspwgczibejyrdypmdgrnqtlvxbkbkop+6bhll0jzhhfkc+gyibsvcjabdydivudhsveatsjgvuusuvvxexrgjomact254bm04kynamcfrwe40xsbemsg1pcbj1j539mqwnvunrfqrshybo1n8tkuitjzkwndmpetnlxp+8dml6v52uh3fimgtzrf1eubprlbja4wqzernlgclub6vscaqysfevbaje8surphfe8dykd39rrl4v4site1iiz8qjl6rk7kin1akjj+szvji358l5cd6dj3lrzlnmhjm/cd5/aetlmzc=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> <latexit sha1_base64="s/o2rgsfr99gnxfhcxfwoiile6a=">aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=</latexit> Gradual Enforcement def f(x:int) = x + 2 def h(g) = g(true) h(f) runtime error ` e : T ` e X 93
129 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Gradual `G e : e T 94
130 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Gradual `G e : e T Injection Static ` e : T Conservative Embedding 94
131 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Gradual Compositional Translation `G e : e T Injection ` e X Dynamic Static ` e : T Conservative Embedding 94
132 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Gradual Compositional Translation `G e : e T Injection ` e X Dynamic Static ` e : T Mixed 94
133 Refined Criteria for Gradual Typing ú Common Language Runtime Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Gradual Compositional Translation `G e : e T Injection ` e X Dynamic Static ` e : T Mixed 94
134 Common Language Runtime Gradual Type Structure Determines Appropriate Linking Gradual Compositional Translation `G e : e T Injection ` e X Dynamic Static ` e : T Mixed 94
135 <latexit sha1_base64="zj5guc+mw/vhi9revc50vq7cpe0=">aaacqxicbvfti9naen7glzvjw0/bl35zliiglkqejwptub/otzswd8wmlm1m2lu6lye78szb/bm/6h/y37jjbc72hbh45plndmz2skiki1h0pxfcun3n7t7+vfd+g4ephvcpnpxzu5ucem6kksczsycfhgqfspgujtcvstjpvp+a/pl3kk0w+iuuc5gpttriithdt837zxj6dpsbpio6owpvcx3zksbhvd+ihlfr9caiozagnz3md3ouzq2vfgjkklk7jamcz46vklieokwrcwxjk7aeqyeakbaz1y5q05eeyencln410pb9t8ixze1azv6pgf7y3vxd/i83rxbxohncfxwc5lenfpwkagjzgzqxjxcuaw8yl4wflfilvjko/s/crtywfnneslvkt0cyarjkrnlf7tjr7vkeh4jornxtu6+0udrtx23lf43x2ibyewlsjlwwtfhtp2r2lglpnj6nrf4354p3j3mtnl0dxtewpn03ob53h9snz8kl8ore5d05jp/jcukijxvyk/wiv4pxwwkwcb5dsynev/oubfna/wjzhnp9</latexit> <latexit sha1_base64="zj5guc+mw/vhi9revc50vq7cpe0=">aaacqxicbvfti9naen7glzvjw0/bl35zliiglkqejwptub/otzswd8wmlm1m2lu6lye78szb/bm/6h/y37jjbc72hbh45plndmz2skiki1h0pxfcun3n7t7+vfd+g4ephvcpnpxzu5ucem6kksczsycfhgqfspgujtcvstjpvp+a/pl3kk0w+iuuc5gpttriithdt837zxj6dpsbpio6owpvcx3zksbhvd+ihlfr9caiozagnz3md3ouzq2vfgjkklk7jamcz46vklieokwrcwxjk7aeqyeakbaz1y5q05eeyencln410pb9t8ixze1azv6pgf7y3vxd/i83rxbxohncfxwc5lenfpwkagjzgzqxjxcuaw8yl4wflfilvjko/s/crtywfnneslvkt0cyarjkrnlf7tjr7vkeh4jornxtu6+0udrtx23lf43x2ibyewlsjlwwtfhtp2r2lglpnj6nrf4354p3j3mtnl0dxtewpn03ob53h9snz8kl8ore5d05jp/jcukijxvyk/wiv4pxwwkwcb5dsynev/oubfna/wjzhnp9</latexit> <latexit sha1_base64="zj5guc+mw/vhi9revc50vq7cpe0=">aaacqxicbvfti9naen7glzvjw0/bl35zliiglkqejwptub/otzswd8wmlm1m2lu6lye78szb/bm/6h/y37jjbc72hbh45plndmz2skiki1h0pxfcun3n7t7+vfd+g4ephvcpnpxzu5ucem6kksczsycfhgqfspgujtcvstjpvp+a/pl3kk0w+iuuc5gpttriithdt837zxj6dpsbpio6owpvcx3zksbhvd+ihlfr9caiozagnz3md3ouzq2vfgjkklk7jamcz46vklieokwrcwxjk7aeqyeakbaz1y5q05eeyencln410pb9t8ixze1azv6pgf7y3vxd/i83rxbxohncfxwc5lenfpwkagjzgzqxjxcuaw8yl4wflfilvjko/s/crtywfnneslvkt0cyarjkrnlf7tjr7vkeh4jornxtu6+0udrtx23lf43x2ibyewlsjlwwtfhtp2r2lglpnj6nrf4354p3j3mtnl0dxtewpn03ob53h9snz8kl8ore5d05jp/jcukijxvyk/wiv4pxwwkwcb5dsynev/oubfna/wjzhnp9</latexit> <latexit sha1_base64="zj5guc+mw/vhi9revc50vq7cpe0=">aaacqxicbvfti9naen7glzvjw0/bl35zliiglkqejwptub/otzswd8wmlm1m2lu6lye78szb/bm/6h/y37jjbc72hbh45plndmz2skiki1h0pxfcun3n7t7+vfd+g4ephvcpnpxzu5ucem6kksczsycfhgqfspgujtcvstjpvp+a/pl3kk0w+iuuc5gpttriithdt837zxj6dpsbpio6owpvcx3zksbhvd+ihlfr9caiozagnz3md3ouzq2vfgjkklk7jamcz46vklieokwrcwxjk7aeqyeakbaz1y5q05eeyencln410pb9t8ixze1azv6pgf7y3vxd/i83rxbxohncfxwc5lenfpwkagjzgzqxjxcuaw8yl4wflfilvjko/s/crtywfnneslvkt0cyarjkrnlf7tjr7vkeh4jornxtu6+0udrtx23lf43x2ibyewlsjlwwtfhtp2r2lglpnj6nrf4354p3j3mtnl0dxtewpn03ob53h9snz8kl8ore5d05jp/jcukijxvyk/wiv4pxwwkwcb5dsynev/oubfna/wjzhnp9</latexit> <latexit sha1_base64="gzhfofgrriyy9e+5yvwmkfe79hg=">aaacphicbvhbbtnaen24byq5jewrl1ujec9edoueqgstwgtipbsrtjxiek3xk3svvvjemsha+ln4hw/ib1i7lkpsrlrpzjwzo7c0l8jifp3pbdu7d+7e27sfpnj46pgtbm//zjqy4ddmrpriimuwpnawroeslvicmeolnkfldzv//h0kk4we4tqhqwilleacm/shwbc3okdh7+iqxterffwejsjztx8nosbobrc3oe9ao531oi7jdc8vaosswtujoxynjhuouiqqteoloenltocjh5opsfpx9f7r5z6s0bkp/nnim+i/gy4pa9cq9urf8njuc3xwf9ykxpnbqrm6lxe0vy40lyvfq+tf0ewuwfgupwc8el5xyi9zwtj6dyubzswopr1gy5r2gddrsojgeuxmkupkjqg/enedv3vnvdrmpzukm8ppgm+0tbp109ayesnovmp3vc8pxcjdeu6jrkrpfw8f5zy4oxze0sd+8rp/mmwpt0eekqpykstkdtkhh8kpgrnovuqn+uv+by+cz8hxyhwtdtptzloyycg3v5ge0ne=</latexit> <latexit sha1_base64="gzhfofgrriyy9e+5yvwmkfe79hg=">aaacphicbvhbbtnaen24byq5jewrl1ujec9edoueqgstwgtipbsrtjxiek3xk3svvvjemsha+ln4hw/ib1i7lkpsrlrpzjwzo7c0l8jifp3pbdu7d+7e27sfpnj46pgtbm//zjqy4ddmrpriimuwpnawroeslvicmeolnkfldzv//h0kk4we4tqhqwilleacm/shwbc3okdh7+iqxterffwejsjztx8nosbobrc3oe9ao531oi7jdc8vaosswtujoxynjhuouiqqteoloenltocjh5opsfpx9f7r5z6s0bkp/nnim+i/gy4pa9cq9urf8njuc3xwf9ykxpnbqrm6lxe0vy40lyvfq+tf0ewuwfgupwc8el5xyi9zwtj6dyubzswopr1gy5r2gddrsojgeuxmkupkjqg/enedv3vnvdrmpzukm8ppgm+0tbp109ayesnovmp3vc8pxcjdeu6jrkrpfw8f5zy4oxze0sd+8rp/mmwpt0eekqpykstkdtkhh8kpgrnovuqn+uv+by+cz8hxyhwtdtptzloyycg3v5ge0ne=</latexit> <latexit sha1_base64="gzhfofgrriyy9e+5yvwmkfe79hg=">aaacphicbvhbbtnaen24byq5jewrl1ujec9edoueqgstwgtipbsrtjxiek3xk3svvvjemsha+ln4hw/ib1i7lkpsrlrpzjwzo7c0l8jifp3pbdu7d+7e27sfpnj46pgtbm//zjqy4ddmrpriimuwpnawroeslvicmeolnkfldzv//h0kk4we4tqhqwilleacm/shwbc3okdh7+iqxterffwejsjztx8nosbobrc3oe9ao531oi7jdc8vaosswtujoxynjhuouiqqteoloenltocjh5opsfpx9f7r5z6s0bkp/nnim+i/gy4pa9cq9urf8njuc3xwf9ykxpnbqrm6lxe0vy40lyvfq+tf0ewuwfgupwc8el5xyi9zwtj6dyubzswopr1gy5r2gddrsojgeuxmkupkjqg/enedv3vnvdrmpzukm8ppgm+0tbp109ayesnovmp3vc8pxcjdeu6jrkrpfw8f5zy4oxze0sd+8rp/mmwpt0eekqpykstkdtkhh8kpgrnovuqn+uv+by+cz8hxyhwtdtptzloyycg3v5ge0ne=</latexit> <latexit sha1_base64="gzhfofgrriyy9e+5yvwmkfe79hg=">aaacphicbvhbbtnaen24byq5jewrl1ujec9edoueqgstwgtipbsrtjxiek3xk3svvvjemsha+ln4hw/ib1i7lkpsrlrpzjwzo7c0l8jifp3pbdu7d+7e27sfpnj46pgtbm//zjqy4ddmrpriimuwpnawroeslvicmeolnkfldzv//h0kk4we4tqhqwilleacm/shwbc3okdh7+iqxterffwejsjztx8nosbobrc3oe9ao531oi7jdc8vaosswtujoxynjhuouiqqteoloenltocjh5opsfpx9f7r5z6s0bkp/nnim+i/gy4pa9cq9urf8njuc3xwf9ykxpnbqrm6lxe0vy40lyvfq+tf0ewuwfgupwc8el5xyi9zwtj6dyubzswopr1gy5r2gddrsojgeuxmkupkjqg/enedv3vnvdrmpzukm8ppgm+0tbp109ayesnovmp3vc8pxcjdeu6jrkrpfw8f5zy4oxze0sd+8rp/mmwpt0eekqpykstkdtkhh8kpgrnovuqn+uv+by+cz8hxyhwtdtptzloyycg3v5ge0ne=</latexit> <latexit sha1_base64="e/fgdird2qduj5yobra9dleugni=">aaacunicbvhbthsxehwwxic9eogjlxzr1t5fuxusfageog+0byarqmpgkdc7cvz82dqzpzg7n8dx9lx9kp5nvcsisohilo7poepxzgsffa7j+g8nwnvy9nnz9y3ui5evxm/2trbpnskthye30tjljdmqqsmqbuq4lcwwlum4yoafa/3io1gnjd7drqfjxwzatavngkhj712k8amd92dbrgjqyswbwjd6xx83qnfs68eduan6gcqt6jm2tizbhz/mhpcknhljnbslcyfjzywklsolaemgyhzozjakudmfbuybjir6nja5nrobjkbasa8zpfpolvqwnirhlvvvavj/2qje6cexf7ooets/ltqtjuvd6/hqxfjgkbcbmg5f+cvlv8wyjmgi3auydhttwbdusttan9vwzy0kjtynb5vvxonod6q6pp5rc62bisvorxrvvfvl5aujy+s9oblv4vd1n1lm/m+gkze360pwl/mynh8yjpegod3rhx61i1sno2sxvccj2seh5as5iupcyq35rx6tp9gnkitenl+1rp025w1zigj/abti3yg=</latexit> <latexit sha1_base64="e/fgdird2qduj5yobra9dleugni=">aaacunicbvhbthsxehwwxic9eogjlxzr1t5fuxusfageog+0byarqmpgkdc7cvz82dqzpzg7n8dx9lx9kp5nvcsisohilo7poepxzgsffa7j+g8nwnvy9nnz9y3ui5evxm/2trbpnskthye30tjljdmqqsmqbuq4lcwwlum4yoafa/3io1gnjd7drqfjxwzatavngkhj712k8amd92dbrgjqyswbwjd6xx83qnfs68eduan6gcqt6jm2tizbhz/mhpcknhljnbslcyfjzywklsolaemgyhzozjakudmfbuybjir6nja5nrobjkbasa8zpfpolvqwnirhlvvvavj/2qje6cexf7ooets/ltqtjuvd6/hqxfjgkbcbmg5f+cvlv8wyjmgi3auydhttwbdusttan9vwzy0kjtynb5vvxonod6q6pp5rc62bisvorxrvvfvl5aujy+s9oblv4vd1n1lm/m+gkze360pwl/mynh8yjpegod3rhx61i1sno2sxvccj2seh5as5iupcyq35rx6tp9gnkitenl+1rp025w1zigj/abti3yg=</latexit> <latexit sha1_base64="e/fgdird2qduj5yobra9dleugni=">aaacunicbvhbthsxehwwxic9eogjlxzr1t5fuxusfageog+0byarqmpgkdc7cvz82dqzpzg7n8dx9lx9kp5nvcsisohilo7poepxzgsffa7j+g8nwnvy9nnz9y3ui5evxm/2trbpnskthye30tjljdmqqsmqbuq4lcwwlum4yoafa/3io1gnjd7drqfjxwzatavngkhj712k8amd92dbrgjqyswbwjd6xx83qnfs68eduan6gcqt6jm2tizbhz/mhpcknhljnbslcyfjzywklsolaemgyhzozjakudmfbuybjir6nja5nrobjkbasa8zpfpolvqwnirhlvvvavj/2qje6cexf7ooets/ltqtjuvd6/hqxfjgkbcbmg5f+cvlv8wyjmgi3auydhttwbdusttan9vwzy0kjtynb5vvxonod6q6pp5rc62bisvorxrvvfvl5aujy+s9oblv4vd1n1lm/m+gkze360pwl/mynh8yjpegod3rhx61i1sno2sxvccj2seh5as5iupcyq35rx6tp9gnkitenl+1rp025w1zigj/abti3yg=</latexit> <latexit sha1_base64="e/fgdird2qduj5yobra9dleugni=">aaacunicbvhbthsxehwwxic9eogjlxzr1t5fuxusfageog+0byarqmpgkdc7cvz82dqzpzg7n8dx9lx9kp5nvcsisohilo7poepxzgsffa7j+g8nwnvy9nnz9y3ui5evxm/2trbpnskthye30tjljdmqqsmqbuq4lcwwlum4yoafa/3io1gnjd7drqfjxwzatavngkhj712k8amd92dbrgjqyswbwjd6xx83qnfs68eduan6gcqt6jm2tizbhz/mhpcknhljnbslcyfjzywklsolaemgyhzozjakudmfbuybjir6nja5nrobjkbasa8zpfpolvqwnirhlvvvavj/2qje6cexf7ooets/ltqtjuvd6/hqxfjgkbcbmg5f+cvlv8wyjmgi3auydhttwbdusttan9vwzy0kjtynb5vvxonod6q6pp5rc62bisvorxrvvfvl5aujy+s9oblv4vd1n1lm/m+gkze360pwl/mynh8yjpegod3rhx61i1sno2sxvccj2seh5as5iupcyq35rx6tp9gnkitenl+1rp025w1zigj/abti3yg=</latexit> Simple Gradual Types Static Types (Type) T ::= B T! T Gradual Types (GType) U ::=? B U! U Type GType 95
136 <latexit sha1_base64="vo7zcg0ps6w3mi0wjgcpwqwholm=">aaacm3icbvhbshxbeo2dxntjru0erwhcannjminc8uskvitbbwnzlews0tntuzbbl6g7jmbpzf/knfmv/e16xggzqwunp06d6rrlprqok+rvl3r0+mnttfwn+nnzfy83t7zfntttwq4jbqsxlzlziiwgeqqucflaycqxcjhpt5r4xxewthj9frcltbsbatevngggvmwfnnj3hzqbxm31k0hsgr0p0g70swdnv9s9nxwgvwo0csmcg6djirpplaouoy6zykhj+jznybygzgrcxlct1/rnyao6nta80ell/p/hmxjuofkgvayv3wqsir+kjsucfph4ocskqfpbqtnkujs0mz8wwgjhuqiacstcr5rfm8s4hi3fs2uckkadygmuboa403ddjqqkwmfd2mcipxdrd+umpp5rc6pbisvkso87beos/hrsjlwttf4dumrmlglmf4ayekudh3olq8e5d873b2kysl8c9i+ou8otkx2yr96sllwnr+qjosmjwokmv8hv8ifaju6iz9hprttqdtmvyzjfo38guten</latexit> <latexit sha1_base64="vo7zcg0ps6w3mi0wjgcpwqwholm=">aaacm3icbvhbshxbeo2dxntjru0erwhcannjminc8uskvitbbwnzlews0tntuzbbl6g7jmbpzf/knfmv/e16xggzqwunp06d6rrlprqok+rvl3r0+mnttfwn+nnzfy83t7zfntttwq4jbqsxlzlziiwgeqqucflaycqxcjhpt5r4xxewthj9frcltbsbatevngggvmwfnnj3hzqbxm31k0hsgr0p0g70swdnv9s9nxwgvwo0csmcg6djirpplaouoy6zykhj+jznybygzgrcxlct1/rnyao6nta80ell/p/hmxjuofkgvayv3wqsir+kjsucfph4ocskqfpbqtnkujs0mz8wwgjhuqiacstcr5rfm8s4hi3fs2uckkadygmuboa403ddjqqkwmfd2mcipxdrd+umpp5rc6pbisvkso87beos/hrsjlwttf4dumrmlglmf4ayekudh3olq8e5d873b2kysl8c9i+ou8otkx2yr96sllwnr+qjosmjwokmv8hv8ifaju6iz9hprttqdtmvyzjfo38guten</latexit> <latexit sha1_base64="vo7zcg0ps6w3mi0wjgcpwqwholm=">aaacm3icbvhbshxbeo2dxntjru0erwhcannjminc8uskvitbbwnzlews0tntuzbbl6g7jmbpzf/knfmv/e16xggzqwunp06d6rrlprqok+rvl3r0+mnttfwn+nnzfy83t7zfntttwq4jbqsxlzlziiwgeqqucflaycqxcjhpt5r4xxewthj9frcltbsbatevngggvmwfnnj3hzqbxm31k0hsgr0p0g70swdnv9s9nxwgvwo0csmcg6djirpplaouoy6zykhj+jznybygzgrcxlct1/rnyao6nta80ell/p/hmxjuofkgvayv3wqsir+kjsucfph4ocskqfpbqtnkujs0mz8wwgjhuqiacstcr5rfm8s4hi3fs2uckkadygmuboa403ddjqqkwmfd2mcipxdrd+umpp5rc6pbisvkso87beos/hrsjlwttf4dumrmlglmf4ayekudh3olq8e5d873b2kysl8c9i+ou8otkx2yr96sllwnr+qjosmjwokmv8hv8ifaju6iz9hprttqdtmvyzjfo38guten</latexit> <latexit sha1_base64="vo7zcg0ps6w3mi0wjgcpwqwholm=">aaacm3icbvhbshxbeo2dxntjru0erwhcannjminc8uskvitbbwnzlews0tntuzbbl6g7jmbpzf/knfmv/e16xggzqwunp06d6rrlprqok+rvl3r0+mnttfwn+nnzfy83t7zfntttwq4jbqsxlzlziiwgeqqucflaycqxcjhpt5r4xxewthj9frcltbsbatevngggvmwfnnj3hzqbxm31k0hsgr0p0g70swdnv9s9nxwgvwo0csmcg6djirpplaouoy6zykhj+jznybygzgrcxlct1/rnyao6nta80ell/p/hmxjuofkgvayv3wqsir+kjsucfph4ocskqfpbqtnkujs0mz8wwgjhuqiacstcr5rfm8s4hi3fs2uckkadygmuboa403ddjqqkwmfd2mcipxdrd+umpp5rc6pbisvkso87beos/hrsjlwttf4dumrmlglmf4ayekudh3olq8e5d873b2kysl8c9i+ou8otkx2yr96sllwnr+qjosmjwokmv8hv8ifaju6iz9hprttqdtmvyzjfo38guten</latexit> <latexit sha1_base64="xtiahkmmxnzaftuzgfso48xqray=">aaaconicbvflb9naen6yvzgppndksiigcypsvalurcqlcgofbivfubret9jv9uhujinr1r+ek/yo/puuxuslksot9m183+y8ikokh0lypygephz0+mnw0/jz8xcvt4c7r06cqs2hjbtp7fnbheihiuobes4qc0wvek6l5zewp/0j1gmjf+cqgqlicy3mgjmmodlwo6o5u3b14qdhgmaz4sgzj53r+ydtwyj0djtbgfi8nlxwojfl5twktsqcemzrcalnnncoksaxbagtadvt4ka+67yh70okphnjw9niu+i/gz4p51aqcerf8nxtcm3wf9ykxvnnqre6qhe0vy00ryvfq9s10fjy4chxatbureiv8nnmgcewrhitjapfdbcsjdipeocalrlrqvh6fk/xocivrpr7tvttl7w51f3fdevxjxfa1tn46cayesfovcz01c4pxcjfbu6jsondudln49whjx/hatjoj3dh+wf94bbig/kwfcap+ut2yse5ihnhpca/yr/yn3oxfyuoo++30mjq57wmaxbln5tw1fm=</latexit> <latexit sha1_base64="xtiahkmmxnzaftuzgfso48xqray=">aaaconicbvflb9naen6yvzgppndksiigcypsvalurcqlcgofbivfubret9jv9uhujinr1r+ek/yo/puuxuslksot9m183+y8ikokh0lypygephz0+mnw0/jz8xcvt4c7r06cqs2hjbtp7fnbheihiuobes4qc0wvek6l5zewp/0j1gmjf+cqgqlicy3mgjmmodlwo6o5u3b14qdhgmaz4sgzj53r+ydtwyj0djtbgfi8nlxwojfl5twktsqcemzrcalnnncoksaxbagtadvt4ka+67yh70okphnjw9niu+i/gz4p51aqcerf8nxtcm3wf9ykxvnnqre6qhe0vy00ryvfq9s10fjy4chxatbureiv8nnmgcewrhitjapfdbcsjdipeocalrlrqvh6fk/xocivrpr7tvttl7w51f3fdevxjxfa1tn46cayesfovcz01c4pxcjfbu6jsondudln49whjx/hatjoj3dh+wf94bbig/kwfcap+ut2yse5ihnhpca/yr/yn3oxfyuoo++30mjq57wmaxbln5tw1fm=</latexit> <latexit sha1_base64="xtiahkmmxnzaftuzgfso48xqray=">aaaconicbvflb9naen6yvzgppndksiigcypsvalurcqlcgofbivfubret9jv9uhujinr1r+ek/yo/puuxuslksot9m183+y8ikokh0lypygephz0+mnw0/jz8xcvt4c7r06cqs2hjbtp7fnbheihiuobes4qc0wvek6l5zewp/0j1gmjf+cqgqlicy3mgjmmodlwo6o5u3b14qdhgmaz4sgzj53r+ydtwyj0djtbgfi8nlxwojfl5twktsqcemzrcalnnncoksaxbagtadvt4ka+67yh70okphnjw9niu+i/gz4p51aqcerf8nxtcm3wf9ykxvnnqre6qhe0vy00ryvfq9s10fjy4chxatbureiv8nnmgcewrhitjapfdbcsjdipeocalrlrqvh6fk/xocivrpr7tvttl7w51f3fdevxjxfa1tn46cayesfovcz01c4pxcjfbu6jsondudln49whjx/hatjoj3dh+wf94bbig/kwfcap+ut2yse5ihnhpca/yr/yn3oxfyuoo++30mjq57wmaxbln5tw1fm=</latexit> <latexit sha1_base64="xtiahkmmxnzaftuzgfso48xqray=">aaaconicbvflb9naen6yvzgppndksiigcypsvalurcqlcgofbivfubret9jv9uhujinr1r+ek/yo/puuxuslksot9m183+y8ikokh0lypygephz0+mnw0/jz8xcvt4c7r06cqs2hjbtp7fnbheihiuobes4qc0wvek6l5zewp/0j1gmjf+cqgqlicy3mgjmmodlwo6o5u3b14qdhgmaz4sgzj53r+ydtwyj0djtbgfi8nlxwojfl5twktsqcemzrcalnnncoksaxbagtadvt4ka+67yh70okphnjw9niu+i/gz4p51aqcerf8nxtcm3wf9ykxvnnqre6qhe0vy00ryvfq9s10fjy4chxatbureiv8nnmgcewrhitjapfdbcsjdipeocalrlrqvh6fk/xocivrpr7tvttl7w51f3fdevxjxfa1tn46cayesfovcz01c4pxcjfbu6jsondudln49whjx/hatjoj3dh+wf94bbig/kwfcap+ut2yse5ihnhpca/yr/yn3oxfyuoo++30mjq57wmaxbln5tw1fm=</latexit> Gradual Type Precision??!??! Bool Int!? U v U (Int!?)! Bool Int! Int!? (Int! Int)! Bool Int! Int! Int!? Static Type Information ordering relation... 96
137 <latexit sha1_base64="gomqq0h+5qmci7arfg9vr8fchma=">aaacnnicbvfba9rafj6ntxpvrt76mrgipi1jeepbswuid2if0y5swjkznn0oo5c4c9k6jpkdvurp8t84sqn1tx4y+m75vjpnvtzsoeysp6pozt179x/spiwfpx7y9nnu3vmzzxrlienggjstmqmpngqoumk0tsbukeg8xj10/pklwcem/orrggrfllosbgcyqku2t2nuhklzfd+e746tsdibvq3sayzjykfzvzhpk8mbbrq5zm7n0qtgwjolgkto47xxudo+ykuybaizalf4vuuwvg6rii6mdu8j7ap/znimnfurmigvwwu3zxxb/3gzbhfvci903sbofl1o0uikhnyrojwwwfgua2dcitar5rfmmo5huffggqek6sdygguyim41xhgjgqly+whrc4tviogp266mxmlzpfukm8qpgm+0nbp107ex8kbqe23oqpttiqx/etglqry7v7p9nnvgbh+sjpp0y9vx0ffwub3ykrwib0hkdsgr+ubosuy4+uz+kl/kd0sj99gn6po1nbonos/ihkxtv6cs0ji=</latexit> <latexit sha1_base64="gomqq0h+5qmci7arfg9vr8fchma=">aaacnnicbvfba9rafj6ntxpvrt76mrgipi1jeepbswuid2if0y5swjkznn0oo5c4c9k6jpkdvurp8t84sqn1tx4y+m75vjpnvtzsoeysp6pozt179x/spiwfpx7y9nnu3vmzzxrlienggjstmqmpngqoumk0tsbukeg8xj10/pklwcem/orrggrfllosbgcyqku2t2nuhklzfd+e746tsdibvq3sayzjykfzvzhpk8mbbrq5zm7n0qtgwjolgkto47xxudo+ykuybaizalf4vuuwvg6rii6mdu8j7ap/znimnfurmigvwwu3zxxb/3gzbhfvci903sbofl1o0uikhnyrojwwwfgua2dcitar5rfmmo5huffggqek6sdygguyim41xhgjgqly+whrc4tviogp266mxmlzpfukm8qpgm+0nbp107ex8kbqe23oqpttiqx/etglqry7v7p9nnvgbh+sjpp0y9vx0ffwub3ykrwib0hkdsgr+ubosuy4+uz+kl/kd0sj99gn6po1nbonos/ihkxtv6cs0ji=</latexit> <latexit sha1_base64="gomqq0h+5qmci7arfg9vr8fchma=">aaacnnicbvfba9rafj6ntxpvrt76mrgipi1jeepbswuid2if0y5swjkznn0oo5c4c9k6jpkdvurp8t84sqn1tx4y+m75vjpnvtzsoeysp6pozt179x/spiwfpx7y9nnu3vmzzxrlienggjstmqmpngqoumk0tsbukeg8xj10/pklwcem/orrggrfllosbgcyqku2t2nuhklzfd+e746tsdibvq3sayzjykfzvzhpk8mbbrq5zm7n0qtgwjolgkto47xxudo+ykuybaizalf4vuuwvg6rii6mdu8j7ap/znimnfurmigvwwu3zxxb/3gzbhfvci903sbofl1o0uikhnyrojwwwfgua2dcitar5rfmmo5huffggqek6sdygguyim41xhgjgqly+whrc4tviogp266mxmlzpfukm8qpgm+0nbp107ex8kbqe23oqpttiqx/etglqry7v7p9nnvgbh+sjpp0y9vx0ffwub3ykrwib0hkdsgr+ubosuy4+uz+kl/kd0sj99gn6po1nbonos/ihkxtv6cs0ji=</latexit> <latexit sha1_base64="gomqq0h+5qmci7arfg9vr8fchma=">aaacnnicbvfba9rafj6ntxpvrt76mrgipi1jeepbswuid2if0y5swjkznn0oo5c4c9k6jpkdvurp8t84sqn1tx4y+m75vjpnvtzsoeysp6pozt179x/spiwfpx7y9nnu3vmzzxrlienggjstmqmpngqoumk0tsbukeg8xj10/pklwcem/orrggrfllosbgcyqku2t2nuhklzfd+e746tsdibvq3sayzjykfzvzhpk8mbbrq5zm7n0qtgwjolgkto47xxudo+ykuybaizalf4vuuwvg6rii6mdu8j7ap/znimnfurmigvwwu3zxxb/3gzbhfvci903sbofl1o0uikhnyrojwwwfgua2dcitar5rfmmo5huffggqek6sdygguyim41xhgjgqly+whrc4tviogp266mxmlzpfukm8qpgm+0nbp107ex8kbqe23oqpttiqx/etglqry7v7p9nnvgbh+sjpp0y9vx0ffwub3ykrwib0hkdsgr+ubosuy4+uz+kl/kd0sj99gn6po1nbonos/ihkxtv6cs0ji=</latexit> Consistent Lifting(*) U 1 U 2 Gradual Type Consistency (*) Reformulation of original definition 97
138 Consistent Lifting(*) 97 U 1 U 2 <latexit sha1_base64="gomqq0h+5qmci7arfg9vr8fchma=">aaacnnicbvfba9rafj6ntxpvrt76mrgipi1jeepbswuid2if0y5swjkznn0oo5c4c9k6jpkdvurp8t84sqn1tx4y+m75vjpnvtzsoeysp6pozt179x/spiwfpx7y9nnu3vmzzxrlienggjstmqmpngqoumk0tsbukeg8xj10/pklwcem/orrggrfllosbgcyqku2t2nuhklzfd+e746tsdibvq3sayzjykfzvzhpk8mbbrq5zm7n0qtgwjolgkto47xxudo+ykuybaizalf4vuuwvg6rii6mdu8j7ap/znimnfurmigvwwu3zxxb/3gzbhfvci903sbofl1o0uikhnyrojwwwfgua2dcitar5rfmmo5huffggqek6sdygguyim41xhgjgqly+whrc4tviogp266mxmlzpfukm8qpgm+0nbp107ex8kbqe23oqpttiqx/etglqry7v7p9nnvgbh+sjpp0y9vx0ffwub3ykrwib0hkdsgr+ubosuy4+uz+kl/kd0sj99gn6po1nbonos/ihkxtv6cs0ji=</latexit> <latexit sha1_base64="gomqq0h+5qmci7arfg9vr8fchma=">aaacnnicbvfba9rafj6ntxpvrt76mrgipi1jeepbswuid2if0y5swjkznn0oo5c4c9k6jpkdvurp8t84sqn1tx4y+m75vjpnvtzsoeysp6pozt179x/spiwfpx7y9nnu3vmzzxrlienggjstmqmpngqoumk0tsbukeg8xj10/pklwcem/orrggrfllosbgcyqku2t2nuhklzfd+e746tsdibvq3sayzjykfzvzhpk8mbbrq5zm7n0qtgwjolgkto47xxudo+ykuybaizalf4vuuwvg6rii6mdu8j7ap/znimnfurmigvwwu3zxxb/3gzbhfvci903sbofl1o0uikhnyrojwwwfgua2dcitar5rfmmo5huffggqek6sdygguyim41xhgjgqly+whrc4tviogp266mxmlzpfukm8qpgm+0nbp107ex8kbqe23oqpttiqx/etglqry7v7p9nnvgbh+sjpp0y9vx0ffwub3ykrwib0hkdsgr+ubosuy4+uz+kl/kd0sj99gn6po1nbonos/ihkxtv6cs0ji=</latexit> <latexit sha1_base64="gomqq0h+5qmci7arfg9vr8fchma=">aaacnnicbvfba9rafj6ntxpvrt76mrgipi1jeepbswuid2if0y5swjkznn0oo5c4c9k6jpkdvurp8t84sqn1tx4y+m75vjpnvtzsoeysp6pozt179x/spiwfpx7y9nnu3vmzzxrlienggjstmqmpngqoumk0tsbukeg8xj10/pklwcem/orrggrfllosbgcyqku2t2nuhklzfd+e746tsdibvq3sayzjykfzvzhpk8mbbrq5zm7n0qtgwjolgkto47xxudo+ykuybaizalf4vuuwvg6rii6mdu8j7ap/znimnfurmigvwwu3zxxb/3gzbhfvci903sbofl1o0uikhnyrojwwwfgua2dcitar5rfmmo5huffggqek6sdygguyim41xhgjgqly+whrc4tviogp266mxmlzpfukm8qpgm+0nbp107ex8kbqe23oqpttiqx/etglqry7v7p9nnvgbh+sjpp0y9vx0ffwub3ykrwib0hkdsgr+ubosuy4+uz+kl/kd0sj99gn6po1nbonos/ihkxtv6cs0ji=</latexit> <latexit sha1_base64="gomqq0h+5qmci7arfg9vr8fchma=">aaacnnicbvfba9rafj6ntxpvrt76mrgipi1jeepbswuid2if0y5swjkznn0oo5c4c9k6jpkdvurp8t84sqn1tx4y+m75vjpnvtzsoeysp6pozt179x/spiwfpx7y9nnu3vmzzxrlienggjstmqmpngqoumk0tsbukeg8xj10/pklwcem/orrggrfllosbgcyqku2t2nuhklzfd+e746tsdibvq3sayzjykfzvzhpk8mbbrq5zm7n0qtgwjolgkto47xxudo+ykuybaizalf4vuuwvg6rii6mdu8j7ap/znimnfurmigvwwu3zxxb/3gzbhfvci903sbofl1o0uikhnyrojwwwfgua2dcitar5rfmmo5huffggqek6sdygguyim41xhgjgqly+whrc4tviogp266mxmlzpfukm8qpgm+0nbp107ex8kbqe23oqpttiqx/etglqry7v7p9nnvgbh+sjpp0y9vx0ffwub3ykrwib0hkdsgr+ubosuy4+uz+kl/kd0sj99gn6po1nbonos/ihkxtv6cs0ji=</latexit> T 1 = T 2 <latexit sha1_base64="h6jf2x3rppsnrp+1dr0vkd0yqju=">aaacm3icbvfnbxmxehuwwspcswthhgq1quiu7vavygw1ai+aobqpaatmo8jrnarw/lgyzymr2x/bff4x/wbvdqwsljespb/3xjpjyusphcbjn1706phg5potp/gz59s7l3b3xl44u1koi26ksvc5cycfhheklhbvwmaql3czl84a/fibwcemhukyhilicy1mgjmm1pvwmtipddg9ike7/wsqteefgrqdfdlf+xsv57pc8eqbri6zc+m0kxhimuxbjdrxvjkogv+woywd1eybm/i25zq+duxbz8ago5g27l8zninnlioptsxwxq1rdfk/bvzh7p3ec11wcjrffzpvkqkhzfy0eby4ymuajfsreqx8hlngmfxsvflggwi6gfzg6qaimw233kjgkhx2xpsm4tsi+uo6qakx2tzqtukq85pge29zwxvp1bh5b2hvdeiqmvokuf8rncwkullxur6ch+diyjamg/tryf/ktfvcfnln9sk7kpijcki+knmyipxo8pp8ir+jn9fz9dn6cmenel3ok7is0egvde3qqg==</latexit> <latexit sha1_base64="h6jf2x3rppsnrp+1dr0vkd0yqju=">aaacm3icbvfnbxmxehuwwspcswthhgq1quiu7vavygw1ai+aobqpaatmo8jrnarw/lgyzymr2x/bff4x/wbvdqwsljespb/3xjpjyusphcbjn1706phg5potp/gz59s7l3b3xl44u1koi26ksvc5cycfhheklhbvwmaql3czl84a/fibwcemhukyhilicy1mgjmm1pvwmtipddg9ike7/wsqteefgrqdfdlf+xsv57pc8eqbri6zc+m0kxhimuxbjdrxvjkogv+woywd1eybm/i25zq+duxbz8ago5g27l8zninnlioptsxwxq1rdfk/bvzh7p3ec11wcjrffzpvkqkhzfy0eby4ymuajfsreqx8hlngmfxsvflggwi6gfzg6qaimw233kjgkhx2xpsm4tsi+uo6qakx2tzqtukq85pge29zwxvp1bh5b2hvdeiqmvokuf8rncwkullxur6ch+diyjamg/tryf/ktfvcfnln9sk7kpijcki+knmyipxo8pp8ir+jn9fz9dn6cmenel3ok7is0egvde3qqg==</latexit> <latexit sha1_base64="h6jf2x3rppsnrp+1dr0vkd0yqju=">aaacm3icbvfnbxmxehuwwspcswthhgq1quiu7vavygw1ai+aobqpaatmo8jrnarw/lgyzymr2x/bff4x/wbvdqwsljespb/3xjpjyusphcbjn1706phg5potp/gz59s7l3b3xl44u1koi26ksvc5cycfhheklhbvwmaql3czl84a/fibwcemhukyhilicy1mgjmm1pvwmtipddg9ike7/wsqteefgrqdfdlf+xsv57pc8eqbri6zc+m0kxhimuxbjdrxvjkogv+woywd1eybm/i25zq+duxbz8ago5g27l8zninnlioptsxwxq1rdfk/bvzh7p3ec11wcjrffzpvkqkhzfy0eby4ymuajfsreqx8hlngmfxsvflggwi6gfzg6qaimw233kjgkhx2xpsm4tsi+uo6qakx2tzqtukq85pge29zwxvp1bh5b2hvdeiqmvokuf8rncwkullxur6ch+diyjamg/tryf/ktfvcfnln9sk7kpijcki+knmyipxo8pp8ir+jn9fz9dn6cmenel3ok7is0egvde3qqg==</latexit> <latexit sha1_base64="h6jf2x3rppsnrp+1dr0vkd0yqju=">aaacm3icbvfnbxmxehuwwspcswthhgq1quiu7vavygw1ai+aobqpaatmo8jrnarw/lgyzymr2x/bff4x/wbvdqwsljespb/3xjpjyusphcbjn1706phg5potp/gz59s7l3b3xl44u1koi26ksvc5cycfhheklhbvwmaql3czl84a/fibwcemhukyhilicy1mgjmm1pvwmtipddg9ike7/wsqteefgrqdfdlf+xsv57pc8eqbri6zc+m0kxhimuxbjdrxvjkogv+woywd1eybm/i25zq+duxbz8ago5g27l8zninnlioptsxwxq1rdfk/bvzh7p3ec11wcjrffzpvkqkhzfy0eby4ymuajfsreqx8hlngmfxsvflggwi6gfzg6qaimw233kjgkhx2xpsm4tsi+uo6qakx2tzqtukq85pge29zwxvp1bh5b2hvdeiqmvokuf8rncwkullxur6ch+diyjamg/tryf/ktfvcfnln9sk7kpijcki+knmyipxo8pp8ir+jn9fz9dn6cmenel3ok7is0egvde3qqg==</latexit> v<latexit sha1_base64="heefdjg9uk2f47bil7+neabgksa=">aaacnhicbvhbattaef2rbziqzcxny6gimecejbqkzvuc04ewukihdgkwcavv2fm8f2v3lmrs9rl9bb6rf9ovikjtdgdhzjwzo7esenxihp/pbc9evlpb33gdbr7z2t7z7b4dwv0abkomhtaxgbuguiihchrwwrigmhnwkc3pav7ifozlwv3arqetswektzmj6epj1n7ymroacho124v7cwprc5c0oedao7/qdlyaa1zkumgetxacxavohdximyaqteslbwvzoooxh4pksbpx9fxfbz6sr1nt/fmyndf/mxyv1i5k5pws4rvd5erg/7hxidpjieoqkbeueyw0luweoqoxeoxcaeox8iayw32vebumhjl0awqxyliqvhnb0ijtaggq4i5p6rw5s08qlylci6i7qeqaaq70nwoqliu/khzs1s7ktwotxzog8srfvt2n4dp303os51xoz5wshuc5gb31k7iffp/qox20h9sg78g+osqj+uhoywdytoaeeu1+kd/kixgffaq+bt8epugnzdkjsxam/gjkanmq</latexit> l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t v<latexit sha1_base64="heefdjg9uk2f47bil7+neabgksa=">aaacnhicbvhbattaef2rbziqzcxny6gimecejbqkzvuc04ewukihdgkwcavv2fm8f2v3lmrs9rl9bb6rf9ovikjtdgdhzjwzo7esenxihp/pbc9evlpb33gdbr7z2t7z7b4dwv0abkomhtaxgbuguiihchrwwrigmhnwkc3pav7ifozlwv3arqetswektzmj6epj1n7ymroacho124v7cwprc5c0oedao7/qdlyaa1zkumgetxacxavohdximyaqteslbwvzoooxh4pksbpx9fxfbz6sr1nt/fmyndf/mxyv1i5k5pws4rvd5erg/7hxidpjieoqkbeueyw0luweoqoxeoxcaeox8iayw32vebumhjl0awqxyliqvhnb0ijtaggq4i5p6rw5s08qlylci6i7qeqaaq70nwoqliu/khzs1s7ktwotxzog8srfvt2n4dp303os51xoz5wshuc5gb31k7iffp/qox20h9sg78g+osqj+uhoywdytoaeeu1+kd/kixgffaq+bt8epugnzdkjsxam/gjkanmq</latexit> l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t if and only if For some T1 and T2 Gradual Type Consistency Static Type Equality (*) Reformulation of original definition
139 Static Checking static type equality gradual type consistency Int = Int Bool = Bool Int! Bool 6= Bool! Int extend Int Int Bool Bool Int! Bool 6 Bool! Int? Bool?! Bool Bool!? Consistency conservatively extends equality 98
140 Static Checking static type equality gradual type consistency Int = Int Bool = Bool Int! Bool 6= Bool! Int extend Int Int Bool Bool Int! Bool 6 Bool! Int? Bool?! Bool Bool!? Consistency conservatively extends equality 98
141 Static Checking static type equality gradual type consistency Int = Int Bool = Bool Int! Bool 6= Bool! Int extend Int Int Bool Bool Int! Bool 6 Bool! Int? Bool?! Bool Bool!? Consistency conservatively extends equality 98
142 Static Checking static type equality gradual type consistency Int = Int Bool = Bool Int! Bool 6= Bool! Int extend Int Int Bool Bool Int! Bool 6 Bool! Int? Bool?! Bool Bool!? Consistency conservatively extends equality 98
143 Consistent Lifting(*) 99 v<latexit sha1_base64="heefdjg9uk2f47bil7+neabgksa=">aaacnhicbvhbattaef2rbziqzcxny6gimecejbqkzvuc04ewukihdgkwcavv2fm8f2v3lmrs9rl9bb6rf9ovikjtdgdhzjwzo7esenxihp/pbc9evlpb33gdbr7z2t7z7b4dwv0abkomhtaxgbuguiihchrwwrigmhnwkc3pav7ifozlwv3arqetswektzmj6epj1n7ymroacho124v7cwprc5c0oedao7/qdlyaa1zkumgetxacxavohdximyaqteslbwvzoooxh4pksbpx9fxfbz6sr1nt/fmyndf/mxyv1i5k5pws4rvd5erg/7hxidpjieoqkbeueyw0luweoqoxeoxcaeox8iayw32vebumhjl0awqxyliqvhnb0ijtaggq4i5p6rw5s08qlylci6i7qeqaaq70nwoqliu/khzs1s7ktwotxzog8srfvt2n4dp303os51xoz5wshuc5gb31k7iffp/qox20h9sg78g+osqj+uhoywdytoaeeu1+kd/kixgffaq+bt8epugnzdkjsxam/gjkanmq</latexit> l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t v<latexit sha1_base64="heefdjg9uk2f47bil7+neabgksa=">aaacnhicbvhbattaef2rbziqzcxny6gimecejbqkzvuc04ewukihdgkwcavv2fm8f2v3lmrs9rl9bb6rf9ovikjtdgdhzjwzo7esenxihp/pbc9evlpb33gdbr7z2t7z7b4dwv0abkomhtaxgbuguiihchrwwrigmhnwkc3pav7ifozlwv3arqetswektzmj6epj1n7ymroacho124v7cwprc5c0oedao7/qdlyaa1zkumgetxacxavohdximyaqteslbwvzoooxh4pksbpx9fxfbz6sr1nt/fmyndf/mxyv1i5k5pws4rvd5erg/7hxidpjieoqkbeueyw0luweoqoxeoxcaeox8iayw32vebumhjl0awqxyliqvhnb0ijtaggq4i5p6rw5s08qlylci6i7qeqaaq70nwoqliu/khzs1s7ktwotxzog8srfvt2n4dp303os51xoz5wshuc5gb31k7iffp/qox20h9sg78g+osqj+uhoywdytoaeeu1+kd/kixgffaq+bt8epugnzdkjsxam/gjkanmq</latexit> l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t l< ta xe ti s ah _1 ab es 46 "= eh Fe jd 9G Ku F2 74 ib 7L n+ ae gb SK =A >" AA CA Hn ci Vb bh ta At FE r2 Zb qi cz NX 6Y IG Em ec Bj KQ Vz Cu 40 We ku hi gd WK ac Vv F2 8m 2F 3V Ml sr R9 9l bb r6 9f VO ki tj Gd hd Jz zw 7O se NE ix PH p/ CB e9 lv bp 33 dg rb Z7 t2 Z7 b7 d4 VW a0 kb mo Th Xa bg gu Iu hi hc wr RW gi hm wn ck P3 va i7 of lz vw A3 QR TE WS Ke zt jm E6 jp N1 Y7 rm AO Hc 1O 42 7v Wc RP 5c 0C Eo ad 7O q/ ld ay 1a KZ MU Eg Xt ca Ax OV DH IX Ym qa ET Ls WB zv oo xo 4h Kp Bs XP F9 Fx zb S6 1R tn F/ YM dn /F xm Vy i1 k5 p5 SW r4 dv e5 gr 7/ xh di jp ei qo BK UE ye 0w UL EW qo Xo OE cx EA xo I8 ya 3w v2 be mu jh 0L wa Xq ly Qi HV Bn i0 tj GA qg I4 p5 R6 5W 0S q8 yl cl 6I 7I eq aq qa 07 Wn qo il /u HK Sz s1 K7 wt to Zx go S8 fr TV n2 D4 3P 30 SO 15 ox 5z sw uh 5c BG 13 7k fi Pf Q/ xo 02 9h gs 87 +g SO JQ U+ Oh Wy yd ot Ea UE +1 dk k/ XI fg Af +q tb e8 Up ng dz jk xs Ma g/ kj NA QM /< al et ix >t if and only if For some T1 and T2 Consistent Subtyping Static Subtyping T 1 <: T 2 <latexit sha1_base64="jgd75rltfcayoy8bremahmymyvg=">aaacnhicbvfbaxnbfj6sl9b11uqjuaad4fpylyjshjbqq0wecklayiywo3usdpnlmnpwgsb9gb7q7+q/cxa70cb1wmb3zvedobe8lmjhklz1onv3hzzc2n4up37y9nnznd0xy2cqy2hejtt2pgcopnawqoeszksltouszvllp4y/+whwcaohucphqthci7ngdenompyl9ombhc7249lopxkkrdg7io1an3r2otvt+awwvfkgkuvm3crnspx6zlfwcxwcvq5kxpdsazmanvpgpr7tuazvqqsgc2pd00jb6o0mz5rzk5uhpwj44ta5jvg/bllh/mpuc11wcjpff5pxkqkhzqjoisxwlksaglci9er5bbomy1htvfbggwi6cnzg6qaimw2x3kigkhx2wpsm4sci+so6qamx2lzqtuk68ovgg23jbpx0biy8ebrehbpq5pri4x8ftomibs6vbh7nlhjvd9jkkh5/1z867g63tv6r1+qtscl7ckroyckzeu4m+u3+kl/rxvq5+hp9u5zgvs7njvmzapwpsijq7q==</latexit> <latexit sha1_base64="jgd75rltfcayoy8bremahmymyvg=">aaacnhicbvfbaxnbfj6sl9b11uqjuaad4fpylyjshjbqq0wecklayiywo3usdpnlmnpwgsb9gb7q7+q/cxa70cb1wmb3zvedobe8lmjhklz1onv3hzzc2n4up37y9nnznd0xy2cqy2hejtt2pgcopnawqoeszksltouszvllp4y/+whwcaohucphqthci7ngdenompyl9ombhc7249lopxkkrdg7io1an3r2otvt+awwvfkgkuvm3crnspx6zlfwcxwcvq5kxpdsazmanvpgpr7tuazvqqsgc2pd00jb6o0mz5rzk5uhpwj44ta5jvg/bllh/mpuc11wcjpff5pxkqkhzqjoisxwlksaglci9er5bbomy1htvfbggwi6cnzg6qaimw2x3kigkhx2wpsm4sci+so6qamx2lzqtuk68ovgg23jbpx0biy8ebrehbpq5pri4x8ftomibs6vbh7nlhjvd9jkkh5/1z867g63tv6r1+qtscl7ckroyckzeu4m+u3+kl/rxvq5+hp9u5zgvs7njvmzapwpsijq7q==</latexit> <latexit sha1_base64="jgd75rltfcayoy8bremahmymyvg=">aaacnhicbvfbaxnbfj6sl9b11uqjuaad4fpylyjshjbqq0wecklayiywo3usdpnlmnpwgsb9gb7q7+q/cxa70cb1wmb3zvedobe8lmjhklz1onv3hzzc2n4up37y9nnznd0xy2cqy2hejtt2pgcopnawqoeszksltouszvllp4y/+whwcaohucphqthci7ngdenompyl9ombhc7249lopxkkrdg7io1an3r2otvt+awwvfkgkuvm3crnspx6zlfwcxwcvq5kxpdsazmanvpgpr7tuazvqqsgc2pd00jb6o0mz5rzk5uhpwj44ta5jvg/bllh/mpuc11wcjpff5pxkqkhzqjoisxwlksaglci9er5bbomy1htvfbggwi6cnzg6qaimw2x3kigkhx2wpsm4sci+so6qamx2lzqtuk68ovgg23jbpx0biy8ebrehbpq5pri4x8ftomibs6vbh7nlhjvd9jkkh5/1z867g63tv6r1+qtscl7ckroyckzeu4m+u3+kl/rxvq5+hp9u5zgvs7njvmzapwpsijq7q==</latexit> <latexit sha1_base64="jgd75rltfcayoy8bremahmymyvg=">aaacnhicbvfbaxnbfj6sl9b11uqjuaad4fpylyjshjbqq0wecklayiywo3usdpnlmnpwgsb9gb7q7+q/cxa70cb1wmb3zvedobe8lmjhklz1onv3hzzc2n4up37y9nnznd0xy2cqy2hejtt2pgcopnawqoeszksltouszvllp4y/+whwcaohucphqthci7ngdenompyl9ombhc7249lopxkkrdg7io1an3r2otvt+awwvfkgkuvm3crnspx6zlfwcxwcvq5kxpdsazmanvpgpr7tuazvqqsgc2pd00jb6o0mz5rzk5uhpwj44ta5jvg/bllh/mpuc11wcjpff5pxkqkhzqjoisxwlksaglci9er5bbomy1htvfbggwi6cnzg6qaimw2x3kigkhx2wpsm4sci+so6qamx2lzqtuk68ovgg23jbpx0biy8ebrehbpq5pri4x8ftomibs6vbh7nlhjvd9jkkh5/1z867g63tv6r1+qtscl7ckroyckzeu4m+u3+kl/rxvq5+hp9u5zgvs7njvmzapwpsijq7q==</latexit> U 1. U 2 <latexit sha1_base64="ehcszrvyuzb3pfiswsczdaruqvu=">aaacphicbvflb9naen6yvzgvhb65rihanck7qgs3vuvcjq5f4lzshkz1epkusg9rd9w0mv4pxmtv6r9h7voqsrlppw/m+2bnlzdsoiyim0hw4ogjx092nobpnr94+wo4en3qtgu5jnxiy89z5kakdqkklhbewmaql3cwlz+3/nklwcem/ohremaklbsyc87qh7lhkmlimkpwzglfk2wvzibjabj1ru+duadj0ttjnhruawf4puajl8y5aryvokuzrcelngfaosgzx7iftd3utigb1v3vdx3niwwdg+ufrtpf/82omxjurxkvvawv3dbxbv/htsucf5rvqpcvgua3heavpghouwhacasc5dodxq3wvvj+wszj6ncvbprxojj2go1r+ghcvmokg+uvrz0enhwkciwi9uht1trlbva6q7ippnz4p22drz+ojjf3gs5rffftnfis6l+eu6jo2npf28e5d073jne0ib/tjw+p+sptkdfklflayvkrhjiv5iqkhjmv+u2uyz/gffa1+b4kt9jg0ofskg0lfv4flqnuqg==</latexit> <latexit sha1_base64="ehcszrvyuzb3pfiswsczdaruqvu=">aaacphicbvflb9naen6yvzgvhb65rihanck7qgs3vuvcjq5f4lzshkz1epkusg9rd9w0mv4pxmtv6r9h7voqsrlppw/m+2bnlzdsoiyim0hw4ogjx092nobpnr94+wo4en3qtgu5jnxiy89z5kakdqkklhbewmaql3cwlz+3/nklwcem/ohremaklbsyc87qh7lhkmlimkpwzglfk2wvzibjabj1ru+duadj0ttjnhruawf4puajl8y5aryvokuzrcelngfaosgzx7iftd3utigb1v3vdx3niwwdg+ufrtpf/82omxjurxkvvawv3dbxbv/htsucf5rvqpcvgua3heavpghouwhacasc5dodxq3wvvj+wszj6ncvbprxojj2go1r+ghcvmokg+uvrz0enhwkciwi9uht1trlbva6q7ippnz4p22drz+ojjf3gs5rffftnfis6l+eu6jo2npf28e5d073jne0ib/tjw+p+sptkdfklflayvkrhjiv5iqkhjmv+u2uyz/gffa1+b4kt9jg0ofskg0lfv4flqnuqg==</latexit> <latexit sha1_base64="ehcszrvyuzb3pfiswsczdaruqvu=">aaacphicbvflb9naen6yvzgvhb65rihanck7qgs3vuvcjq5f4lzshkz1epkusg9rd9w0mv4pxmtv6r9h7voqsrlppw/m+2bnlzdsoiyim0hw4ogjx092nobpnr94+wo4en3qtgu5jnxiy89z5kakdqkklhbewmaql3cwlz+3/nklwcem/ohremaklbsyc87qh7lhkmlimkpwzglfk2wvzibjabj1ru+duadj0ttjnhruawf4puajl8y5aryvokuzrcelngfaosgzx7iftd3utigb1v3vdx3niwwdg+ufrtpf/82omxjurxkvvawv3dbxbv/htsucf5rvqpcvgua3heavpghouwhacasc5dodxq3wvvj+wszj6ncvbprxojj2go1r+ghcvmokg+uvrz0enhwkciwi9uht1trlbva6q7ippnz4p22drz+ojjf3gs5rffftnfis6l+eu6jo2npf28e5d073jne0ib/tjw+p+sptkdfklflayvkrhjiv5iqkhjmv+u2uyz/gffa1+b4kt9jg0ofskg0lfv4flqnuqg==</latexit> <latexit sha1_base64="ehcszrvyuzb3pfiswsczdaruqvu=">aaacphicbvflb9naen6yvzgvhb65rihanck7qgs3vuvcjq5f4lzshkz1epkusg9rd9w0mv4pxmtv6r9h7voqsrlppw/m+2bnlzdsoiyim0hw4ogjx092nobpnr94+wo4en3qtgu5jnxiy89z5kakdqkklhbewmaql3cwlz+3/nklwcem/ohremaklbsyc87qh7lhkmlimkpwzglfk2wvzibjabj1ru+duadj0ttjnhruawf4puajl8y5aryvokuzrcelngfaosgzx7iftd3utigb1v3vdx3niwwdg+ufrtpf/82omxjurxkvvawv3dbxbv/htsucf5rvqpcvgua3heavpghouwhacasc5dodxq3wvvj+wszj6ncvbprxojj2go1r+ghcvmokg+uvrz0enhwkciwi9uht1trlbva6q7ippnz4p22drz+ojjf3gs5rffftnfis6l+eu6jo2npf28e5d073jne0ib/tjw+p+sptkdfklflayvkrhjiv5iqkhjmv+u2uyz/gffa1+b4kt9jg0ofskg0lfv4flqnuqg==</latexit> (*) Reformulation of original definition
144 <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> Consistent Lifting Int. Int Int 6. Bool Int. > >6. Int Int.??. Int 100
145 <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> Consistent Lifting Conservatively Extends <: Int. Int Int 6. Bool Int. > >6. Int Int.??. Int 100
146 <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="5/tsn/abqruokyp0ngmdce5zico=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9mjrppjcm4jrbnxpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbte6ksn/pvhmxjuo/kgvawv3s7xbp/htstcfjx5ocskqfobqotkujs0wqqthawochma41aexim/zjzxdoukt8o4uewhwdyo3qbxpmhnjqqkwmfj2mciv4jox3vtu6+0weu24ryyrp1w2zg7px0zi28frvehrpo5pvj6n4ftoqibc6w7x7klzt6n0msufnk/pdzqdrdpxpjx5c1jyqdysd6ruzihnkzjnflffkdvos/r12hyi416xc4lsmxr979yjtsz</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="w+zzsrcg9wfiirgznyursqpffma=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3m9/4m0drkekxyy4hyz279+4/2hmypnr85onuco/zibe1ezarvll3vnapshqyoeqfz5udrgsfp8xqy5s//qhos2u+4bqcmezlixdsciyh+faf+2yqmmorkfdes03zkbvqphxl46wzehvkprir3o7ne4pasitqdqaf4t5p86zcweaopvdqpkz2uhgx4kuyrmi4bj8l3qqnfr0jjv1yf1/sp4v+wxg49n6ti8juhm/9dq4n/i83rxhxyrakqwoei66ffrwiagm7dlpkbwlvogiuniy9unhohrcyl5zuyhjq3etcxij9ackzccgsjowysimmmisfibgomlbtriy9mj3ijjmu/4bbols/tae4ixree7tq51rygx7fnjzlk8zz5dvhuq1o3o3zbjx/et86poopt0neklfkdcnjpjkkn8gxmrbbgvkb/cf/k7fj1+r7mr2mjoo+5jnzsks8as/e18u=</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="rymgtvcskxw5op8/khepejbhpmk=">aaacpnicbvflt9taen64lzb9hhlksmqexcmyq0rtdqsx9ojaigqpjtl1ehjw2ye1oy6nfv+wxstp6r/p2liicr1ppw/m+2bnlzdsoeysp73o2fmxl19tbcc7r9+8fdfffx/ltgu5jlirxl7nzieugkyoumj1aygpxmi4x542/pghwcemvsrvcvpfflrmbwcyqrp+xvzni80kooeeohmamp71b8kway0+bwkhbqsz89luz2ef4zucjvwy5yzpuulum4ucs6jjrhjqmr5kc5geqjkcn/vt9zu9cjgczo0nl/tsrv/n8ew5t1j5ucqgn26ta4l/4yyvzr9mvdblhad5q6f5jska2qycfsicr7kkgherqq+u3zdloiafxwtlhcimg2btlg6aonnwy40kisjnr7xpeh4ioj+qm5p6qc2tbiuuk8pih7wns/htithyudb6deiqmvokhb8lnbjf3zwr3tzou3d1czgmw/ti0+d4pdvcftknh8ghsclncky+knmyipysyc/ym9xhh9fznirgd9ko1+xsktwlvv8fcvdvwq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="0aiwyvh9cufn0xw1xe83llvz+uq=">aaacpxicbvfnb9naen24lrrtafqoxfanejwig1uqt1blug5irwrssneurdetdjx9shbhtnhiv8iv/hl/hrvrqsrlpjxezhuz85wxujhmkj+9agt759nz3rfxy71xr/f7b4djzyrlycsnnpymzw6k0dbcgrjusgtm5rku8+xnhr/+dtyjo69wvcjusyuwc8ezhtcsf5h90ugzcc45owjjzfqdzji0rp+ctamd0tnl7kdns8lwsofglplzkzqpceqzrcel1hfwosgzx7iftalutigb+rb5mr4lkylojq0vtnjg/83wtdm3unlqkoa3bpnrgv/jjhxop0290gwfopldoxklkrrabiiwwgjhuqqacstcr5tfmss4hn3fa2uckkadyg2uboa403dhjqqkwmentc8q7hhrn9zntb3u5k63fdevydop2sbz+oncgpkoal06dnxmkcxc/wicekudh3olm8d5csyfh2kytl8dd87ou8ptkrfkihwgktkhz+scxjir4ese/cs/yo/offq1uorgd9ko1+w8iwswzf4cco3vhq==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="ham9yjtkbpcnmr9gfmktov/7fru=">aaacqnicbvflbxmxehawv1ketehagytfhmqbrbsiqdxalqvccijturxfxu8ktelhyp6lrgz/dvf4qf039w5xkkkzydi3833jerwvkh6z7hkq3ll77/6dnyfpo8dpnu4o956defs7arnhlxvnbfegpiejslrwvjngulbwwqw+tvzpd3bewvmn1xxmnf8auzccywznhy8y2ooyy5ep8n5ltdlng+l8omrgwwf0nsh7mck9hc/3bogvvtqadarfvz/mwywzwb1koabjwe2h4mlflzcn0hanfha6crr6okzkuraupoo0i/6bebj2fq2lqnqcz/021wb/x01rxhyybwmqgsgi60klwlg0tf0hlaudgwodardoxl6pooeoc4xlszfkendcrmhgkp0aktnwiayoijkwgyywhj+iga6atqzzgxthuoqbyrjqg23rbp10zk26exree7tq51rygx5ftsuyac+vbx/nnjh5n86zcf7l/ejwqd/cdnljxpe3jcf75jb8isdkqgrpyg/yh/xn3izfk+/j9fqadpqc52tdkvikbnpxlg==</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> <latexit sha1_base64="dedvzfqzznzehl+so8ujgscjox8=">aaacphicbvflb9naen64pip5jexizuue4htzcaluqdolltguqdpkcyjw60m6yj6s3tfptpin9aq/ix/d2rvukjlsst/m983oky+lcjgkf3rr3r37dx7up4ofp3n67hl/chdmtgu5tlirxl7kzieugiyoumjfaygpxmj5vjpu+pmfyj0w+htuspgpttriitjdejr3b9myzhkcc0lr7erjpo8pk1hsgr0l0g4mswen80hpz4xhlqknxdlnpmls4swzi4jlqoosclayvmjlmaaomqi3823vnx0digvdgbuertpg/83wtdm3uxlqkoaxbpdrgv/jphuups680gwfoplnouulkrraliiwwgjhuqmacstcr5rfmss4hnxfw2uckkadyguuboa407dmrgvf4bnx7toek0t047qpqvfarhvbcvszvn2rbzydn46mkbec1qtdv82cuiz9z8apudtnudld49wfz+9gatjkv7wfhh51h9snl8kr8pak5am5jj/ikzkqttbkmvwiv6m30efoazs5kua9lucf2blo+19vhnsz</latexit> Consistent Lifting Int. Int Int 6. Bool Int. > unknown is not the top type >6. Int Int.??. Int 100
147 <latexit sha1_base64="zxcoe37s/9r3lmm4zyqua5p2vgy=">aaadcnicbzhnbhmxeme9wz7k0tiujlwsihasitqnkebiqfu5alcinw2loiq8xm9qxr+r9swhcvcnebpuicsvwyf3wbtzqsrhjft/z/zs8cykhrqw4vh3eo7cun3n7u696p7e/ood3uhdc2uqkverm9kulym1xarnryba8sui5fslkl+k8/dn/oill60w+gywbz8ootmif4ycd017cyj0zkuugxcrxuqdvyri65cypgl+i8/8/qzd32hysqmmzimattswpyydfdxbb73o2fu8mvb68sbudw+lpbn91nnp9dbwjdosulwdk9tacrixmhg0bmekrynswv5qnqczpvzsu8xtxludqvft78lwbkq/fbwt998bjiprlyr1pkjwztdjjfn/sxef+zuje7qowpdwlsivjaadm3bjtjscgvx6qvkp/f8xu6ilzecheq2lsvxr7yg1urociql5ghnft505clq7avwralijusmp59osdjtxnftnvmgbw8zlj8big6a91f5xtz1szny1jymrtenknoezlc6hgyqejj9f9y9pushtosfocxqoevqahaop6bsneen/gp1gl9gpv4xfwx/hzxuabt2dr2jnwl9/awl/8o8=</latexit> <latexit sha1_base64="zxcoe37s/9r3lmm4zyqua5p2vgy=">aaadcnicbzhnbhmxeme9wz7k0tiujlwsihasitqnkebiqfu5alcinw2loiq8xm9qxr+r9swhcvcnebpuicsvwyf3wbtzqsrhjft/z/zs8cykhrqw4vh3eo7cun3n7u696p7e/ood3uhdc2uqkverm9kulym1xarnryba8sui5fslkl+k8/dn/oill60w+gywbz8ootmif4ycd017cyj0zkuugxcrxuqdvyri65cypgl+i8/8/qzd32hysqmmzimattswpyydfdxbb73o2fu8mvb68sbudw+lpbn91nnp9dbwjdosulwdk9tacrixmhg0bmekrynswv5qnqczpvzsu8xtxludqvft78lwbkq/fbwt998bjiprlyr1pkjwztdjjfn/sxef+zuje7qowpdwlsivjaadm3bjtjscgvx6qvkp/f8xu6ilzecheq2lsvxr7yg1urociql5ghnft505clq7avwralijusmp59osdjtxnftnvmgbw8zlj8big6a91f5xtz1szny1jymrtenknoezlc6hgyqejj9f9y9pushtosfocxqoevqahaop6bsneen/gp1gl9gpv4xfwx/hzxuabt2dr2jnwl9/awl/8o8=</latexit> <latexit sha1_base64="zxcoe37s/9r3lmm4zyqua5p2vgy=">aaadcnicbzhnbhmxeme9wz7k0tiujlwsihasitqnkebiqfu5alcinw2loiq8xm9qxr+r9swhcvcnebpuicsvwyf3wbtzqsrhjft/z/zs8cykhrqw4vh3eo7cun3n7u696p7e/ood3uhdc2uqkverm9kulym1xarnryba8sui5fslkl+k8/dn/oill60w+gywbz8ootmif4ycd017cyj0zkuugxcrxuqdvyri65cypgl+i8/8/qzd32hysqmmzimattswpyydfdxbb73o2fu8mvb68sbudw+lpbn91nnp9dbwjdosulwdk9tacrixmhg0bmekrynswv5qnqczpvzsu8xtxludqvft78lwbkq/fbwt998bjiprlyr1pkjwztdjjfn/sxef+zuje7qowpdwlsivjaadm3bjtjscgvx6qvkp/f8xu6ilzecheq2lsvxr7yg1urociql5ghnft505clq7avwralijusmp59osdjtxnftnvmgbw8zlj8big6a91f5xtz1szny1jymrtenknoezlc6hgyqejj9f9y9pushtosfocxqoevqahaop6bsneen/gp1gl9gpv4xfwx/hzxuabt2dr2jnwl9/awl/8o8=</latexit> <latexit sha1_base64="zxcoe37s/9r3lmm4zyqua5p2vgy=">aaadcnicbzhnbhmxeme9wz7k0tiujlwsihasitqnkebiqfu5alcinw2loiq8xm9qxr+r9swhcvcnebpuicsvwyf3wbtzqsrhjft/z/zs8cykhrqw4vh3eo7cun3n7u696p7e/ood3uhdc2uqkverm9kulym1xarnryba8sui5fslkl+k8/dn/oill60w+gywbz8ootmif4ycd017cyj0zkuugxcrxuqdvyri65cypgl+i8/8/qzd32hysqmmzimattswpyydfdxbb73o2fu8mvb68sbudw+lpbn91nnp9dbwjdosulwdk9tacrixmhg0bmekrynswv5qnqczpvzsu8xtxludqvft78lwbkq/fbwt998bjiprlyr1pkjwztdjjfn/sxef+zuje7qowpdwlsivjaadm3bjtjscgvx6qvkp/f8xu6ilzecheq2lsvxr7yg1urociql5ghnft505clq7avwralijusmp59osdjtxnftnvmgbw8zlj8big6a91f5xtz1szny1jymrtenknoezlc6hgyqejj9f9y9pushtosfocxqoevqahaop6bsneen/gp1gl9gpv4xfwx/hzxuabt2dr2jnwl9/awl/8o8=</latexit> <latexit sha1_base64="m0+btmm45d6j6r4fyyy1wd/jig0=">aaadehicbzhnbhmxeme9y1e7fdrtj1wsihasitqnkec9tcoh4fyk0lako8jrnu2t+gnle1ui7b4et8mnceunopmiedcrhssmzovvmz89npm0eny6op4dhhfu3rv/ygc3evjo8zo93v7budwlytbiwmhzmvilgisyoe4exbygqewfxktz90384hqm5vp9cyscjplofm85o867pr2acjwdacwgijamh6iufn++xm6a4cm88vuldiews0w+kycj2qchlthsweekjortf191+dietxv9ebc3hrdf0ok+6uxsuh9ujnoslkace9tacrixbljr4zgtueektfbqnqczghupqaq7qdo+1fi592q418yvx0jr/fdgraw1c5l6ulj3ztdjjfn/sxhp8netiquidl6ty0r5kbdtugk6zrgb5stcc8om93/f7ioaypwftbswxokkygnrpxqfretbddo+nyqryhfdeqdfnxpvcd3kvholb1sbcz30zv6xzwhjpvotxqpot7x/vvon4lpq1sckz9pxjzvd2rbnw0esd5lpb/onp93gdtbt9ay9ral6i07qr3sgroihp8fucbacht/c7+gp8ocsdypuzifas/dxx4na8/8=</latexit> <latexit sha1_base64="m0+btmm45d6j6r4fyyy1wd/jig0=">aaadehicbzhnbhmxeme9y1e7fdrtj1wsihasitqnkec9tcoh4fyk0lako8jrnu2t+gnle1ui7b4et8mnceunopmiedcrhssmzovvmz89npm0eny6op4dhhfu3rv/ygc3evjo8zo93v7budwlytbiwmhzmvilgisyoe4exbygqewfxktz90384hqm5vp9cyscjplofm85o867pr2acjwdacwgijamh6iufn++xm6a4cm88vuldiews0w+kycj2qchlthsweekjortf191+dietxv9ebc3hrdf0ok+6uxsuh9ujnoslkace9tacrixbljr4zgtueektfbqnqczghupqaq7qdo+1fi592q418yvx0jr/fdgraw1c5l6ulj3ztdjjfn/sxhp8netiquidl6ty0r5kbdtugk6zrgb5stcc8om93/f7ioaypwftbswxokkygnrpxqfretbddo+nyqryhfdeqdfnxpvcd3kvholb1sbcz30zv6xzwhjpvotxqpot7x/vvon4lpq1sckz9pxjzvd2rbnw0esd5lpb/onp93gdtbt9ay9ral6i07qr3sgroihp8fucbacht/c7+gp8ocsdypuzifas/dxx4na8/8=</latexit> <latexit sha1_base64="m0+btmm45d6j6r4fyyy1wd/jig0=">aaadehicbzhnbhmxeme9y1e7fdrtj1wsihasitqnkec9tcoh4fyk0lako8jrnu2t+gnle1ui7b4et8mnceunopmiedcrhssmzovvmz89npm0eny6op4dhhfu3rv/ygc3evjo8zo93v7budwlytbiwmhzmvilgisyoe4exbygqewfxktz90384hqm5vp9cyscjplofm85o867pr2acjwdacwgijamh6iufn++xm6a4cm88vuldiews0w+kycj2qchlthsweekjortf191+dietxv9ebc3hrdf0ok+6uxsuh9ujnoslkace9tacrixbljr4zgtueektfbqnqczghupqaq7qdo+1fi592q418yvx0jr/fdgraw1c5l6ulj3ztdjjfn/sxhp8netiquidl6ty0r5kbdtugk6zrgb5stcc8om93/f7ioaypwftbswxokkygnrpxqfretbddo+nyqryhfdeqdfnxpvcd3kvholb1sbcz30zv6xzwhjpvotxqpot7x/vvon4lpq1sckz9pxjzvd2rbnw0esd5lpb/onp93gdtbt9ay9ral6i07qr3sgroihp8fucbacht/c7+gp8ocsdypuzifas/dxx4na8/8=</latexit> <latexit sha1_base64="m0+btmm45d6j6r4fyyy1wd/jig0=">aaadehicbzhnbhmxeme9y1e7fdrtj1wsihasitqnkec9tcoh4fyk0lako8jrnu2t+gnle1ui7b4et8mnceunopmiedcrhssmzovvmz89npm0eny6op4dhhfu3rv/ygc3evjo8zo93v7budwlytbiwmhzmvilgisyoe4exbygqewfxktz90384hqm5vp9cyscjplofm85o867pr2acjwdacwgijamh6iufn++xm6a4cm88vuldiews0w+kycj2qchlthsweekjortf191+dietxv9ebc3hrdf0ok+6uxsuh9ujnoslkace9tacrixbljr4zgtueektfbqnqczghupqaq7qdo+1fi592q418yvx0jr/fdgraw1c5l6ulj3ztdjjfn/sxhp8netiquidl6ty0r5kbdtugk6zrgb5stcc8om93/f7ioaypwftbswxokkygnrpxqfretbddo+nyqryhfdeqdfnxpvcd3kvholb1sbcz30zv6xzwhjpvotxqpot7x/vvon4lpq1sckz9pxjzvd2rbnw0esd5lpb/onp93gdtbt9ay9ral6i07qr3sgroihp8fucbacht/c7+gp8ocsdypuzifas/dxx4na8/8=</latexit> Lift Typing RuLes Static Type System Gradual Type System ` t 1 : T 1 ` t 2 : T 2 T 1 = Int T 2 = Int ` t 1 : U 1 ` t 2 : U 2 U 1 Int U 2 Int ` t 1 + t 2 : Int ` t 1 + t 2 : Int 101
148 Dynamic Semantics Static Checking Gradual Language Type-Directed Translation Runtime Checking Instrumentation Language Cast Calculus 102
149 Common Language Runtime Gradual 103
150 Common Language Runtime Gradual Static Types (Type) Gradual Types (GType) T ::= B T! T U ::=? B U! U 103
151 Also Works as a Surface Language! Gradual Static Types (Type) Gradual Types (GType) T ::= B T! T U ::=? B U! U 103
152 Also Works as a Surface Language! Gradual Static Types (Type) T ::= B T! T Gradual Types (GType) U ::=? B U! U Much of the Literature is Written This Way 103
153 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Gradual 104
154 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Static and Dynamic Gradual Guarantee! Gradual 104
155 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Static and Dynamic Gradual Guarantee! Gradual 104
156 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Static and Dynamic Gradual Guarantee! Gradual Varying The Type Precision of a Program Monotonically Changes only static and dynamic type errors 104
157 Robust Theoretical Framework Dynamic Gradual Static 105
158 Robust Theoretical Framework Dynamic Gradual Static Unityped [Siek and Taha 06] Simple 105
159 Robust Theoretical Framework Dynamic Gradual Static Unityped Unityped [Siek and Taha 06] [Siek and Taha 08] Simple Subtyping 105
160 Robust Theoretical Framework Dynamic Gradual Static Unityped Unityped [Siek and Taha 06] [Siek and Taha 08] Simple Subtyping Unityped [Siek and Vachharajani 08] Hindley/Milner 105
161 Robust Theoretical Framework Dynamic Gradual Static Unityped Unityped [Siek and Taha 06] [Siek and Taha 08] Simple Subtyping Unityped Simple [Siek and Vachharajani 08] [Lehmann and Tanter 17] Hindley/Milner Refinement 105
162 Robust Theoretical Framework Dynamic Gradual Static Unityped Unityped [Siek and Taha 06] [Siek and Taha 08] Simple Subtyping Unityped Simple Simple [Siek and Vachharajani 08] [Lehmann and Tanter 17] [Bañados et al. 14] Hindley/Milner Refinement Type&Effect 105
163 Robust Theoretical Framework Dynamic Gradual Static Unityped Unityped [Siek and Taha 06] [Siek and Taha 08] Simple Subtyping Unityped Simple Simple [Siek and Vachharajani 08] [Lehmann and Tanter 17] [Bañados et al. 14] Hindley/Milner Refinement Type&Effect Simple [Toro et al. to appear] 105 Security
164 Robust Theoretical Framework Dynamic Gradual Static Unityped [Siek and Taha 06] Simple Unityped Unityped Simple Simple Simple [Siek and Taha 08] [Siek and Vachharajani 08] [Lehmann and Tanter 17] [Bañados et al. 14] [Toro et al. to appear] And More! 105 Subtyping Hindley/Milner Refinement Type&Effect Security
165 Challenge: Dynamics Static Checking Gradual Language Type-Directed Translation Runtime Checking Instrumentation Language Cast Calculus 106
166 Challenge: Dynamics Static Checking Gradual Language Given the name gradual typing, one might think that the most interesting aspect is the type system. It turns out that the dynamic semantics of gradually-typed languages is more complex than the static semantics, with many points in the Type-Directed design space [Wadler and Findler 2009; Siek et al. 2009] and many challenges concerning Translation [Siek and Garcia 2012] Runtime Checking Instrumentation Language Cast Calculus 106
167 Challenge: Dynamics Static Checking Gradual Language Type-Directed Translation Runtime Checking Instrumentation Language Cast Calculus 106
168 static type system & type safety proof interpretation of gradual types Abstracting Gradual Typing Ronald Garcia Alison M. Clark Software Practices Lab Department of Computer Science University of British Columbia, Canada Éric Tanter PLEIAD Laboratory Computer Science Department (DCC) University of Chile, Chile POPL 2016 gradual language TYPE SYSTEM DYNAMIC SEMANTICS 107
169 Breadth of AGT Applications of AGT so far records with subtyping gradual rows (à la row polymorphism) security typing effect typing refinement types set-theoretic types parametric polymorphism POPL 16 TOPLAS 18 ICFP 14 (statics) POPL 17 ICFP 17 (statics) ongoing work
170 Outline Motivating Example (In Two Acts) Gradual Typing For All! Typing in Small Pieces Meat Strands and Related Works 109
171 Gradual Typing for Functional Languages Jeremy G. Siek University of Colorado Walid Taha Rice University Scheme
172 Interlanguage Migration: From Scripts to Programs Sam Tobin-Hochstadt Northeastern University Boston, MA Matthias Felleisen Northeastern University Boston, MA DLS
173 Interlanguage Migration: From Scripts to Programs Sam Tobin-Hochstadt Northeastern University Boston, MA Matthias Felleisen Northeastern University Boston, MA DLS 2006 Dynamic 111
174 Interlanguage Migration: From Scripts to Programs Sam Tobin-Hochstadt Northeastern University Boston, MA Matthias Felleisen Northeastern University Boston, MA DLS 2006 Dynamic 111
175 Interlanguage Migration: From Scripts to Programs Sam Tobin-Hochstadt Northeastern University Boston, MA Matthias Felleisen Northeastern University Boston, MA DLS 2006 Dynamic Mixed 111
176 Interlanguage Migration: From Scripts to Programs Sam Tobin-Hochstadt Northeastern University Boston, MA Matthias Felleisen Northeastern University Boston, MA DLS 2006 Dynamic Mixed 111
177 Retrospective Migratory Typing: Ten Years Later Sam Tobin-Hochstadt, Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Ben Greenman, Andrew M. Kent, Vincent St-Amour, T. Stephen Strickland, Asumu Takikawa 1 1 PLT *@racket-lang.org Abstract In this day and age, many developers work on large, untyped code repositories. Even if they are the creators of the code, they notice that they have to figure out the equivalent of method signatures every time they work on old code. This step is time consuming and error prone. Ten years ago, the two lead authors outlined a linguistic solution to this problem. Specifically they proposed the creation of typed twins for untyped programming languages so that developers could migrate scripts from the untyped world to a typed one in an incremental manner. Their programmatic paper also spelled out three guiding design principles concerning the acceptance of grown idioms, the soundness of mixed-typed programs, and the units of migration. This paper revisits this idea of a migratory type system as implemented for Racket. It explains how the design principles have been used to produce the Typed Racket twin and presents an assessment of the project s status, highlighting successes and failures ACM Subject Classification D.3 Language Design, F.3.3 Type Structure 112
178 Ben Greenman Matthias Felleisen 113
179 Soft Typing PLDI 1991 A Practical Soft Type System for Scheme ANDREW K. WRIGHT NEC Research Institute and ROBERT CARTWRIGHT Rice University TOPLAS
180 Soft Typing PLDI 1991 A Practical Soft Type System for Scheme ANDREW K. WRIGHT NEC Research Institute and ROBERT CARTWRIGHT Rice University TOPLAS 1997 Idea: Use H/M Type Inference to Migrate Dynamic Programs 114
181 Set-Based Analysis PLDI96 TOPLAS99 Not Types! 115
182 Set-Based Analysis PLDI96 TOPLAS99 Not Types! 116
183 Set-Based Analysis William Bowman PLDI96 TOPLAS99 Not Types! 116
184 Migration By Inference The Ins and Outs of Gradual Type Inference Aseem Rastogi Stony Brook University Avik Chaudhuri Basil Hosmer Advanced Technology Labs, Adobe Systems POPL
185 Migration By Inference The Ins and Outs of Gradual Type Inference Aseem Rastogi Stony Brook University Avik Chaudhuri Basil Hosmer Advanced Technology Labs, Adobe Systems POPL 2012 Migrating Gradual Types JOHN PETER CAMPORA III, SHENG CHEN, MARTIN ERWIG, ERIC WALKINGSHAW, 117 University of Louisiana at Lafayette University of Louisiana at Lafayette Oregon State University Oregon State University
186 John Campora Sheng Chen Eric Walkingshaw 118
187 Dynamic Typing Dynamic typing: syntax and proof theory* Fritz Henglein** University of Copenhagen, Universitetsparken 1, 2100 Copenhagen 0, Denmark Received July 1992; revised March
188 Dynamic Typing Dynamic typing: syntax and proof theory* Fritz Henglein** University of Copenhagen, Universitetsparken 1, 2100 Copenhagen 0, Denmark Received July 1992; revised March
189 Influence Herman, et al. [TFP 2007] Siek, Garcia, Taha [ESOP 2008] Siek and Wadler [POPL 2010] Garcia [ICFP 2013] Siek et al. [PLDI 2015] 120
190 Fresh Influence Max New Amal Ahmed 121
191 Outline Motivating Example (In Two Acts) Gradual Typing For All! Typing in Small Pieces Meat Strands and Related Works 122
192 123
193 Gratitude 124
194 125
195 It Takes a Village Andy Lumsdaine Dan Friedman Frank Pfenning Amr Sabry 126
196 It Takes a Village Andy Lumsdaine Dan Friedman Frank Pfenning Amr Sabry 126
197 It Takes a Village Andy Lumsdaine Dan Friedman Frank Pfenning Amr Sabry 126
198 It Takes a Village Andy Lumsdaine Dan Friedman Frank Pfenning Amr Sabry 126
199 It Takes a Village Andy Lumsdaine Dan Friedman Frank Pfenning Amr Sabry 126
200 It Takes a Village Me Andy Lumsdaine Dan Friedman Frank Pfenning Amr Sabry 126
201 127
202 127
203 127
204 127
205 Students 128
206 Students 128
207 Common Language Runtime Gradual Type Structure Determines Appropriate Linking Gradual `G e : e T Dynamic Static ` e X ` e : T Mixed 129
208 Dear Today Ron, You went one slide too far. Go back one slide. Yesterday Ron 130
209 Bonus Tracks 131
210 Common Language Runtime Gradual `G e : e T 132
211 Common Language Runtime Gradual `G e : e T Injection Static ` e : T 132
212 Common Language Runtime Gradual Compositional Translation `G e : e T Injection ` e X Dynamic Static ` e : T 132
213 Common Language Runtime Gradual Type Structure Determines Appropriate Linking Gradual Compositional Translation `G e : e T Injection ` e X Dynamic Static ` e : T Mixed 132
214 Refined Criteria for Gradual Typing ú Jeremy G. Siek 1, Michael M. Vitousek 2, Matteo Cimini 3, and John Tang Boyland Indiana University Bloomington, School of Informatics and Computing Static and Dynamic Gradual Guarantee! Gradual Varying The Type Precision of a Program Monotonically Changes only static and dynamic type errors 133
215 Blame 134
216 Theorems about Blame Tobin-Hochstadt and Felleisen 2006 Wadler and Findler 2008 Dimoulas et al. Dimoulas Takikawa 135
217 Racket Contract Blame point-in?: contract violation expected: real? given: #f in: the 2nd argument of (-> pict? real? real? boolean?) contract from: point-in-module blaming: top-level (assuming the contract is correct) Robby Findler 172 Findler 136
218 Wherein Shriram Unwittingly Writes My Blame Schpiel For Me 137
219 138
220 139
221 140
222 Racket Contract Blame point-in?: contract violation expected: real? given: #f in: the 2nd argument of (-> pict? real? real? boolean?) contract from: point-in-module blaming: top-level (assuming the contract is correct) Robby Findler 172 Findler 141
Consistent Subtyping for All
Consistent Subtyping for All Ningning Xie Xuan Bi Bruno C. d. S. Oliveira 11 May, 2018 The University of Hong Kong 1 Background There has been ongoing debate about which language paradigm, static typing
More informationA Practical Optional Type System for Clojure. Ambrose Bonnaire-Sergeant
A Practical Optional Type System for Clojure Ambrose Bonnaire-Sergeant Statically typed vs. Dynamically typed Traditional distinction Dynamically typed Statically typed eg. Java, C, Haskell eg. Javascript,
More informationCOS 320. Compiling Techniques
Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly
More informationType assignment for intersections and unions in call-by-value languages
Type assignment for intersections and unions in call-by-value languages Joshua Dunfield and Frank Pfenning Triple Project Carnegie Mellon University 8 April 2003 FOSSACS 03, Warsaw, Poland Type assignment
More informationType Systems Winter Semester 2006
Type Systems Winter Semester 2006 Week 9 December 13 December 13, 2006 - version 1.0 Plan PREVIOUSLY: unit, sequencing, let, pairs, sums TODAY: 1. recursion 2. state 3.??? NEXT: exceptions? NEXT: polymorphic
More informationProgramming Languages
CSE 230: Winter 2008 Principles of Programming Languages Ocaml/HW #3 Q-A Session Push deadline = Mar 10 Session Mon 3pm? Lecture 15: Type Systems Ranjit Jhala UC San Diego Why Typed Languages? Development
More informationSemantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far
Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Statically vs. Dynamically typed languages
More informationAt build time, not application time. Types serve as statically checkable invariants.
Static Typing Thus far we have only considered statically typed languages. CMPSCI 630: Programming Languages Static and Dynamic Typing Spring 2008 (with thanks to Robert Harper) Type system is based on
More informationChapter 13: Reference. Why reference Typing Evaluation Store Typings Safety Notes
Chapter 13: Reference Why reference Typing Evaluation Store Typings Safety Notes References Computational Effects Also known as side effects. A function or expression is said to have a side effect if,
More informationSemantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End
Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors
More informationA formal derivation of an executable Krivine machine
A formal derivation of an executable Krivine machine Wouter Swierstra Universiteit Utrecht IFIP WG 2.1 Meeting 68; Rome, Italy 1 β reduction (λx. t0) t1 t0 {t1/x} 2 Motivation Implementing β-reduction
More informationCostly software bugs that could have been averted with type checking
Type Checking Class Notes from Lectures 6 and 7 Lahav Yeffet and Ori Folger The material in these lectures is based on the textbook Types and Programming Languages by Benjamin Pierce. Here is a list of
More informationSubtyping. Lecture 13 CS 565 3/27/06
Subtyping Lecture 13 CS 565 3/27/06 Polymorphism Different varieties of polymorphism: Parametric (ML) type variables are abstract, and used to encode the fact that the same term can be used in many different
More informationMutable References. Chapter 1
Chapter 1 Mutable References In the (typed or untyped) λ-calculus, or in pure functional languages, a variable is immutable in that once bound to a value as the result of a substitution, its contents never
More informationFunctional Programming
The Meta Language (ML) and Functional Programming Daniel S. Fava danielsf@ifi.uio.no Department of informatics University of Oslo, Norway Motivation ML Demo Which programming languages are functional?
More informationProgramming Languages Fall 2014
Programming Languages Fall 2014 Lecture 7: Simple Types and Simply-Typed Lambda Calculus Prof. Liang Huang huang@qc.cs.cuny.edu 1 Types stuck terms? how to fix it? 2 Plan First I For today, we ll go back
More informationCSCI-GA Scripting Languages
CSCI-GA.3033.003 Scripting Languages 12/02/2013 OCaml 1 Acknowledgement The material on these slides is based on notes provided by Dexter Kozen. 2 About OCaml A functional programming language All computation
More informationFrom Math to Machine A formal derivation of an executable Krivine Machine Wouter Swierstra Brouwer Seminar
From Math to Machine A formal derivation of an executable Krivine Machine Wouter Swierstra Brouwer Seminar β reduction (λx. t0) t1 t0 {t1/x} Substitution Realizing β-reduction through substitution is a
More informationThe role of semantic analysis in a compiler
Semantic Analysis Outline The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors
More informationThe design of a programming language for provably correct programs: success and failure
The design of a programming language for provably correct programs: success and failure Don Sannella Laboratory for Foundations of Computer Science School of Informatics, University of Edinburgh http://homepages.inf.ed.ac.uk/dts
More informationGradual Typing for Functional Languages. Jeremy Siek and Walid Taha (presented by Lindsey Kuper)
Gradual Typing for Functional Languages Jeremy Siek and Walid Taha (presented by Lindsey Kuper) 1 Introduction 2 What we want Static and dynamic typing: both are useful! (If you re here, I assume you agree.)
More informationCS558 Programming Languages
CS558 Programming Languages Fall 2016 Lecture 7a Andrew Tolmach Portland State University 1994-2016 Values and Types We divide the universe of values according to types A type is a set of values and a
More informationTypes. Type checking. Why Do We Need Type Systems? Types and Operations. What is a type? Consensus
Types Type checking What is a type? The notion varies from language to language Consensus A set of values A set of operations on those values Classes are one instantiation of the modern notion of type
More informationPierce Ch. 3, 8, 11, 15. Type Systems
Pierce Ch. 3, 8, 11, 15 Type Systems Goals Define the simple language of expressions A small subset of Lisp, with minor modifications Define the type system of this language Mathematical definition using
More informationCS131 Typed Lambda Calculus Worksheet Due Thursday, April 19th
CS131 Typed Lambda Calculus Worksheet Due Thursday, April 19th Name: CAS ID (e.g., abc01234@pomona.edu): I encourage you to collaborate. collaborations below. Please record your Each question is worth
More informationLesson 4 Typed Arithmetic Typed Lambda Calculus
Lesson 4 Typed Arithmetic Typed Lambda 1/28/03 Chapters 8, 9, 10 Outline Types for Arithmetic types the typing relation safety = progress + preservation The simply typed lambda calculus Function types
More informationType Systems. Today. 1. Organizational Matters. 1. Organizational Matters. Lecture 1 Oct. 20th, 2004 Sebastian Maneth. 1. Organizational Matters
Today Type Systems 1. Organizational Matters 2. What is this course about? 3. Where do types come from? 4. Def. of the small language Expr. Its syntax and semantics. Lecture 1 Oct. 20th, 2004 Sebastian
More informationSimply-Typed Lambda Calculus
#1 Simply-Typed Lambda Calculus #2 Back to School What is operational semantics? When would you use contextual (small-step) semantics? What is denotational semantics? What is axiomatic semantics? What
More informationProgramming Languages Lecture 14: Sum, Product, Recursive Types
CSE 230: Winter 200 Principles of Programming Languages Lecture 4: Sum, Product, Recursive Types The end is nigh HW 3 No HW 4 (= Final) Project (Meeting + Talk) Ranjit Jhala UC San Diego Recap Goal: Relate
More informationLecture 1: Overview
15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant
More informationType Inference Systems. Type Judgments. Deriving a Type Judgment. Deriving a Judgment. Hypothetical Type Judgments CS412/CS413
Type Inference Systems CS412/CS413 Introduction to Compilers Tim Teitelbaum Type inference systems define types for all legal programs in a language Type inference systems are to type-checking: As regular
More informationTyping & Static Analysis of Multi-Staged Programs
Typing & Static Analysis of Multi-Staged Programs School of Computer Science & Engineering Seoul National University 6/7/2011 @ Oxford U (co-work with I. Kim, W. Choi, B. Aktemur, C. Calcagno, M. Tatsuda)
More informationPart III. Chapter 15: Subtyping
Part III Chapter 15: Subtyping Subsumption Subtype relation Properties of subtyping and typing Subtyping and other features Intersection and union types Subtyping Motivation With the usual typing rule
More informationCS558 Programming Languages
CS558 Programming Languages Winter 2017 Lecture 7b Andrew Tolmach Portland State University 1994-2017 Values and Types We divide the universe of values according to types A type is a set of values and
More informationMeta-programming with Names and Necessity p.1
Meta-programming with Names and Necessity Aleksandar Nanevski Carnegie Mellon University ICFP, Pittsburgh, 05 October 2002 Meta-programming with Names and Necessity p.1 Meta-programming Manipulation of
More informationLambda Calculus. Type Systems, Lectures 3. Jevgeni Kabanov Tartu,
Lambda Calculus Type Systems, Lectures 3 Jevgeni Kabanov Tartu, 13.02.2006 PREVIOUSLY ON TYPE SYSTEMS Arithmetical expressions and Booleans Evaluation semantics Normal forms & Values Getting stuck Safety
More informationCSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009
CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 Lecture notes for CS 6110 (Spring 09) taught by Andrew Myers at Cornell; edited by Amal Ahmed, Fall 09. 1 Static vs. dynamic scoping The scope of a variable
More informationPart III Chapter 15: Subtyping
Part III Chapter 15: Subtyping Subsumption Subtype relation Properties of subtyping and typing Subtyping and other features Intersection and union types Subtyping Motivation With the usual typing rule
More informationTyped Lambda Calculus. Chapter 9 Benjamin Pierce Types and Programming Languages
Typed Lambda Calculus Chapter 9 Benjamin Pierce Types and Programming Languages t ::= x x. t t t Call-by-value small step perational Semantics terms variable v ::= values abstraction x. t abstraction values
More informationReferences. ( pointers )
References ( pointers ) Basic Examples like C pointers r = ref 5!r r := 7 malloc *r *r = 7 (r:=succ(!r);!r) (r:=succ(!r); r:=succ(!r); r:=succ(!r); r:=succ(!r);!r) Basic Examples i.e., r = ref 5!r r :=
More informationTracing Ambiguity in GADT Type Inference
Tracing Ambiguity in GADT Type Inference ML Workshop 2012, Copenhagen Jacques Garrigue & Didier Rémy Nagoya University / INRIA Garrigue & Rémy Tracing ambiguity 1 Generalized Algebraic Datatypes Algebraic
More informationCIS 500 Software Foundations Fall October 2
CIS 500 Software Foundations Fall 2006 October 2 Preliminaries Homework Results of my email survey: There was one badly misdesigned (PhD) problem and a couple of others that were less well thought through
More informationPropositional Logic Formal Syntax and Semantics. Computability and Logic
Propositional Logic Formal Syntax and Semantics Computability and Logic Syntax and Semantics Syntax: The study of how expressions are structured (think: grammar) Semantics: The study of the relationship
More information1 Introduction. 3 Syntax
CS 6110 S18 Lecture 19 Typed λ-calculus 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic semantics,
More informationFormal Semantics. Chapter Twenty-Three Modern Programming Languages, 2nd ed. 1
Formal Semantics Chapter Twenty-Three Modern Programming Languages, 2nd ed. 1 Formal Semantics At the beginning of the book we saw formal definitions of syntax with BNF And how to make a BNF that generates
More informationCS4215 Programming Language Implementation. Martin Henz
CS4215 Programming Language Implementation Martin Henz Thursday 26 January, 2012 2 Chapter 4 The Language simpl In this chapter, we are exting the language epl in order to provide a more powerful programming
More informationSupplementary Notes on Exceptions
Supplementary Notes on Exceptions 15-312: Foundations of Programming Languages Frank Pfenning Lecture 9 September 25, 2002 In this lecture we first give an implementation of the C-machine for the fragment
More informationFormal Systems and their Applications
Formal Systems and their Applications Dave Clarke (Dave.Clarke@cs.kuleuven.be) Acknowledgment: these slides are based in part on slides from Benjamin Pierce and Frank Piessens 1 Course Overview Introduction
More informationThe Lambda Calculus. 27 September. Fall Software Foundations CIS 500. The lambda-calculus. Announcements
CIS 500 Software Foundations Fall 2004 27 September IS 500, 27 September 1 The Lambda Calculus IS 500, 27 September 3 Announcements Homework 1 is graded. Pick it up from Cheryl Hickey (Levine 502). We
More informationType Systems Winter Semester 2006
Type Systems Winter Semester 2006 Week 4 November 8 November 15, 2006 - version 1.1 The Lambda Calculus The lambda-calculus If our previous language of arithmetic expressions was the simplest nontrivial
More informationSupplementary Notes on Abstract Syntax
Supplementary Notes on Abstract Syntax 15-312: Foundations of Programming Languages Frank Pfenning Lecture 3 September 3, 2002 Grammars, as we have discussed them so far, define a formal language as a
More informationType Systems. Pierce Ch. 3, 8, 11, 15 CSE
Type Systems Pierce Ch. 3, 8, 11, 15 CSE 6341 1 A Simple Language ::= true false if then else 0 succ pred iszero Simple untyped expressions Natural numbers encoded as succ succ
More informationReasoning About Programs Panagiotis Manolios
Reasoning About Programs Panagiotis Manolios Northeastern University February 26, 2017 Version: 100 Copyright c 2017 by Panagiotis Manolios All rights reserved. We hereby grant permission for this publication
More informationTowards efficient, typed LR parsers
roduction An automaton An ML implementation Beyond ML Conclusion 1 rançois Pottier and Yann Régis-Gianas June 2005 rançois Pottier and Yann Régis-Gianas roduction An automaton An ML implementation Beyond
More informationCITS5501 Software Testing and Quality Assurance Formal methods
CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005
More informationCIS 500 Software Foundations Fall September 25
CIS 500 Software Foundations Fall 2006 September 25 The Lambda Calculus The lambda-calculus If our previous language of arithmetic expressions was the simplest nontrivial programming language, then the
More informationTypes and Static Type Checking (Introducing Micro-Haskell)
Types and Static (Introducing Micro-Haskell) Informatics 2A: Lecture 13 Alex Simpson School of Informatics University of Edinburgh als@inf.ed.ac.uk 16 October, 2012 1 / 21 1 Types 2 3 4 2 / 21 Thus far
More informationA Type System for Functional Traversal-Based Aspects
A Type System for Functional Traversal-Based Aspects Bryan Chadwick College of Computer & Information Science Northeastern University, 360 Huntington Avenue Boston, Massachusetts 02115 USA chadwick@ccs.neu.edu
More informationCMSC 336: Type Systems for Programming Languages Lecture 5: Simply Typed Lambda Calculus Acar & Ahmed January 24, 2008
CMSC 336: Type Systems for Programming Languages Lecture 5: Simply Typed Lambda Calculus Acar & Ahmed January 24, 2008 Contents 1 Solution to the Exercise 1 1.1 Semantics for lambda calculus.......................
More information15 150: Principles of Functional Programming. Exceptions
15 150: Principles of Functional Programming Exceptions Michael Erdmann Spring 2018 1 Topics Exceptions Referential transparency, revisited Examples to be discussed: Dealing with arithmetic errors Making
More informationGoal. CS152: Programming Languages. Lecture 15 Parametric Polymorphism. What the Library Likes. What The Client Likes. Start simpler.
Goal Understand what this interface means and why it matters: CS152: Programming Languages Lecture 15 Parametric Polymorphism Dan Grossman Spring 2011 type a mylist; val mt_list : a mylist val cons : a
More informationLecture Notes on Program Equivalence
Lecture Notes on Program Equivalence 15-312: Foundations of Programming Languages Frank Pfenning Lecture 24 November 30, 2004 When are two programs equal? Without much reflection one might say that two
More informationLecture 9: Typed Lambda Calculus
Advanced Topics in Programming Languages Spring Semester, 2012 Lecture 9: Typed Lambda Calculus May 8, 2012 Lecturer: Mooly Sagiv Scribe: Guy Golan Gueta and Shachar Itzhaky 1 Defining a Type System for
More informationVerifying Program Invariants with Refinement Types
Verifying Program Invariants with Refinement Types Rowan Davies and Frank Pfenning Carnegie Mellon University Princeton and Yale Colloquium Talks February, 2001 Acknowledgments: Robert Harper 1 Overview
More informationCSCE 314 Programming Languages. Type System
CSCE 314 Programming Languages Type System Dr. Hyunyoung Lee 1 Names Names refer to different kinds of entities in programs, such as variables, functions, classes, templates, modules,.... Names can be
More informationProgramming in Omega Part 1. Tim Sheard Portland State University
Programming in Omega Part 1 Tim Sheard Portland State University Tim Sheard Computer Science Department Portland State University Portland, Oregon PSU PL Research at Portland State University The Programming
More informationAssistant for Language Theory. SASyLF: An Educational Proof. Corporation. Microsoft. Key Shin. Workshop on Mechanizing Metatheory
SASyLF: An Educational Proof Assistant for Language Theory Jonathan Aldrich Robert J. Simmons Key Shin School of Computer Science Carnegie Mellon University Microsoft Corporation Workshop on Mechanizing
More informationCSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341)
CSE 413 Languages & Implementation Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) 1 Goals Representing programs as data Racket structs as a better way to represent
More information2 Introduction to operational semantics
2 Introduction to operational semantics This chapter presents the syntax of a programming language, IMP, a small language of while programs. IMP is called an "imperative" language because program execution
More informationLecture 3: Recursion; Structural Induction
15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion
More informationTradeoffs. CSE 505: Programming Languages. Lecture 15 Subtyping. Where shall we add useful completeness? Where shall we add completeness?
Tradeoffs CSE 505: Programming Languages Lecture 15 Subtyping Zach Tatlock Autumn 2017 Desirable type system properties (desiderata): soundness - exclude all programs that get stuck completeness - include
More informationSubtyping (cont) Lecture 15 CS 565 4/3/08
Subtyping (cont) Lecture 15 CS 565 4/3/08 Formalization of Subtyping Inversion of the subtype relation: If σ
More information4.5 Pure Linear Functional Programming
4.5 Pure Linear Functional Programming 99 4.5 Pure Linear Functional Programming The linear λ-calculus developed in the preceding sections can serve as the basis for a programming language. The step from
More informationChapter 22: Type Reconstruction (Type Inference)
Chapter 22: Type Reconstruction (Type Inference) Calculating a Principal Type for a Term Constraint based Typing Unification and Principle Types Extension with let-polymorphism Type Variables and Type
More informationCIS 500 Software Foundations Fall December 6
CIS 500 Software Foundations Fall 2006 December 6 Administrivia Administrivia No recitations this week Extra office hours will be posted to the class mailing list Exam: Wednesday, Dec 20, 9 11 Location:
More informationAdministrivia. Existential Types. CIS 500 Software Foundations Fall December 6. Administrivia. Motivation. Motivation
CIS 500 Software Foundations Fall 2006 Administrivia December 6 Administrivia No recitations this week Extra office hours will be posted to the class mailing list Exam: Wednesday, Dec 20, 9 11 Location:
More informationAssuring Software Protection in Virtual Machines
Assuring Software Protection in Virtual Machines Andrew W. Appel Princeton University 1 Software system built from components Less-trusted components More-trusted components (non-core functions) INTERFACE
More informationIntroduction to Lexical Analysis
Introduction to Lexical Analysis Outline Informal sketch of lexical analysis Identifies tokens in input string Issues in lexical analysis Lookahead Ambiguities Specifying lexers Regular expressions Examples
More informationIntroduction to ML. Mooly Sagiv. Cornell CS 3110 Data Structures and Functional Programming
Introduction to ML Mooly Sagiv Cornell CS 3110 Data Structures and Functional Programming Typed Lambda Calculus Chapter 9 Benjamin Pierce Types and Programming Languages Call-by-value Operational Semantics
More informationGradual Typing with Union and Intersection Types
Gradual Typing with Union and Intersection Types Giuseppe Castagna, Victor Lanvin ICFP 17 September 6, 2017 1 / 14 Outline 1 Motivating Example 2 Types and Subtyping 3 Function Types and Operators 4 Conclusion
More informationLecture 13: Subtyping
Lecture 13: Subtyping Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Programming Languages Pratikakis (CSD) Subtyping CS546, 2018-2019 1 / 15 Subtyping Usually found
More informationThe University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 4 MODULE, SPRING SEMESTER MATHEMATICAL FOUNDATIONS OF PROGRAMMING ANSWERS
The University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 4 MODULE, SPRING SEMESTER 2012 2013 MATHEMATICAL FOUNDATIONS OF PROGRAMMING ANSWERS Time allowed TWO hours Candidates may complete the front
More informationCIS 500 Software Foundations Midterm I
CIS 500 Software Foundations Midterm I October 11, 2006 Name: Student ID: Email: Status: Section: registered for the course not registered: sitting in to improve a previous grade not registered: just taking
More informationSubtyping and Objects
Subtyping and Objects Massimo Merro 20 November 2017 Massimo Merro Data and Mutable Store 1 / 22 Polymorphism So far, our type systems are very rigid: there is little support to code reuse. Polymorphism
More informationOperational Semantics. One-Slide Summary. Lecture Outline
Operational Semantics #1 One-Slide Summary Operational semantics are a precise way of specifying how to evaluate a program. A formal semantics tells you what each expression means. Meaning depends on context:
More informationScope and Introduction to Functional Languages. Review and Finish Scoping. Announcements. Assignment 3 due Thu at 11:55pm. Website has SML resources
Scope and Introduction to Functional Languages Prof. Evan Chang Meeting 7, CSCI 3155, Fall 2009 Announcements Assignment 3 due Thu at 11:55pm Submit in pairs Website has SML resources Text: Harper, Programming
More informationLecture Notes on Aggregate Data Structures
Lecture Notes on Aggregate Data Structures 15-312: Foundations of Programming Languages Frank Pfenning Lecture 8 September 23, 2004 In this lecture we discuss various language extensions which make MinML
More informationCS152: Programming Languages. Lecture 11 STLC Extensions and Related Topics. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 11 STLC Extensions and Related Topics Dan Grossman Spring 2011 Review e ::= λx. e x e e c v ::= λx. e c τ ::= int τ τ Γ ::= Γ, x : τ (λx. e) v e[v/x] e 1 e 1 e 1 e
More informationFormal Semantics. Prof. Clarkson Fall Today s music: Down to Earth by Peter Gabriel from the WALL-E soundtrack
Formal Semantics Prof. Clarkson Fall 2015 Today s music: Down to Earth by Peter Gabriel from the WALL-E soundtrack Review Previously in 3110: simple interpreter for expression language: abstract syntax
More informationType Checking and Type Equality
Type Checking and Type Equality Type systems are the biggest point of variation across programming languages. Even languages that look similar are often greatly different when it comes to their type systems.
More informationSubtyping (cont) Formalization of Subtyping. Lecture 15 CS 565. Inversion of the subtype relation:
Subtyping (cont) Lecture 15 CS 565 Formalization of Subtyping Inversion of the subtype relation:! If "
More informationTypes and Static Type Checking (Introducing Micro-Haskell)
Types and Static (Introducing Micro-Haskell) Informatics 2A: Lecture 14 John Longley School of Informatics University of Edinburgh jrl@inf.ed.ac.uk 17 October 2017 1 / 21 1 Types 2 3 4 2 / 21 So far in
More informationXDI Link Contract Deep Dive
XDI Link Contract Deep Dive August 25-27, 2014 (Document by Dan Blum, slightly edited for Aug 29 XDI TC call by Markus) Introduction I learned that this is the second- or third XDI retreat, and for some
More informationIntroduction to SML Getting Started
Introduction to SML Getting Started Michael R. Hansen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark c Michael R. Hansen, Fall 2004 p.1/15 Background Standard Meta
More informationRefined typechecking with Stardust
Refined typechecking with Stardust Joshua Dunfield Carnegie Mellon University (current affiliation: McGill University) PLPV 2007 Freiburg, Germany 5 October 2007 1 Conventional Static Typing ML, Haskell,...
More informationLecture Notes on Compiler Design: Overview
Lecture Notes on Compiler Design: Overview 15-411: Compiler Design Frank Pfenning Lecture 1 August 26, 2014 1 Introduction This course is a thorough introduction to compiler design, focusing on more lowlevel
More informationSubsumption. Principle of safe substitution
Recap on Subtyping Subsumption Some types are better than others, in the sense that a value of one can always safely be used where a value of the other is expected. Which can be formalized as by introducing:
More informationGoals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1
Natural Semantics Goals: Define the syntax of a simple imperative language Define a semantics using natural deduction 1 1 Natural deduction is an instance of first-order logic; that is, it is the formal
More informationCSE-321 Programming Languages 2010 Final
Name: Hemos ID: CSE-321 Programming Languages 2010 Final Prob 1 Prob 2 Prob 3 Prob 4 Prob 5 Prob 6 Total Score Max 18 28 16 12 36 40 150 There are six problems on 16 pages, including two work sheets, in
More informationOutline. What is semantics? Denotational semantics. Semantics of naming. What is semantics? 2 / 21
Semantics 1 / 21 Outline What is semantics? Denotational semantics Semantics of naming What is semantics? 2 / 21 What is the meaning of a program? Recall: aspects of a language syntax: the structure of
More information