Proving Unrealizability for Syntax-Guided Synthesis Qinheping Hu , - - PowerPoint PPT Presentation

β–Ά
proving unrealizability for
SMART_READER_LITE
LIVE PREVIEW

Proving Unrealizability for Syntax-Guided Synthesis Qinheping Hu , - - PowerPoint PPT Presentation

Proving Unrealizability for Syntax-Guided Synthesis Qinheping Hu , Jason Breck , John Cyphert , Loris D'Antoni , Thomas Reps Proving Unrealizability for Syntax-Guided Synthesis 1 Syntax-Guided Synthesis (SyGuS) Specification


slide-1
SLIDE 1

Proving Unrealizability for Syntax-Guided Synthesis

Qinheping Hu , Jason Breck , John Cyphert , Loris D'Antoni , Thomas Reps

slide-2
SLIDE 2

Proving Unrealizability for Syntax-Guided Synthesis

1

slide-3
SLIDE 3

Start β†’ +(Start, Start) | π½π‘ˆπΉ(BExpr, Start, Start) 𝑦 𝑧 0 1 BExpr β†’ 𝑂𝑝𝑒(BExpr) | > (Start, Start) |π΅π‘œπ‘’(BExpr, BExpr)

Syntax-Guided Synthesis (SyGuS)

SyGuS Solver Specification Solution Program Search space 𝐻:

πœ’ 𝑛𝑏𝑦(𝑦, 𝑧), 𝑦, 𝑧 :

𝑛𝑏𝑦 𝑦, 𝑧 β‰₯ 𝑦 ∧ 𝑛𝑏𝑦 𝑦, 𝑧 β‰₯ 𝑧 ∧ (𝑛𝑏𝑦 𝑦, 𝑧 = 𝑦 ∨ 𝑛𝑏𝑦 𝑦, 𝑧 = 𝑧)

𝑓 ∈ 𝑀(𝐻) such that βˆ€π‘¦, 𝑧. πœ’ 𝑓, 𝑦, 𝑧 max 𝑦, 𝑧 = π½π‘ˆπΉ(> (𝑦, 𝑧), 𝑦, 𝑧)

slide-4
SLIDE 4

Syntax-Guided Synthesis (SyGuS)

  • Goal: find a program 𝑓 ∈ 𝑀(𝐻) such that βˆ€π‘¦, 𝑧. πœ’ 𝑓, 𝑦, 𝑧
  • SyGuS-Competition
  • SyGuS Solvers: CVC4, EUSolver, Euphony, DryadSynth,

LoopInvGen, E3Solver, Esolver

What if there doesn’t exist 𝑓 ∈ 𝑀(𝐻) such that βˆ€π‘¦, 𝑧. πœ’ 𝑓, 𝑦, 𝑧 (Unrealizable)

slide-5
SLIDE 5

Proving Unrealizability for Syntax-Guided Synthesis

1 2

slide-6
SLIDE 6

Example of Unrealizable SyGuS Problems

βˆ€π‘¦, 𝑧. max 𝑦, 𝑧 β‰₯ 𝑦 ∧ max 𝑦, 𝑧 β‰₯ 𝑧 ∧ (max 𝑦, 𝑧 = 𝑦 ∨ max 𝑦, 𝑧 = 𝑧) max 𝑦, 𝑧 = π½π‘ˆπΉ(> (𝑦, 𝑧), 𝑦, 𝑧) Start = +(Start, Start) | π½π‘ˆπΉ(BExpr, Start, Start) 𝑦 𝑧 0 1 BExpr = 𝑂𝑝𝑒(BExpr) | > (Start, Start) |π΅π‘œπ‘’(BExpr, BExpr)

Specification Search space

slide-7
SLIDE 7

Example of Unrealizable SyGuS Problems

βˆ€π‘¦, 𝑧. max 𝑦, 𝑧 β‰₯ 𝑦 ∧ max 𝑦, 𝑧 β‰₯ 𝑧 ∧ (max 𝑦, 𝑧 = 𝑦 ∨ max 𝑦, 𝑧 = 𝑧) Start = +(Start, Start) 𝑦 𝑧 0 1

