Horn Clauses Horn Clauses and ELFP Yakir Vizel

  • Slides: 14
Download presentation
Horn Clauses •

Horn Clauses •

Horn Clauses and E+LFP •

Horn Clauses and E+LFP •

Yakir Vizel Caught by the Interpolants Horn Clauses are Magical Yo betcha Interpolation is

Yakir Vizel Caught by the Interpolants Horn Clauses are Magical Yo betcha Interpolation is a special case of finding solutions to Horn Clauses Program Proof Systems = Horn Clauses Ergo: Solve Programs = Solve Horn Clauses Andrey, you just made me sink the past few years into Horn clauses Ken Mc. Millan Andrey Rybalchenko

How to Solve It? - Z • [Krystof Hoder & B, SAT 2012]

How to Solve It? - Z • [Krystof Hoder & B, SAT 2012]

How to Solve It? - HSF [Grebenshchikov, Lopes, Popeea, Rybalchenko, PLDI 2012]

How to Solve It? - HSF [Grebenshchikov, Lopes, Popeea, Rybalchenko, PLDI 2012]

How to Solve It? - Duality When query fails, build a derivation tree for

How to Solve It? - Duality When query fails, build a derivation tree for the unwinding, and compute interpolants, then update the solution with the interpolants. unwinding solved! solution inductive! Ken Mc. Millan 2012

How to Solve It? - Sea. Horn Arie Gurfinkel

How to Solve It? - Sea. Horn Arie Gurfinkel

Several more Horn Clause Solvers • Eldarica Kuncak, Hojjat, Ruemmer • Fioravanti • Jaffar

Several more Horn Clause Solvers • Eldarica Kuncak, Hojjat, Ruemmer • Fioravanti • Jaffar • Gallagher • We are always recruiting

A format for Software Model Checking • Collection of about 10, 000 benchmarks from

A format for Software Model Checking • Collection of about 10, 000 benchmarks from various sources, including device driver software, at Dirk Beyer’s software verification repository. • Used as backend in Sea. Horn, HSF, Duality tool chains.

Application: Network Verification Sample belief: packets flow through middle-box Engine: Network Optimized Datalog: Datalog

Application: Network Verification Sample belief: packets flow through middle-box Engine: Network Optimized Datalog: Datalog A(src, dst, 0). R 1(src, dst, n) : - A(src, dst, n), Rule 1(src, dst). R 2(src, dst, n) : - R 1(src, dst, n), Rule 2(src, dst). … R 4(src, dst, 1) : - M(src, dst, _), Rule 4(src, dst)…. . ? B(src, dst, 0). Nuno Lopes, B, Patrice Godefroid, Karthick Jayaraman, George Varghese [NSDI 2015]

Programs Horn Clauses Boogie/Duality – Weakest liberal pre-conditions HSF – Reps-Horwitz-Sagiv based transformation Sea.

Programs Horn Clauses Boogie/Duality – Weakest liberal pre-conditions HSF – Reps-Horwitz-Sagiv based transformation Sea. Horn – Large block encoding with error propagation Terraces Winery, Rutherford, Napa

Boogie/Dijkstra Rustan Leino

Boogie/Dijkstra Rustan Leino

Transforming Horn Clauses Query-Answer transformation (Magic Sets) - Inlines calling context Fold-Unfold - Complete

Transforming Horn Clauses Query-Answer transformation (Magic Sets) - Inlines calling context Fold-Unfold - Complete for refutations K-induction - Variant of Unfold operation Assertion in-lining - Inlines paths to assertion check All: Symbolic Models preserved modulo feasible interpolation

K-induction as reinforced unfold

K-induction as reinforced unfold