47
Siddharth Krishna

Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

Siddharth Krishna

Page 2: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

procedure insert(lst: Node, elt: Node) returns (res: Node)requires 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, 𝑛𝑒𝑙𝑙ensures 𝑙𝑠𝑒𝑔(π‘Ÿπ‘’π‘ , 𝑛𝑒𝑙𝑙)

{if (lst != null){

var curr := lst;while (nondet() && curr.next != null)

invariant π‘π‘’π‘Ÿπ‘Ÿ β‰  𝑛𝑒𝑙𝑙 ∢ 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙{

curr := curr.next;}elt.next := curr.next;curr.next := elt;return lst;

}else return elt;

}

Page 3: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

procedure insertion_sort(lst: Node) requires 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑑 β‰  𝑛𝑒𝑙𝑙ensures 𝑠𝑙𝑠𝑒𝑔(𝑙𝑠𝑑, 𝑛𝑒𝑙𝑙)

{var prv := null, srt := lst;while (srt != null)invariant (π‘π‘Ÿπ‘£ = 𝑛𝑒𝑙𝑙 βˆ— π‘ π‘Ÿπ‘‘ = 𝑙𝑠𝑑 βˆ— 𝑙𝑠𝑒𝑔(𝑙𝑠𝑑, 𝑛𝑒𝑙𝑙))|| (𝑙𝑠𝑒𝑔 (𝑙𝑠𝑑, π‘π‘Ÿπ‘£) βˆ— π‘π‘Ÿ ↦ π‘ π‘Ÿπ‘‘ βˆ— 𝑙𝑠𝑒𝑔 (π‘ π‘Ÿπ‘‘, 𝑛𝑒𝑙𝑙))

{var curr := srt.next;var min := srt;while (curr != null)

invariant π‘π‘Ÿπ‘£ = 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, π‘ π‘Ÿπ‘‘ βˆ— 𝑙𝑠𝑒𝑔 π‘ π‘Ÿπ‘‘,π‘šπ‘–π‘› βˆ— 𝑙𝑠𝑒𝑔 π‘šπ‘–π‘›, π‘π‘’π‘Ÿπ‘Ÿ βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙

|| (𝑙𝑠𝑒𝑔(𝑙𝑠𝑑, π‘π‘Ÿπ‘£) βˆ— 𝑙𝑠𝑒𝑔 (π‘π‘Ÿπ‘£, π‘ π‘Ÿπ‘‘) βˆ— 𝑙𝑠𝑒𝑔 π‘ π‘Ÿπ‘‘,π‘šπ‘–π‘› βˆ— 𝑙𝑠𝑒𝑔 π‘šπ‘–π‘›, π‘π‘’π‘Ÿπ‘Ÿ βˆ— 𝑙𝑠𝑒𝑔(π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙))invariant π‘šπ‘–π‘› β‰  𝑛𝑒𝑙𝑙

{if (curr.data < min.data) {

min := curr;}curr := curr.next;

}var tmp := min.data;min.data := srt.data;srt.data := tmp;prv := srt;srt := srt.next;

}}

Page 4: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

procedure insert(lst: Node, elt: Node) returns (res: Node)requires 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, 𝑛𝑒𝑙𝑙ensures 𝑙𝑠𝑒𝑔(π‘Ÿπ‘’π‘ , 𝑛𝑒𝑙𝑙)

{if (lst != null){

var curr := lst;while (nondet() && curr.next != null){

invariant π‘π‘’π‘Ÿπ‘Ÿ β‰  𝑛𝑒𝑙𝑙 ∢ 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔(𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ)βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙

curr := curr.next;}elt.next := curr.next;curr.next := elt;return lst;

}else return elt;

}

...

...

...

Page 5: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

π‘π‘’π‘Ÿπ‘Ÿ β‰  𝑛𝑒𝑙𝑙 βˆΆπ‘’π‘™π‘‘ ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔(𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ) βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙

Page 6: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 7: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 8: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

x 1

π‘’π‘šπ‘

Page 9: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

x 1

𝑦 ↦ 𝑧

Page 10: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

x 1

𝑦 ↦ 𝑧 βˆ— 𝑧 ↦ 𝑦

Page 11: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

x 1

𝑦 ↦ 𝑧 ∧ 𝑧 ↦ 𝑦

Page 12: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

x 1

π‘₯ = 1 ∢ 𝑦 ↦ 𝑧 βˆ— 𝑧 ↦ 𝑦

Page 13: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

