SLIDE 1
Effectively Propositional Interpolants Samuel Drews and Aws - - PowerPoint PPT Presentation
Effectively Propositional Interpolants Samuel Drews and Aws - - PowerPoint PPT Presentation
Effectively Propositional Interpolants Samuel Drews and Aws Albarghouthi Effectively Propositional Logic (EPR) Quantifier-free No function symbols EPR Decidable satisfiability! EPR Decidable satisfiability! Expressive: Linked lists
SLIDE 2
SLIDE 3
EPR
Decidable satisfiability!
SLIDE 4
EPR
Decidable satisfiability! Expressive:
- Linked lists [Itzhaky et al. 2014]
- Software-defined networks [Ball et al. 2014]
- Parameterized distributed protocols [Padon et al. 2016]
- …
SLIDE 5
Interpolants
Given A and B such that A ∧ B is unsatisfiable A B
SLIDE 6
Interpolants
Given A and B such that A ∧ B is unsatisfiable Find I such that A → I is valid I ∧ B is unsatisfiable I is in shared vocabulary (A, B) A B I
SLIDE 7
Restricted Logics for Invariants
is valid, or is unsat
SLIDE 8
Restricted Logics for Invariants
is valid, or is unsat
SLIDE 9
Restricted Logics for Invariants
is valid, or is unsat ∃*∀*φ decidable, but ∀*∃*φ undecidable
SLIDE 10
Restricted Logics for Invariants
is valid, or is unsat ∃*∀*φ decidable, but ∀*∃*φ undecidable
Bummer
SLIDE 11
Restricted Logics for Invariants
- 1. ∃-logic:
∃*φ
- 2. ∀-logic:
∀*φ
- 3. AF-logic:
boolean combinations of ∃-logic and ∀-logic ex: (∃*φ1 ∧ ∀*φ2) ∨ ∀*φ3 is valid, or is unsat ∃*∀*φ decidable, but ∀*∃*φ undecidable
Bummer
SLIDE 12
Models and Diagrams
SLIDE 13
Models and Diagrams
Model c1 c2
SLIDE 14
Models and Diagrams
Model Diagram c1 c2
SLIDE 15
Models and Diagrams
SLIDE 16
UITP: for ∃-Logic Interpolants
A B A B
SLIDE 17
m1
UITP: for ∃-Logic Interpolants
A B A B
SLIDE 18
m1
UITP: for ∃-Logic Interpolants
A B A B diag(m1)
SLIDE 19
m1
UITP: for ∃-Logic Interpolants
A B A B diag(m1) m2
SLIDE 20
m1
UITP: for ∃-Logic Interpolants
A B A B diag(m1) diag(m2) m2
SLIDE 21
m1
UITP: for ∃-Logic Interpolants
A B A B diag(m1) diag(m2) m2 m3
SLIDE 22
m1
UITP: for ∃-Logic Interpolants
A B A B diag(m1) diag(m2) diag(m3) m2 m3
SLIDE 23
UITP: for ∃-Logic Interpolants
A B A B
SLIDE 24
UITP: for ∃-Logic Interpolants
A B A B m1
SLIDE 25
UITP: for ∃-Logic Interpolants
A B A B diag(m1) m1
SLIDE 26
UITP: for ∃-Logic Interpolants
A B A B diag(m1) m1 m2
SLIDE 27
UITP: for ∃-Logic Interpolants
A B A B diag(m1) diag(m2) m1 m2
SLIDE 28
UITP: for ∃-Logic Interpolants
A B A B diag(m1) diag(m2) diag(m2) ∧ B is sat m1 m2
SLIDE 29
UITP: for ∃-Logic Interpolants
A B A B diag(m1) diag(m2) No ∃-logic Interpolant diag(m2) ∧ B is sat m1 m2
SLIDE 30
UITP Soundness
- Returning I : interpolant by construction
- Returning none is sound:
diag(m) is the strongest ∃-logic formula that m models
SLIDE 31
UITP Soundness
- Returning I : interpolant by construction
- Returning none is sound:
diag(m) is the strongest ∃-logic formula that m models A B m
SLIDE 32
∃*φ
UITP Soundness
- Returning I : interpolant by construction
- Returning none is sound:
diag(m) is the strongest ∃-logic formula that m models A B m
SLIDE 33
∃*φ
UITP Soundness
- Returning I : interpolant by construction
- Returning none is sound:
diag(m) is the strongest ∃-logic formula that m models A B m ∃*φ ∧ B still sat
SLIDE 34
EPR small model property: All EPR A have a bound k such that m ⊧ A → ∃msmall:
- msmall ⊧ A
- msmall ⊆ m
- |msmall| ≤ k
UITP Termination (and Completeness)
SLIDE 35
So m ⊧ diag(msmall) EPR small model property: All EPR A have a bound k such that m ⊧ A → ∃msmall:
- msmall ⊧ A
- msmall ⊆ m
- |msmall| ≤ k
UITP Termination (and Completeness)
SLIDE 36
So m ⊧ diag(msmall) EPR small model property: All EPR A have a bound k such that m ⊧ A → ∃msmall:
- msmall ⊧ A
- msmall ⊆ m
- |msmall| ≤ k
UITP Termination (and Completeness)
SLIDE 37
UITP: for ∀-Logic Interpolants
A B
SLIDE 38
UITP: for ∀-Logic Interpolants
A B A B
SLIDE 39
BITP: for AF-Logic Interpolants
A B
SLIDE 40
BITP: for AF-Logic Interpolants
A B m1
SLIDE 41
BITP: for AF-Logic Interpolants
A B m1
SLIDE 42
BITP: for AF-Logic Interpolants
A B m1 m2
SLIDE 43
BITP: for AF-Logic Interpolants
A B m1 m2 A B
SLIDE 44
BITP: for AF-Logic Interpolants
A B m1 m2 A B ∃*φ1 ∧ ∀*φ2
SLIDE 45
Soundness: returned I is interpolant by construction
- Rel. Compl.: Existence of AF-logic interpolant → termination
BITP Soundness and Relative Completeness
A B
SLIDE 46
Soundness: returned I is interpolant by construction
- Rel. Compl.: Existence of AF-logic interpolant → termination
BITP Soundness and Relative Completeness
A B
SLIDE 47
Soundness: returned I is interpolant by construction
- Rel. Compl.: Existence of AF-logic interpolant → termination
BITP Soundness and Relative Completeness
A B
SLIDE 48
Soundness: returned I is interpolant by construction
- Rel. Compl.: Existence of AF-logic interpolant → termination
BITP Soundness and Relative Completeness
A B
SLIDE 49
Soundness: returned I is interpolant by construction
- Rel. Compl.: Existence of AF-logic interpolant → termination
BITP Soundness and Relative Completeness
A B …
SLIDE 50
Soundness: returned I is interpolant by construction
- Rel. Compl.: Existence of AF-logic interpolant → termination
BITP Soundness and Relative Completeness
A B … If φ ∈ AF-logic And A → φ Then φ ∧ B is sat
SLIDE 51
Soundness: returned I is interpolant by construction
- Rel. Compl.: Existence of AF-logic interpolant → termination
BITP Soundness and Relative Completeness
A B … If φ ∈ AF-logic And A → φ Then φ ∧ B is sat No AF-logic Interpolant
SLIDE 52
Experiments
ITPV: an interpolation-based verifier Compared to PDR∀ [Itzhaky et al., 2014] on linked-list programs
SLIDE 53
Experiments
ITPV: an interpolation-based verifier Compared to PDR∀ [Itzhaky et al., 2014] on linked-list programs Mostly comparable in finding ∀-logic invariants ITPV can find AF-logic invariants
SLIDE 54
Experiments
ITPV: an interpolation-based verifier Compared to PDR∀ [Itzhaky et al., 2014] on linked-list programs Mostly comparable in finding ∀-logic invariants ITPV can find AF-logic invariants
WOW!
SLIDE 55