Specification Search space

No Solution

slide-8
SLIDE 8

Proving Unrealizability for Syntax-Guided Synthesis

1 2 3

slide-9
SLIDE 9

Examples E: (x0,y0)=(0,0) CEGIS Verifier Synthesizer 𝑇𝑧𝐹

Ο†: 𝑔 𝑦, 𝑧 β‰₯ 𝑦 ∧ 𝑔 𝑦, 𝑧 β‰₯ 𝑧 ∧ (𝑔 𝑦, 𝑧 = 𝑦 ∨ 𝑔 𝑦, 𝑧 = 𝑧) 𝑇𝑧 ≔ G: Start = +(Start, Start) x 𝑧 1

slide-10
SLIDE 10

Examples E: (x0,y0)=(0,0) Synthesizer 𝑇𝑧𝐹

𝑇𝑧𝐹: ∧ 𝑦,𝑧 ∈𝐹 Ο†(𝑔, 𝑦, 𝑧)

slide-11
SLIDE 11

Examples E: (x0,y0)=(0,0) CEGIS Verifier Synthesizer 𝑇𝑧𝐹 𝑔 𝑦, 𝑧 = 0 new ce (0,1)

Ο†: 𝑔 𝑦, 𝑧 β‰₯ 𝑦 ∧ 𝑔 𝑦, 𝑧 β‰₯ 𝑧 ∧ (𝑔 𝑦, 𝑧 = 𝑦 ∨ 𝑔 𝑦, 𝑧 = 𝑧) 𝑇𝑧 ≔ G: Start = +(Start, Start) x 𝑧 1

slide-12
SLIDE 12

Examples E: (x0,y0)=(0,0) (x1,y1)=(0,1) CEGIS Verifier Synthesizer 𝑇𝑧𝐹 𝑔 𝑦, 𝑧 = 𝑧 new ce (1,0)

Ο†: 𝑔 𝑦, 𝑧 β‰₯ 𝑦 ∧ 𝑔 𝑦, 𝑧 β‰₯ 𝑧 ∧ (𝑔 𝑦, 𝑧 = 𝑦 ∨ 𝑔 𝑦, 𝑧 = 𝑧) 𝑇𝑧 ≔ G: Start = +(Start, Start) x 𝑧 1

slide-13
SLIDE 13

Examples E: (x0,y0)=(0,0) (x1,y1)=(0,1) (x2,y2)=(1,0) CEGIS Verifier Synthesizer 𝑇𝑧𝐹 𝑔 𝑦, 𝑧 = 1 new ce (2,0)

Ο†: 𝑔 𝑦, 𝑧 β‰₯ 𝑦 ∧ 𝑔 𝑦, 𝑧 β‰₯ 𝑧 ∧ (𝑔 𝑦, 𝑧 = 𝑦 ∨ 𝑔 𝑦, 𝑧 = 𝑧) 𝑇𝑧 ≔ G: Start = +(Start, Start) x 𝑧 1

slide-14
SLIDE 14

Examples E: (x0,y0)=(0,0) (x1,y1)=(0,1) (x2,y2)=(1,0) (x3,y3)=(2,0) CEGIS Verifier Synthesizer 𝑇𝑧𝐹

Unrealizable! Ο†: 𝑔 𝑦, 𝑧 β‰₯ 𝑦 ∧ 𝑔 𝑦, 𝑧 β‰₯ 𝑧 ∧ (𝑔 𝑦, 𝑧 = 𝑦 ∨ 𝑔 𝑦, 𝑧 = 𝑧) 𝑇𝑧 ≔ G: Start = +(Start, Start) x 𝑧 1

slide-15
SLIDE 15

𝑑𝑧

is unrealizable

𝑑𝑧𝐹

is unrealizable

No solution over 𝐹 No solution over all inputs