𝑙𝑠𝑒𝑔 π‘₯, 𝑦 ≔ βˆƒ 𝑧. π‘₯ = 𝑦 ∢ π‘’π‘šπ‘ ∨ (π‘₯ β‰  𝑦 ∢ π‘₯ ↦ 𝑧 βˆ— 𝑙𝑠𝑒𝑔 𝑧, 𝑦 )

k 1

𝑙𝑠𝑒𝑔 π‘₯, 𝑛𝑒𝑙𝑙≑ βˆƒπ‘§ . π‘₯ β‰  𝑛𝑒𝑙𝑙 ∢ π‘₯ ↦ 𝑧 βˆ— 𝑙𝑠𝑒𝑔 𝑧, 𝑛𝑒𝑙𝑙≑ …≑ π‘₯ ↦ 𝑧 βˆ— 𝑧 ↦ 𝑛𝑒𝑙𝑙 βˆ— π‘’π‘šπ‘

Page 14: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 15: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

(𝑦 β‰₯ π‘₯)

Page 16: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

Formulas

π‘π‘’π‘Ÿπ‘Ÿ β‰  𝑛𝑒𝑙𝑙 ∢ 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ—π‘™π‘ π‘’π‘”(𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ) βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙

Graphs

Page 17: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž | π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘  π»π‘’π‘Žπ‘π‘™π‘’π‘‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘  | π‘’π‘šπ‘

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ 𝐸π‘₯π‘π‘Ÿ 𝐸π‘₯π‘π‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝐸π‘₯π‘π‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝐸π‘₯π‘π‘Ÿ π‘‰π‘Žπ‘Ÿ

Page 18: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž β†’ βˆƒ π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž | π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘  π»π‘’π‘Žπ‘π‘™π‘’π‘‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘  | π‘’π‘šπ‘

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ 𝐸π‘₯π‘π‘Ÿ 𝐸π‘₯π‘π‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝐸π‘₯π‘π‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘ŽπΈπ‘₯𝑝 π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝑑 πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

𝐸π‘₯π‘π‘Ÿ 𝐸π‘₯π‘π‘Ÿ

π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

Page 19: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ 𝐸π‘₯π‘π‘Ÿ 𝐸π‘₯π‘π‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝐸π‘₯π‘π‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

Page 20: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝑑 πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

𝐸π‘₯π‘π‘Ÿ 𝐸π‘₯π‘π‘Ÿ

2

π‘₯

𝑑

3

4

5

6

π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž β†’ βˆƒ π‘‰π‘Žπ‘Ÿ . πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž | π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘  β†’ π»π‘’π‘Žπ‘π‘™π‘’π‘‘ βˆ— π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘  | π‘’π‘šπ‘π»π‘’π‘Žπ‘π‘™π‘’π‘‘ β†’ ls 𝐸π‘₯π‘π‘Ÿ, 𝐸π‘₯π‘π‘Ÿ, …| tree 𝐸π‘₯π‘π‘Ÿ, …

𝐸π‘₯𝑝 β†’ 0 ∣ π‘‰π‘Žπ‘Ÿ

Page 21: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿπ‘™π‘ π‘’π‘” π‘π‘’π‘Ÿπ‘Ÿ, 𝑙𝑠𝑑

𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙...

π‘π‘’π‘Ÿπ‘Ÿ β‰  𝑛𝑒𝑙𝑙 ∢ 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙...

Page 22: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ β†’ ls 𝐸π‘₯π‘π‘Ÿ, 𝐸π‘₯π‘π‘Ÿ, _ | tree 𝐸π‘₯π‘π‘Ÿ, _

π‘π‘’π‘Ÿπ‘Ÿ β‰  𝑛𝑒𝑙𝑙 ∢ 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙

Page 23: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž π‘‰π‘Žπ‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž | π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝑑 πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

2

π‘₯

𝑑

3

4

5

6

Page 24: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘  π»π‘’π‘Žπ‘π‘™π‘’π‘‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘  | π‘’π‘šπ‘πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝑑 πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

2

π‘₯

𝑑

3

4

5

6

π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

Page 25: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ 𝐸π‘₯π‘π‘Ÿ 𝐸π‘₯π‘π‘Ÿ

𝐸π‘₯π‘π‘Ÿ πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝑑 πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

𝐸π‘₯π‘π‘Ÿ 𝐸π‘₯π‘π‘Ÿ

2

π‘₯

𝑑

3

4

5

6

π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

Page 26: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

𝐸π‘₯π‘π‘Ÿ π‘‰π‘Žπ‘Ÿ

2

π‘₯

𝑑

3

4

5

6

πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

𝑑 πΉπ‘œπ‘Ÿπ‘šπ‘’π‘™π‘Ž

