disproving inductive entailments in separation logic via
play

Disproving Inductive Entailments in Separation Logic via Base Pair - PowerPoint PPT Presentation

Disproving Inductive Entailments in Separation Logic via Base Pair Approximation James Brotherston 1 Nikos Gorogiannis 2 1 UCL 2 Middlesex University TABLEAUX15, Wroclaw, 23 Sept 2015 1/ 16 Disproof, in general Disproof is the problem of


  1. Disproving Inductive Entailments in Separation Logic via Base Pair Approximation James Brotherston 1 Nikos Gorogiannis 2 1 UCL 2 Middlesex University TABLEAUX’15, Wroclaw, 23 Sept 2015 1/ 16

  2. Disproof, in general • Disproof is the problem of showing that an entailment A ⊢ B (in some undecidable logic) is not valid. 2/ 16

  3. Disproof, in general • Disproof is the problem of showing that an entailment A ⊢ B (in some undecidable logic) is not valid. • Application in proof search: backtrack from invalid subgoals. 2/ 16

  4. Disproof, in general • Disproof is the problem of showing that an entailment A ⊢ B (in some undecidable logic) is not valid. • Application in proof search: backtrack from invalid subgoals. • Application in lemma speculation and automated theory exploration: filter out invalid “lemmas”. 2/ 16

  5. Disproof, in general • Disproof is the problem of showing that an entailment A ⊢ B (in some undecidable logic) is not valid. • Application in proof search: backtrack from invalid subgoals. • Application in lemma speculation and automated theory exploration: filter out invalid “lemmas”. • Precision usually costs. 2/ 16

  6. Disproof, in general • Disproof is the problem of showing that an entailment A ⊢ B (in some undecidable logic) is not valid. • Application in proof search: backtrack from invalid subgoals. • Application in lemma speculation and automated theory exploration: filter out invalid “lemmas”. • Precision usually costs. • Our setting: symbolic-heap separation logic with inductive definitions, widely used in program verification. 2/ 16

  7. Symbolic-heap separation logic • Terms t are either variables x, y, z . . . or the constant nil . 3/ 16

  8. Symbolic-heap separation logic • Terms t are either variables x, y, z . . . or the constant nil . • Spatial formulas F and pure formulas π given by: F ::= emp | x �→ t | P t | F ∗ F π ::= t = t | t � = t (where P a predicate symbol, t a tuple of terms). • �→ (“points-to”) denotes an individual pointer to a record in the heap. • ∗ (“separating conjunction”) demarks domain-disjoint heaps. 3/ 16

  9. Symbolic-heap separation logic • Terms t are either variables x, y, z . . . or the constant nil . • Spatial formulas F and pure formulas π given by: F ::= emp | x �→ t | P t | F ∗ F π ::= t = t | t � = t (where P a predicate symbol, t a tuple of terms). • �→ (“points-to”) denotes an individual pointer to a record in the heap. • ∗ (“separating conjunction”) demarks domain-disjoint heaps. • Symbolic heaps A given by ∃ x . Π : F , for Π a set of pure formulas. 3/ 16

  10. Inductive definitions in separation logic • Inductive predicates defined by a set of rules of form: A ⇒ P t (We typically suppress the existential quantifiers in A .) 4/ 16

  11. Inductive definitions in separation logic • Inductive predicates defined by a set of rules of form: A ⇒ P t (We typically suppress the existential quantifiers in A .) • E.g., linked list segments with root x and tail element y given by: emp ⇒ ls x x x � = nil : x �→ z ∗ ls z y ⇒ ls x y 4/ 16

  12. Inductive definitions in separation logic • Inductive predicates defined by a set of rules of form: A ⇒ P t (We typically suppress the existential quantifiers in A .) • E.g., linked list segments with root x and tail element y given by: emp ⇒ ls x x x � = nil : x �→ z ∗ ls z y ⇒ ls x y • E.g., binary trees with root x given by: x = nil : emp ⇒ bt x x � = nil : x �→ ( y, z ) ∗ bt y ∗ bt z ⇒ bt x 4/ 16

  13. Semantics • Models are stacks s : Var → Val paired with heaps h : Loc ⇀ fin Val . ◦ is union of domain-disjoint heaps; e is the empty heap; nil is a non-allocable value. 5/ 16

  14. Semantics • Models are stacks s : Var → Val paired with heaps h : Loc ⇀ fin Val . ◦ is union of domain-disjoint heaps; e is the empty heap; nil is a non-allocable value. • Forcing relation s, h | = A given by s, h | = Φ t 1 = ( � =) t 2 ⇔ s ( t 1 ) = ( � =) s ( t 2 ) s, h | = Φ emp ⇔ h = e s, h | = Φ x �→ t ⇔ dom( h ) = { s ( x ) } and h ( s ( x )) = s ( t ) ( s ( t ) , h ) ∈ � P i � Φ s, h | = Φ P i t ⇔ s, h | = Φ F 1 ∗ F 2 ⇔ ∃ h 1 , h 2 . h = h 1 ◦ h 2 and s, h 1 | = Φ F 1 and s, h 2 | = Φ F 2 ∃ v ∈ Val | z | . s [ z �→ v ] , h | s, h | = Φ ∃ z . Π : F ⇔ = Φ π for all π ∈ Π and s [ z �→ v ] , h | = Φ F 5/ 16

  15. Disproof in our logic • Entailment is here undecidable [Antoupoulos et al., FOSSACS’14], although satisfiability is decidable [Brotherston et al., CSL-LICS’14]. 6/ 16

  16. Disproof in our logic • Entailment is here undecidable [Antoupoulos et al., FOSSACS’14], although satisfiability is decidable [Brotherston et al., CSL-LICS’14]. • To disprove A ⊢ B , we need a countermodel ( s, h ) s.t. s, h | = Φ A but s, h �| = Φ B . 6/ 16

  17. Disproof in our logic • Entailment is here undecidable [Antoupoulos et al., FOSSACS’14], although satisfiability is decidable [Brotherston et al., CSL-LICS’14]. • To disprove A ⊢ B , we need a countermodel ( s, h ) s.t. s, h | = Φ A but s, h �| = Φ B . • Model checking has only very recently been shown decidable, in fact EXPTIME-complete [Brotherston et al., submitted, 2015]. 6/ 16

  18. Disproof in our logic • Entailment is here undecidable [Antoupoulos et al., FOSSACS’14], although satisfiability is decidable [Brotherston et al., CSL-LICS’14]. • To disprove A ⊢ B , we need a countermodel ( s, h ) s.t. s, h | = Φ A but s, h �| = Φ B . • Model checking has only very recently been shown decidable, in fact EXPTIME-complete [Brotherston et al., submitted, 2015]. • Enumerating and checking all possible counter-models is complete, but complicated and, I suspect, ridiculously expensive. 6/ 16

  19. Base pairs [Brotherston et al., CSL-LICS’14] • For any symbolic heap A , we can compute an overapproximation, base Φ ( A ). 7/ 16

  20. Base pairs [Brotherston et al., CSL-LICS’14] • For any symbolic heap A , we can compute an overapproximation, base Φ ( A ). Each “base pair” records, for each possible way of constructing a model of A , 1. the variables in FV ( A ) that must be allocated, and 2. the (dis)equalities over FV ( A ) ∪ { nil } that must hold. 7/ 16

  21. Base pairs [Brotherston et al., CSL-LICS’14] • For any symbolic heap A , we can compute an overapproximation, base Φ ( A ). Each “base pair” records, for each possible way of constructing a model of A , 1. the variables in FV ( A ) that must be allocated, and 2. the (dis)equalities over FV ( A ) ∪ { nil } that must hold. • E.g., recall linked list segment predicate ls : emp ⇒ ls x x x � = nil : x �→ z ∗ ls z y ⇒ ls x y 7/ 16

  22. Base pairs [Brotherston et al., CSL-LICS’14] • For any symbolic heap A , we can compute an overapproximation, base Φ ( A ). Each “base pair” records, for each possible way of constructing a model of A , 1. the variables in FV ( A ) that must be allocated, and 2. the (dis)equalities over FV ( A ) ∪ { nil } that must hold. • E.g., recall linked list segment predicate ls : emp ⇒ ls x x x � = nil : x �→ z ∗ ls z y ⇒ ls x y We obtain two base pairs: base Φ ( ls x y ) = { ( ∅ , { x = y } ) , ( { x } , { x � = nil } ) } 7/ 16

  23. Connecting base pairs and models • Base pairs are formally related to models as follows. 8/ 16

  24. Connecting base pairs and models • Base pairs are formally related to models as follows. Lemma (1) Given ( V, Π) ∈ base Φ ( A ) , a stack s s.t. s | = Π , and finite set W ⊂ Loc \ s ( V ) , then ∃ h. s, h | = Φ A and W ∩ dom( h ) = ∅ . 8/ 16

  25. Connecting base pairs and models • Base pairs are formally related to models as follows. Lemma (1) Given ( V, Π) ∈ base Φ ( A ) , a stack s s.t. s | = Π , and finite set W ⊂ Loc \ s ( V ) , then ∃ h. s, h | = Φ A and W ∩ dom( h ) = ∅ . Lemma (2) = Φ B , there is a base pair ( V, Π) ∈ base Φ ( B ) such that If s, h | s ( V ) ⊆ dom( h ) and s | = Π . 8/ 16

  26. Connecting base pairs and models • Base pairs are formally related to models as follows. Lemma (1) Given ( V, Π) ∈ base Φ ( A ) , a stack s s.t. s | = Π , and finite set W ⊂ Loc \ s ( V ) , then ∃ h. s, h | = Φ A and W ∩ dom( h ) = ∅ . Lemma (2) = Φ B , there is a base pair ( V, Π) ∈ base Φ ( B ) such that If s, h | s ( V ) ⊆ dom( h ) and s | = Π . • Consequently, we can use Lemma 1 to construct a model of A and then Lemma 2 to show it cannot be a model of B. 8/ 16

  27. Disproof “game” Game (1) • Given A ⊢ B . a move by Player 1 is a choice of: • a base pair ( X, Π) ∈ base Φ ( A ) ; • a stack s such that s | = Π ; and • a finite set W ⊂ Loc \ s ( X ) . 9/ 16

  28. Disproof “game” Game (1) • Given A ⊢ B . a move by Player 1 is a choice of: • a base pair ( X, Π) ∈ base Φ ( A ) ; • a stack s such that s | = Π ; and • a finite set W ⊂ Loc \ s ( X ) . • A response by Player 2 is a base pair ( Y, Θ) ∈ base Φ ( B ) such that s | = Θ and W ∩ s ( Y ) = ∅ . 9/ 16

  29. Disproof “game” Game (1) • Given A ⊢ B . a move by Player 1 is a choice of: • a base pair ( X, Π) ∈ base Φ ( A ) ; • a stack s such that s | = Π ; and • a finite set W ⊂ Loc \ s ( X ) . • A response by Player 2 is a base pair ( Y, Θ) ∈ base Φ ( B ) such that s | = Θ and W ∩ s ( Y ) = ∅ . • A move is winning if there is no possible response. 9/ 16

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend