Exploring Interpolants
Philipp R¨ ummer, Pavle Suboti´ c
Uppsala University, Sweden
COST Meeting, October 17
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 1 / 39
Exploring Interpolants Philipp R ummer, Pavle Suboti c Uppsala - - PowerPoint PPT Presentation
Exploring Interpolants Philipp R ummer, Pavle Suboti c Uppsala University, Sweden COST Meeting, October 17 R ummer, Suboti c Exploring Interpolants COST Meeting, October 17 1 / 39 Introduction Interpolants in Model Checking Craig
Uppsala University, Sweden
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 1 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 2 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 2 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 2 / 39
◮ Discovers a range of interpolants R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 2 / 39
◮ Discovers a range of interpolants ◮ Incorporates domain specific knowledge R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 2 / 39
◮ Discovers a range of interpolants ◮ Incorporates domain specific knowledge ◮ Semantic in nature R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 2 / 39
◮ Discovers a range of interpolants ◮ Incorporates domain specific knowledge ◮ Semantic in nature ◮ Prover independent R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 2 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 3 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 4 / 39
1
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 5 / 39
1
2
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 5 / 39
1
2
3
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 5 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 6 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 7 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 8 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 9 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 10 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 11 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 12 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 13 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 14 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 14 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 15 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 16 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 16 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 16 / 39
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 16 / 39
1
2
3
4
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 17 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 18 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 19 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 20 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 21 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 22 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 23 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 24 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 25 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 26 / 39
Interpolation Abstractions
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 27 / 39
Exploring Interpolants
◮ Define a base vocabulary of “interesting” templates (building blocks for interpolants) ◮ Search for maximum feasible interpolation abstractions in this language R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 28 / 39
Exploring Interpolants
◮ Define a base vocabulary of “interesting” templates (building blocks for interpolants) ◮ Search for maximum feasible interpolation abstractions in this language
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 28 / 39
Exploring Interpolants
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 29 / 39
Exploring Interpolants
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 30 / 39
Exploring Interpolants
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 31 / 39
Exploring Interpolants
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 32 / 39
Experiments on Software Programs
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 33 / 39
Experiments on Software Programs
Benchmark Eldarica Eldarica-ABS Flata Z3 N sec N sec sec sec C programs boustrophedon (C) * * 10 10.7 * 0.1 boustrophedon expansed (C) * * 11 7.7 * 0.1 halbwachs (C) * * 53 2.4 * 0.1 gopan (C) 17 22.2 62 57.0 0.4 349.5 rate limiter (C) 11 2.7 11 19.1 1.0 0.1 anubhav (C) 1 1.7 1 1.6 0.9 * cousot (C) * * 3 7.7 0.7 * bubblesort (E) 1 2.8 1 2.3 77.6 0.3 insdel (C) 1 0.9 1 0.9 0.7 0.0 insertsort (E) 1 1.8 1 1.7 1.3 0.1 listcounter (C) * * 8 2.0 0.2 * listcounter (E) 1 0.9 1 0.9 0.2 0.0 listreversal (C) 1 1.9 1 1.9 4.9 * mergesort (E) 1 2.9 1 2.6 1.1 0.2 selectionsort (E) 1 2.4 1 2.4 1.2 0.2 rotation vc.1 (C) 7 2.0 7 0.3 1.9 0.2 rotation vc.2 (C) 8 2.7 8 0.2 2.2 0.3 rotation vc.3 (C) 2.3 0.2 2.3 0.0 rotation.1 (E) 3 1.8 3 1.8 0.5 0.1 split vc.1 (C) 18 3.9 17 3.2 * 1.1 split vc.2 (C) * * 18 1.1 * 0.2 split vc.3 (C) 2.8 1.5 * 0.0 Recursive Horn SMT-LIB Benchmarks addition (C) 1 0.7 1 0.8 0.4 0.0 bfprt (C) * * 5 8.3
binarysearch (C) 1 0.9 1 0.9
buildheap (C) * * * *
countZero (C) 2 2.0 2 2.0
disjunctive (C) 10 2.4 5 5.0 0.2 0.3 floodfill (C) * * * * 41.2 0.1 gcd (C) 4 1.2 4 2.0
identity (C) 2 1.1 2 2.1
merge-leq (C) 3 1.1 7 7.0 15.7 0.1
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 34 / 39
Conclusion
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
◮ Easy to integrate in verifiers (basic implementation 500-1000 LOC) R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
◮ Easy to integrate in verifiers (basic implementation 500-1000 LOC) ◮ Enables use of domain-specific knowledge in interpolation R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
◮ Easy to integrate in verifiers (basic implementation 500-1000 LOC) ◮ Enables use of domain-specific knowledge in interpolation
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
◮ Easy to integrate in verifiers (basic implementation 500-1000 LOC) ◮ Enables use of domain-specific knowledge in interpolation
◮ Our implementation is just a basic instance of the framework R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
◮ Easy to integrate in verifiers (basic implementation 500-1000 LOC) ◮ Enables use of domain-specific knowledge in interpolation
◮ Our implementation is just a basic instance of the framework ◮ Each query can have a specific lattice, lattices can be infinite etc. R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
◮ Easy to integrate in verifiers (basic implementation 500-1000 LOC) ◮ Enables use of domain-specific knowledge in interpolation
◮ Our implementation is just a basic instance of the framework ◮ Each query can have a specific lattice, lattices can be infinite etc. ◮ Applicable to various logics, not restricted to arithmetic R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
◮ Easy to integrate in verifiers (basic implementation 500-1000 LOC) ◮ Enables use of domain-specific knowledge in interpolation
◮ Our implementation is just a basic instance of the framework ◮ Each query can have a specific lattice, lattices can be infinite etc. ◮ Applicable to various logics, not restricted to arithmetic
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 35 / 39
Conclusion
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 36 / 39
Conclusion
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 37 / 39
Conclusion
1
2
3
4
5
6
7
8
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 38 / 39
Conclusion
1
2
3
4
5
6
7
8
9
R¨ ummer, Suboti´ c Exploring Interpolants COST Meeting, October 17 39 / 39