π»π‘’π‘Žπ‘π‘™π‘’π‘‘ π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

𝐸π‘₯π‘π‘Ÿ 𝐸π‘₯π‘π‘Ÿ

π»π‘’π‘Žπ‘π‘™π‘’π‘‘π‘ 

Page 27: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

Numeric Invariants:

β€’ Training at verification time

β€’ Training data: Observations

β€’ Desired Invariant

~ Model

Our Heap Invariants:

β€’ Training beforehand

β€’ Training data: Independent

β€’ Desired Invariant

~ Predicted Label

Page 28: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 29: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 30: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 31: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 32: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 33: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

...

Page 34: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

These slides from David Sontag, adapted from Luke Zettlemoyer,

Vibhav Gogate, Carlos Guestrin, Andrew Moore, Dan Klein

Page 35: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 36: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 37: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 38: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 39: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

procedure insert(lst: Node, elt: Node) returns (res: Node)requires 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, 𝑛𝑒𝑙𝑙ensures 𝑙𝑠𝑒𝑔(π‘Ÿπ‘’π‘ , 𝑛𝑒𝑙𝑙)

{if (lst != null){var curr := lst;while ( ? && curr.next != null){curr := curr.next;

}elt.next := curr.next;curr.next := elt;return lst;

}}

π‘π‘’π‘Ÿπ‘Ÿ β‰  𝑛𝑒𝑙𝑙 βˆΆπ‘’π‘™π‘‘ ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔(𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ) βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙

procedure insert(lst: Node, elt: Node) returns (res: Node)requires 𝑒𝑙𝑑 ↦ 𝑛𝑒𝑙𝑙 βˆ— 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, 𝑛𝑒𝑙𝑙ensures 𝑙𝑠𝑒𝑔(π‘Ÿπ‘’π‘ , 𝑛𝑒𝑙𝑙)

{if (lst != null){var curr := lst;while ( ? && curr.next != null)invariant π‘π‘’π‘Ÿπ‘Ÿ β‰  𝑛𝑒𝑙𝑙 ∢ 𝑒𝑙𝑑 ↦ π‘›π‘’π‘™π‘™βˆ— 𝑙𝑠𝑒𝑔(𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ) βˆ— 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙

{curr := curr.next;

}elt.next := curr.next;curr.next := elt;return lst;

}}

Grasshopper picture from this blog

Page 40: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 41: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

lseg(lst, curr) [] [2] [2, 4]

lseg(curr, null) [2, 4, 6, 9] [4, 6, 9] [6, 9]

lseg(elt, null) [7] [7] [7]

lst.data 2 2 2

curr.data 2 4 6

elt.data 7 7 7

...

...

...βˆ€π‘’. 𝑒 ∈ 𝐹𝑃 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ β‡’ 𝑒. π‘‘π‘Žπ‘‘π‘Ž < π‘π‘’π‘Ÿπ‘Ÿ. π‘‘π‘Žπ‘‘π‘Ž

βˆ€π‘’, 𝑣. 𝐹𝑃 𝑙𝑠𝑒𝑔 𝑙𝑠𝑑, π‘π‘’π‘Ÿπ‘Ÿ : 𝑒 β†’+ 𝑣 β‡’ 𝑒. π‘‘π‘Žπ‘‘π‘Ž ≀ 𝑣. π‘‘π‘Žπ‘‘π‘Ž

βˆ€π‘’, 𝑣. 𝐹𝑃 𝑙𝑠𝑒𝑔 π‘π‘’π‘Ÿπ‘Ÿ, 𝑛𝑒𝑙𝑙 : 𝑒 β†’+ 𝑣 β‡’ 𝑒. π‘‘π‘Žπ‘‘π‘Ž ≀ 𝑣. π‘‘π‘Žπ‘‘π‘Ž

π‘π‘’π‘Ÿπ‘Ÿ. π‘‘π‘Žπ‘‘π‘Ž ≀ 𝑒𝑙𝑑. π‘‘π‘Žπ‘‘π‘Ž

Page 42: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

β€’

Analog to functional version from:

He Zhu, Gustavo Petri, Suresh Jagannathan, Automatically Learning Shape Specifications, PLDI 2016

Page 43: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 44: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM

Picture from Aqua Teen Hunger Force Wikia

Page 45: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 46: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM
Page 47: Siddharth Krishna - New York Universitysiddharth/slides/2016-06-ucl.pdfΒ Β· Siddharth Krishna Subject: Microsoft Research 2013 Created Date: 6/20/2016 6:42:03 PM