slide-16
SLIDE 16

From SyGuS over Examples to a Reachability Problem

slide-17
SLIDE 17

Reachability Problem

void main(){ int x = 0; while(nd()){ x++; } assert(x<0) } Goal: can the assert be falsified?

Reachability solver: CPA-checker Uautomizer Seahorn …

Non-deterministic choice

slide-18
SLIDE 18

Overview

SyGuS over examples Reachability problem

𝑑𝑧𝐹 𝑆𝑓𝐹

(φ𝐹, 𝐻) void main(){ … assert(…)}

𝑑𝑧𝐹is unrealizable assert cannot be falsified

slide-19
SLIDE 19

𝑇𝑧𝐹 to 𝑆𝑓𝐹

Τ¦ 𝑦 ← 𝐹 Τ¦ 𝑝 ← 𝑔

𝐻( Ԧ

𝑦)

𝑔

𝐻 is non-deterministically drawn from 𝑀(𝐻)

Set input to 𝐹

assert(Β¬ΩΏ 𝑦𝑗 ∈ 𝐹. Ο†(𝑝𝑗, 𝑦𝑗))

Check if Τ¦ 𝑝 doesn’t satisfy Ο† 𝑔

𝐻( Ԧ

𝑦) satisfy Ο† on 𝐹 𝑇𝑧𝐹 is unrealizable

slide-20
SLIDE 20

Τ¦ 𝑦 ← 𝐹

Set input to 𝐹

x0 = 0; y0 = 0; x1 = 0; y1 = 1;

Examples E: (x0,y0)=(0,0) (x1,y1)=(0,1)

slide-21
SLIDE 21

𝑇𝑧𝐹 to 𝑆𝑓𝐹

Τ¦ 𝑦 ← 𝐹 Τ¦ 𝑝 ← 𝑔

𝐻( Ԧ

𝑦)

𝑔

𝐻 is non-deterministically drawn from 𝑀(𝐻)

Set input to 𝐹

assert(Β¬ΩΏ 𝑦𝑗 ∈ 𝐹. Ο†(𝑝𝑗, 𝑦𝑗))

Check if Τ¦ 𝑝 doesn’t satisfy Ο†

slide-22
SLIDE 22

assert(Β¬ΩΏ 𝑦𝑗 ∈ 𝐹. Ο†(𝑝𝑗, 𝑦𝑗))

Ο† 𝑔 𝑦, 𝑧 ≔ 𝑔 𝑦, 𝑧 β‰₯ 𝑦 ∧ 𝑔 𝑦, 𝑧 β‰₯ 𝑧 ∧ (𝑔 𝑦, 𝑧 = 𝑦 ∨ 𝑔 𝑦, 𝑧 = 𝑧)

void main(){ … assert(!(spec(x0,y0,o0)&&spec(x1,y1,o1))); } bool spec(x,y,o){ return (o>=x)&&(o>=y)&&(o==x||o==y); } Check if Τ¦ 𝑝 doesn’t satisfy Ο†

slide-23
SLIDE 23

𝑇𝑧𝐹 to 𝑆𝑓𝐹

Τ¦ 𝑦 ← 𝐹 Τ¦ 𝑝 ← 𝑔

𝐻( Ԧ

𝑦)

𝑔

𝐻 is non-deterministically drawn from 𝑀(𝐻)

Set input to 𝐹

assert(Β¬ΩΏ 𝑦𝑗 ∈ 𝐹. Ο†(𝑝𝑗, 𝑦𝑗))

Check if Τ¦ 𝑝 doesn’t satisfy Ο†

slide-24
SLIDE 24

Τ¦ 𝑝 ← 𝑔

𝐻( Ԧ

𝑦)

𝑔

𝐻 is non-deterministically drawn from 𝑀(𝐻)

int fStart(x0,y0){ if(nd()){ return 0;} if(nd()){ return 1;} if(nd()){ return x0;} if(nd()}{ return y0;} if(nd()){ left = fStart(x0,y0); right = fStart(x0,y0); return left + right;} }

  • 0 = fStart(x0,y0);

\\ Start -> 0 \\ Start -> 1 \\ Start -> x \\ Start -> y \\ Start -> +(Start,Start)

slide-25
SLIDE 25
  • 0=fStart(x0,y0);
  • 0 is 𝑔

𝐻 x0,y0 for some 𝑔 𝐻 in 𝑀 𝐻

  • 1=fStart(x1,y1);
  • 1 is 𝑔

𝐻 x1,y1 for some 𝑔 𝐻 in 𝑀 𝐻

Can be different

slide-26
SLIDE 26

Τ¦ 𝑝 ← 𝑔

𝐻( Ԧ

𝑦)

𝑔

𝐻 is non-deterministically drawn from 𝑀(𝐻)

<int,int> fStart(x0,y0,x1,y1){ if(nd()){ return (0,0);} if(nd()){ return (1,1);} if(nd()){ return (x0,x1);} if(nd()}{ return (y0,y1);} if(nd()){ (a0,a1) = Start(x0,y0,x1,y1); (b0,b1) = Start(x0,y0,x1,y1); return (a0+b0,a1+b1);} } \\ Start -> 0 \\ Start -> 1 \\ Start -> x \\ Start -> y \\ Start -> +(Start,Start) (o0,o1) = Start(x0,y0);

slide-27
SLIDE 27

𝑑𝑧

unrealizable

𝑑𝑧𝐹 unrealizable assert cannot be falsified

slide-28
SLIDE 28

Evaluation

slide-29
SLIDE 29

The tool NOPE

Example Set 𝐹

Nope

Veifier Z3 ESolver

𝑇𝑧𝐹

Unreachable

UNREALIZABLE

𝑄 UNSAT

𝑄 is a solution

SAT new example e

Seahorn Reduction 𝑆𝑓𝐹

slide-30
SLIDE 30

Application

QSyGUS[cav18]

Optimal?

QSyGuS SyGuS Weighted 𝑋 Specification 𝜚 Minimize 𝑑𝑝𝑑𝑒 𝜚, 𝐻 𝜚, 𝐻<𝑑1

Solution Cost 1

β‹―

Solution cost 𝐷1

𝜚, 𝐻<1

π‘π‘—π‘œπ‘—π‘›π‘—π‘¨π‘“ # π½π‘ˆπΉ (πœ’, 𝐻<1) is unrealizable max 𝑦, 𝑧 = π½π‘ˆπΉ(> (𝑦, 𝑧), 𝑦, 𝑧)

slide-31
SLIDE 31

Benchmarks

60 SyGuS benchmarks

QSyGuS

132 SyGuS benchmarks which should be unrealizable

slide-32
SLIDE 32

Overall performance of NOPE

132 variants of benchmarks taken from SyGuS

  • 1. bounded number of if-operators
  • 2. bounded number of plus-operators
  • 3. restricted range of constants

Solved 13/57 1/30 45/45 59/132

slide-33
SLIDE 33

Limitation 1 of NOPE: number of examples

slide-34
SLIDE 34

Limitation 2 of NOPE: size of grammars

Large sized reachability problem

slide-35
SLIDE 35

Conclusion

Example Set 𝐹

Nope

Verifier Z3 ESolver

𝑇𝑧𝐹

Unreachable

UNREALIZABLE

𝑄 UNSAT

𝑄 is a solution

SAT new example e

Seahorn Reudction 𝑆𝑓𝐹

Open questions:

  • 1. reachability problem with large number of functions
  • 2. beyond SyGuS
slide-36
SLIDE 36

CEGIS may not Terminate

πœ’ 𝑔(𝑦), 𝑦 = 𝑔 𝑦 > 𝑦

Start β†’ +(Start, Start) 0 1

Example Set 𝐹

𝑔 𝑦 = max E + 1

slide-37
SLIDE 37

Non Single-invocation Specification