An Entailment Checker for Separation Logic with Inductive Definitions
|
|
- Rosamund Parsons
- 5 years ago
- Views:
Transcription
1 An Entailment Checker for Separation Loic with Inductive Definitions Radu Iosif, Cristina Serban Université de Grenoble Alpes, CNRS, VERIMAG July 18, 2018 Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
2 Outline 1 Motivation and contributions 2 Inductive systems of predicates The entailment problem 3 Proof systems for inductive entailments Downwards inclusion check for tree automata Inference rules Restrictin the set of constraints for soundness and completeness 4 Implementation and experimental evaluation 5 Conclusions Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
3 Proram verification Given a proram P and a set of initial proram states I is there an execution of P startin from a state in I and endin in a state from a bad set B? Provin proram correctness: annotate P with assertions such that Whenever an assertion is reached, it holds for the current state of P The bad set B is excluded from the states reachable by P Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
4 Proram verification This process has been formalized by Hoare loic, reasonin about triples {φ} c {ψ} precondition φ holds c is executed postcondition ψ holds Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
5 Proram verification This process has been formalized by Hoare loic, reasonin about triples {φ} c {ψ} precondition φ holds c is executed postcondition ψ holds Usin deduction rules, we can automatically compute Stronest postcondition: sp(c, φ) Weakest precondition: wp(c, ψ) Given a specification {φ} P {ψ}, we obtain verification conditions sp(p, φ) = ψ φ = wp(p, ψ) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
6 Reasonin about dynamically allocated memory Most prorams use dynamic memory and mutable data structures Coarse memory abstractions can lead to complex verification conditions, e.. properties of untouched memory carried throuh a function body Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
7 Reasonin about dynamically allocated memory Most prorams use dynamic memory and mutable data structures Coarse memory abstractions can lead to complex verification conditions, e.. properties of untouched memory carried throuh a function body Compositional methods required to ensure scalability Local reasonin - specifications and proofs for a proram component refer only to the memory that component accesses (footprint) Modularity - analysin components in isolation and combinin the results to obtain a lobal verification condition Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
8 Separation Loic (SL) Two types of connectives: Additive:, (classic conjunction and implication) Multiplicative:, (separatin conjunction and implication) Memory (heap) a resource of finite volume which can be split Resource interpretation of the separatin connectives: decomposes current resources talks about new or fresh resources φ 1 φ 2 φ 1 φ 2 φ 1 φ 1 φ 2 φ 2 Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
9 SL features Frame rule for compositional reasonin The ability to extend local specifications reained at a deeper level with {φ} c {ψ} {φ ϕ} c {ψ ϕ} φ and ψ refer to the footprint of c, while ϕ involves only variables and heap cells not modified or mutated by c Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
10 SL features Inductive definitions Recursive data structures are ubiquitous in real-life software Described by inductively defined predicates, which can also specify the shape of the memory where they are dynamically allocated Can be used in verification conditions Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
11 Buildin a list sement ls(x, y) empty x u... y emp x = y Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
12 Buildin a list sement ls(x, y) empty emp x = y x u... y x u Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
13 Buildin a list sement ls(x, y) empty emp x = y x u... y x u ls(u, y) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
14 Buildin a list sement ls(x, y) empty emp x = y x u... y x u ls(u, y) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
15 Buildin a list sement ls(x, y) empty emp x = y x u... y x u ls(u, y) ls(x, y) ::= emp x = y u. x u ls(u, y) list sement ls a (x, y) ::= emp x = y x y u. x u ls a (u, y) acyclic list sement Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
16 Buildin a list sement ls(x, y) empty emp x = y x u... y x u ls(u, y) ls(x, y) ::= emp x = y u. x u ls(u, y) list sement ls a (x, y) ::= emp x = y x y u. x u ls a (u, y) acyclic list sement Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
17 Buildin a list sement ls(x, y) empty emp x = y x u... y x u ls(u, y) ls(x, y) ::= emp x = y u. x u ls(u, y) list sement ls a (x, y) ::= emp x = y x y u. x u ls a (u, y) acyclic list sement Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
18 Contributions Checker for entailments between predicates with inductive definitions in SL Implements a cyclic proof system inspired by an antichain-based method for lanuae inclusion of tree automata Identify semantic restrictions for soundness and completeness Decision procedures from the DPLL(T)-based SMT solver CVC4 are used to establish the satisfiability of round SL formulae Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
19 Outline 1 Motivation and contributions 2 Inductive systems of predicates The entailment problem 3 Proof systems for inductive entailments Downwards inclusion check for tree automata Inference rules Restrictin the set of constraints for soundness and completeness 4 Implementation and experimental evaluation 5 Conclusions Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
20 Syntax of SL Sort symbols: Loc, Data, Bool, where Data = Loc k with k 1 fixed Function symbols: nil Loc Variables: Var = {x, y, z,...}, each havin a sort σ Fixed interpretation I s.t. Loc I = L countably infinite, nil I = l nil L Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
21 Syntax of SL Sort symbols: Loc, Data, Bool, where Data = Loc k with k 1 fixed Function symbols: nil Loc Variables: Var = {x, y, z,...}, each havin a sort σ Fixed interpretation I s.t. Loc I = L countably infinite, nil I = l nil L Terms: t σ ::= x σ Var nil Loc t Loc 1,..., t Loc k Formulae: φ SL ::= t Bool t σ u σ ψ SL ψ SL 1 ψsl 2 ψ SL 1 ψsl 2 x σ. ψ SL x σ. ψ SL emp t Loc u Data ψ1 SL ψsl 2 ψ1 SL ψ2 SL Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
22 Semantics of SL Valuation ν under I assins a value ν(x σ ) σ I to each x σ Var Heap is a mappin h : L fin L k and Heaps is the set of heaps h 1 #h 2 dom(h 1 ) dom(h 2 ) = h = h 1 h 2 h 1 #h 2 h = h 1 h 2 ν, h = SL φ if φ is interpreted to true under valuation ν and heap h. ν, h = SL emp iff h = ν, h = SL t u iff h = {(tν I, uν I )} and tν I l nil ν, h = SL φ 1 φ 2 iff h 1, h 2. h = h 1 h 2 and ν, h i = SL φ i, i {1, 2} ν, h = SL φ 1 φ 2 iff h. if h #h and ν, h = SL φ 1 then ν, h h = SL φ 2 φ 1 φ 2 φ 1 φ 2 φ 1 φ 1 φ 2 φ 2 Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
23 Systems of inductive definitions Let Pred be a countable set of predicates p σ 1...σ n A predicate rule is a pair oal body p(x), {φ(x, x 1,..., x m ), q 1 (x 1 ),..., q m (x m )} constraint suboals Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
24 Systems of inductive definitions Let Pred be a countable set of predicates p σ 1...σ n A predicate rule is a pair oal body p(x), {φ(x, x 1,..., x m ), q 1 (x 1 ),..., q m (x m )} constraint suboals An inductive system S is a finite set of rules and we write p(x) := S R 1... R l when { p(x), R 1,..., p(x), R l } are all the predicate rules for p in S Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
25 The entailment problem F S monotone and continuous function on assinments mappin each p σ 1...σ n Pred to a set of solutions X (p) L n Heaps µs = {X F S (X ) X } least fixed point of F S and least solution of S Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
26 The entailment problem F S monotone and continuous function on assinments mappin each p σ 1...σ n Pred to a set of solutions X (p) L n Heaps µs = {X F S (X ) X } least fixed point of F S and least solution of S Given an inductive system S and predicates p σ 1...σ n and q σ 1...σ n 1,..., q σ 1...σ n m, is µs(p) m i=1 µs(q i)? We denote entailment problems as p = SL S q 1,..., q m Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
27 Examples of inductive entailments in SL ls(x, y) := Sl emp x = y x u, ls(u, y) ls a (x, y) := Sl emp x = y x y x u, ls a (u, y) ls ls a ls a = SL S l ls ls = SL S l ls a Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
28 Examples of inductive entailments in SL tree(x) := St emp x = nil x (l, r), tree(l), tree(r) tree + 1 (x) := S t x (nil, nil) x (l, r), tree + 1 (l), tree(r) x (l, r), tree(l), tree + 1 (r) tree + 2 (x) := S t x (nil, nil) x (l, r), tree + 2 (l), tree+ 2 (r) nil nil nil nil nil nil nil nil nil nil built only by tree + 1 built both by tree + 1 and tree + 2 tree + 1 =SL S t tree tree = SL S t tree + 1 tree + 2 =SL S t tree tree = SL S t tree + 2 tree + 2 =SL S t tree + 1 tree + 1 =SL S t tree + 2 Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
29 Outline 1 Motivation and contributions 2 Inductive systems of predicates The entailment problem 3 Proof systems for inductive entailments Downwards inclusion check for tree automata Inference rules Restrictin the set of constraints for soundness and completeness 4 Implementation and experimental evaluation 5 Conclusions Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
30 Nondeterministic finite tree automata An NFTA can be viewed as an inductive system states are represented by predicates predicate rules are obtained by translation from transition rules Consider a ranked alphabet F = {f (, ), (), a, b} A = {{p, p 1, p 2 }, F, {p}, A } and B = {{q, q 1, q 2 }, F, {q}, B } A = {p f (p 1, p 2 ), p 1 p1, a p 1 (), p 2 p2, b p 2 ()} B = {q f (q 1, q 2 ), q 1 q1, a q 1 (), q f (q 2, q 1 ), q 2 q2, b q 2 ()}. a f. b startin from both p and q. b f. a only startin from q Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
31 Nondeterministic finite tree automata An NFTA can be viewed as an inductive system states are represented by predicates predicate rules are obtained by translation from transition rules Consider a ranked alphabet F = {f (, ), (), a, b} A = {{p, p 1, p 2 }, F, {p}, A } and B = {{q, q 1, q 2 }, F, {q}, B } A = {p f (p 1, p 2 ), p 1 p1, a p 1 (), p 2 p2, b p 2 ()} B = {q f (q 1, q 2 ), q 1 q1, a q 1 (), q f (q 2, q 1 ), q 2 q2, b q 2 ()}. a f. b startin from both p and q. b f. a only startin from q Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
32 Nondeterministic finite tree automata An NFTA can be viewed as an inductive system states are represented by predicates predicate rules are obtained by translation from transition rules Consider a ranked alphabet F = {f (, ), (), a, b} A = {{p, p 1, p 2 }, F, {p}, A } and B = {{q, q 1, q 2 }, F, {q}, B } A = {p f (p 1, p 2 ), p 1 p1, a p 1 (), p 2 p2, b p 2 ()} B = {q f (q 1, q 2 ), q 1 q1, a q 1 (), q f (q 2, q 1 ), q 2 q2, b q 2 ()}. a f. b startin from both p and q. b f. a only startin from q Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
33 Nondeterministic finite tree automata An NFTA can be viewed as an inductive system states are represented by predicates predicate rules are obtained by translation from transition rules Consider a ranked alphabet F = {f (, ), (), a, b} A = {{p, p 1, p 2 }, F, {p}, A } and B = {{q, q 1, q 2 }, F, {q}, B } A = {p f (p 1, p 2 ), p 1 p1, a p 1 (), p 2 p2, b p 2 ()} B = {q f (q 1, q 2 ), q 1 q1, a q 1 (), q f (q 2, q 1 ), q 2 q2, b q 2 ()}. a f. b startin from both p and q. b f. a only startin from q Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
34 Nondeterministic finite tree automata An NFTA can be viewed as an inductive system states are represented by predicates predicate rules are obtained by translation from transition rules Consider a ranked alphabet F = {f (, ), (), a, b} A = {{p, p 1, p 2 }, F, {p}, A } and B = {{q, q 1, q 2 }, F, {q}, B } A = {p f (p 1, p 2 ), p 1 p1, a p 1 (), p 2 p2, b p 2 ()} B = {q f (q 1, q 2 ), q 1 q1, a q 1 (), q f (q 2, q 1 ), q 2 q2, b q 2 ()}. a f. b startin from both p and q. b f. a only startin from q Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
35 Lanuae inclusion for tree automata A = {{p, p 1, p 2 }, F, {p}, A } and B = {{q, q 1, q 2 }, F, {q}, B } A = {p f (p 1, p 2 ), p 1 p1, a p 1 (), p 2 p2, b p 2 ()} B = {q f (q 1, q 2 ), q 1 q1, a q 1 (), q f (q 2, q 1 ), q 2 q2, b q 2 ()}. a f. b startin from both p and q. b f. a only startin from q Lanuae inclusion: whether L(A) L(B), where L(A) = s I A L(A, s) L(A) L(B) L(A, p) L(B, q) p = SL S q Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
36 Downwards inclusion check for tree automata A = { p f a (p 1, p 2 ), p 1 p1, p 1 (), b p 2 p2, p 2 () } (p, {q}) B = { q f a (q 1, q 2 ), q 1 q1, q 1 (), f q f b (q 2, q 1 ), q 2 q2, q 2 () } ((p 1, p 2 ), {(q 1, q 2 ), (q 2, q 1 )}) (p 1, {q 1, q 2 }) (p 1, {q 1 }) (p 2, {q 2 }) (p 2, {q 2, q 1 }) a a b b ((), {()}) (p 1, {q 1, q 2 }) ((), {()}) (p 1, {q 1 }) ((), {()}) (p 2, {q 2 }) ((), {()}) (p 2, {q 2, q 1 }) Efficient Inclusion Checkin on Explicit and Semi-symbolic Tree Automata [L. Hoĺık, O. Lenál, J. Simácek, T. Vojnar ATVA 2011] Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
37 Downwards inclusion check for tree automata A = { p f a (p 1, p 2 ), p 1 p1, p 1 (), b p 2 p2, p 2 () } (p, {q}) B = { q f a (q 1, q 2 ), q 1 q1, q 1 (), f q f b (q 2, q 1 ), q 2 q2, q 2 () } ((p 1, p 2 ), {(q 1, q 2 ), (q 2, q 1 )}) (p 1, {q 1, q 2 }) (p 1, {q 1 }) (p 2, {q 2 }) (p 2, {q 2, q 1 }) a a b b ((), {()}) (p 1, {q 1, q 2 }) ((), {()}) (p 1, {q 1 }) ((), {()}) (p 2, {q 2 }) ((), {()}) (p 2, {q 2, q 1 }) Efficient Inclusion Checkin on Explicit and Semi-symbolic Tree Automata [L. Hoĺık, O. Lenál, J. Simácek, T. Vojnar ATVA 2011] Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
38 Downwards inclusion check for tree automata A = { p f a (p 1, p 2 ), p 1 p1, p 1 (), b p 2 p2, p 2 () } (p, {q}) B = { q f a (q 1, q 2 ), q 1 q1, q 1 (), f q f b (q 2, q 1 ), q 2 q2, q 2 () } ((p 1, p 2 ), {(q 1, q 2 ), (q 2, q 1 )}) (p 1, {q 1, q 2 }) (p 1, {q 1 }) (p 2, {q 2 }) (p 2, {q 2, q 1 }) a a b b ((), {()}) (p 1, {q 1, q 2 }) ((), {()}) (p 1, {q 1 }) ((), {()}) (p 2, {q 2 }) ((), {()}) (p 2, {q 2, q 1 }) L(A, p 1 ) L(A, p 2 ) L(B, q 1 ) L(B, q 2 ) L(B, q 2 ) L(B, q 1 ) Efficient Inclusion Checkin on Explicit and Semi-symbolic Tree Automata [L. Hoĺık, O. Lenál, J. Simácek, T. Vojnar ATVA 2011] Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
39 Downwards inclusion check for tree automata A = { p f a (p 1, p 2 ), p 1 p1, p 1 (), b p 2 p2, p 2 () } (p, {q}) B = { q f a (q 1, q 2 ), q 1 q1, q 1 (), f q f b (q 2, q 1 ), q 2 q2, q 2 () } ((p 1, p 2 ), {(q 1, q 2 ), (q 2, q 1 )}) (p 1, {q 1, q 2 }) (p 1, {q 1 }) (p 2, {q 2 }) (p 2, {q 2, q 1 }) a a b b ((), {()}) (p 1, {q 1, q 2 }) ((), {()}) (p 1, {q 1 }) ((), {()}) (p 2, {q 2 }) ((), {()}) (p 2, {q 2, q 1 }) L(A, p 1 ) L(A, p 2 ) L(B, q 1 ) L(B, q 2 ) L(B, q 2 ) L(B, q 1 ) Efficient Inclusion Checkin on Explicit and Semi-symbolic Tree Automata [L. Hoĺık, O. Lenál, J. Simácek, T. Vojnar ATVA 2011] Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
40 Downwards inclusion check for tree automata A = { p f a (p 1, p 2 ), p 1 p1, p 1 (), b p 2 p2, p 2 () } (p, {q}) B = { q f a (q 1, q 2 ), q 1 q1, q 1 (), f q f b (q 2, q 1 ), q 2 q2, q 2 () } ((p 1, p 2 ), {(q 1, q 2 ), (q 2, q 1 )}) (p 1, {q 1, q 2 }) (p 1, {q 1 }) (p 2, {q 2 }) (p 2, {q 2, q 1 }) a a b b ((), {()}) (p 1, {q 1, q 2 }) ((), {()}) (p 1, {q 1 }) ((), {()}) (p 2, {q 2 }) ((), {()}) (p 2, {q 2, q 1 }) Check successful when reachin ((), S) with () S Efficient Inclusion Checkin on Explicit and Semi-symbolic Tree Automata [L. Hoĺık, O. Lenál, J. Simácek, T. Vojnar ATVA 2011] Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
41 Downwards inclusion check for tree automata A = { p f a (p 1, p 2 ), p 1 p1, p 1 (), b p 2 p2, p 2 () } (p, {q}) B = { q f a (q 1, q 2 ), q 1 q1, q 1 (), f q f b (q 2, q 1 ), q 2 q2, q 2 () } ((p 1, p 2 ), {(q 1, q 2 ), (q 2, q 1 )}) (p 1, {q 1, q 2 }) (p 1, {q 1 }) (p 2, {q 2 }) (p 2, {q 2, q 1 }) a a b b ((), {()}) (p 1, {q 1, q 2 }) ((), {()}) (p 1, {q 1 }) ((), {()}) (p 2, {q 2 }) ((), {()}) (p 2, {q 2, q 1 }) Check successful when reachin an already processed pair (p, S) Efficient Inclusion Checkin on Explicit and Semi-symbolic Tree Automata [L. Hoĺık, O. Lenál, J. Simácek, T. Vojnar ATVA 2011] Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
42 Downwards inclusion check for tree automata A = { p f a (p 1, p 2 ), p 1 p1, p 1 (), b p 2 p2, p 2 () } (p, {q}) B = { q f a (q 1, q 2 ), q 1 q1, q 1 (), f q f b (q 2, q 1 ), q 2 q2, q 2 () } ((p 1, p 2 ), {(q 1, q 2 ), (q 2, q 1 )}) (p 1, {q 1, q 2 }) (p 1, {q 1 }) (p 2, {q 2 }) (p 2, {q 2, q 1 }) a a b b ((), {()}) (p 1, {q 1, q 2 }) ((), {()}) (p 1, {q 1 }) ((), {()}) (p 2, {q 2 }) ((), {()}) (p 2, {q 2, q 1 }) Efficient Inclusion Checkin on Explicit and Semi-symbolic Tree Automata [L. Hoĺık, O. Lenál, J. Simácek, T. Vojnar ATVA 2011] Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
43 Sequents and inference rules a pair (p, {q 1,..., q m }) Γ set of formulae and predicate atoms ( conjunction) a sequent Γ set of conjunctions over formulae and predicate atoms (disjunction) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
44 Sequents and inference rules a pair (p, {q 1,..., q m }) Γ set of formulae and predicate atoms ( conjunction) a sequent Γ set of conjunctions over formulae and predicate atoms (disjunction) An inference rule is of the form: IR Γ Γ n n Γ. C Γ p p side conditions Γ is the consequent Γ i i are the antecedents Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
45 Sequents and inference rules a pair (p, {q 1,..., q m }) Γ set of formulae and predicate atoms ( conjunction) a sequent Γ set of conjunctions over formulae and predicate atoms (disjunction) An inference rule is of the form: IR Γ Γ n n Γ. C Γ p p side conditions Γ is the consequent Γ i i are the antecedents, we write if n = 0 Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
46 Sequents and inference rules a pair (p, {q 1,..., q m }) Γ set of formulae and predicate atoms ( conjunction) a sequent Γ set of conjunctions over formulae and predicate atoms (disjunction) An inference rule is of the form: IR Γ Γ n n Γ. C Γ p p side conditions Γ is the consequent Γ i i are the antecedents, we write if n = 0 Γ p p is the pivot of the rule, ancestor of the consequent Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
47 Sequents and inference rules a pair (p, {q 1,..., q m }) Γ set of formulae and predicate atoms ( conjunction) a sequent Γ set of conjunctions over formulae and predicate atoms (disjunction) An inference rule is of the form: IR Γ Γ n n Γ. C Γ p p side conditions Γ is the consequent Γ i i are the antecedents, we write if n = 0 Γ p p is the pivot of the rule, ancestor of the consequent C is a pivot constraint on the path from the pivot to the consequent Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
48 Derivations and proofs IR 4 IR 5 Γ 4 4 Γ 5 5 IR 2 IR 3 Γ 2 2 Γ 3 3 IR 1 Γ 1 1 Derivation (possibly infinite) IR 4 IR 5 Γ 4 4 Γ 5 5 IR 2 IR 3 Γ 2 2 Γ 3 3 IR 1 Γ 1 1 Proof (finite, all leaves are ) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
49 Derivations and proofs Γ Γ SL S Soundness - If there exists a proof for Γ, then the correspondin entailment holds Completeness - If the entailment holds, then there exists a proof for its correspondin sequent Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
50 Inference rules - LU (left unfold) ID tree + 2 (l 0) tree + 1 (l 0) SP tree + 2 (l 0), tree + 2 (r 0) tree 1 + (l 0) tree(r 0 ), tree(l 0 ) tree + 1 (r 0) RD AX x (l 0, r 0 x), tree (nil, 2 + (l nil) 0), tree x 2 + (r 0) (nil, xnil),(nil, nil), l l 1 r. x (l 1, r 1 ) tree + 1 (l 1 r 1. x (l 1, r 1 ) tree + 1) tree(r 1 ), 1 (l 1) tree(r 1 ), l l 1 r. x 1, r 1 ) tree(l 1 ) tree + 1 (r 1 r 1. x (l 1, r 1 ) tree(l 1 ) + 1 (r 1) 1) RU RU x (l 0, rx 0 ), tree (nil, + 2 (l nil) 0), tree tree 2 + (r+ 10) (x) tree + 1 (x) LU tree + 2 (x) tree + 1 (x) tree + 2 (x) := S t x (nil, nil) x (l, r), tree + 2 (l), tree+ 2 (r) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
51 Inference rules - RU (riht unfold) ID tree + 2 (l 0) tree + 1 (l 0) SP tree + 2 (l 0), tree + 2 (r 0) tree 1 + (l 0) tree(r 0 ), tree(l 0 ) tree + 1 (r 0) RD AX x (l 0, r 0 x), tree (nil, 2 + (l nil) 0), tree x 2 + (r 0) (nil, xnil),(nil, nil), l l 1 r. x (l 1, r 1 ) tree + 1 (l 1 r 1. x (l 1, r 1 ) tree + 1) tree(r 1 ), 1 (l 1) tree(r 1 ), l l 1 r. x 1, r 1 ) tree(l 1 ) tree + 1 (r 1 r 1. x (l 1, r 1 ) tree(l 1 ) + 1 (r 1) 1) RU RU x (l 0, rx 0 ), tree (nil, + 2 (l nil) 0), tree tree 2 + (r+ 10) (x) tree + 1 (x) LU tree + 2 (x) tree + 1 (x) tree + 1 (x) := S t x (nil, nil) x (l, r), tree + 1 (l), tree(r) x (l, r), tree(l), tree + 1 (r) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
52 Inference rules - AX (axiom) ID tree + 2 (l 0) tree + 1 (l 0) SP tree + 2 (l 0), tree + 2 (r 0) tree 1 + (l 0) tree(r 0 ), tree(l 0 ) tree + 1 (r 0) RD AX x (l 0, r 0 x), tree (nil, 2 + (l nil) 0), tree x 2 + (r 0) (nil, xnil),(nil, nil), l l 1 r. x (l 1, r 1 ) tree + 1 (l 1 r 1. x (l 1, r 1 ) tree + 1) tree(r 1 ), 1 (l 1) tree(r 1 ), l l 1 r. x 1, r 1 ) tree(l 1 ) tree + 1 (r 1 r 1. x (l 1, r 1 ) tree(l 1 ) + 1 (r 1) 1) RU RU x (l 0, rx 0 ), tree (nil, + 2 (l nil) 0), tree tree 2 + (r+ 10) (x) tree + 1 (x) LU tree + 2 (x) tree + 1 (x) Similar to reachin a pair ((), S) with () S in the NFTA inclusion check Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
53 Inference rules - LU (left unfold) RD RU SP tree + 2 (l 0) tree + 1 (l 0) tree + 2 (l 0), tree + 2 (r 0) tree + 1 (l 0) tree(r 0 ), tree(l 0 ) tree + 1 (r 0) x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) x (nil, nil), l 1 r 1. x (l 1, r 1 ) tree + 1 (l 1) tree(r 1 ), l 1 r 1. x (l 1, r 1 ) tree(l 1 ) tree + 1 (r 1) LU ID x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) tree + 1 (x) tree + 2 (x) tree + 1 (x) tree + 2 (x) := S t x (nil, nil) x (l, r), tree + 2 (l), tree+ 2 (r) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
54 Inference rules - RU (riht unfold) RD RU SP tree + 2 (l 0) tree + 1 (l 0) tree + 2 (l 0), tree + 2 (r 0) tree + 1 (l 0) tree(r 0 ), tree(l 0 ) tree + 1 (r 0) x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) x (nil, nil), l 1 r 1. x (l 1, r 1 ) tree + 1 (l 1) tree(r 1 ), l 1 r 1. x (l 1, r 1 ) tree(l 1 ) tree + 1 (r 1) LU ID x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) tree + 1 (x) tree + 2 (x) tree + 1 (x) tree + 1 (x) := S t x (nil, nil) x (l, r), tree + 1 (l), tree(r) x (l, r), tree(l), tree + 1 (r) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
55 Inference rules - RD (reduce) RD RU SP tree + 2 (l 0) tree + 1 (l 0) tree + 2 (l 0), tree + 2 (r 0) tree + 1 (l 0) tree(r 0 ), tree(l 0 ) tree + 1 (r 0) x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) x (nil, nil), l 1 r 1. x (l 1, r 1 ) tree + 1 (l 1) tree(r 1 ), l 1 r 1. x (l 1, r 1 ) tree(l 1 ) tree + 1 (r 1) LU ID x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) tree + 1 (x) tree + 2 (x) tree + 1 (x) x (l 0, r 0 ) = SL x (nil, nil) x (l 0, r 0 ) = SL l 1 r 1. x (l 1, r 1 ) θ = {(l 1, l 0 ), (r 1, r 0 )} LU + RU + RD encode a transition action in the NFTA inclusion check Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
56 Inference rules - SP (split) RD RU SP tree + 2 (l 0) tree + 1 (l 0) tree + 2 (l 0), tree + 2 (r 0) tree + 1 (l 0) tree(r 0 ), tree(l 0 ) tree + 1 (r 0) x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) x (nil, nil), l 1 r 1. x (l 1, r 1 ) tree + 1 (l 1) tree(r 1 ), l 1 r 1. x (l 1, r 1 ) tree(l 1 ) tree + 1 (r 1) LU ID x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) tree + 1 (x) tree + 2 (x) tree + 1 (x) tree + 2 (l 0) tree + 1 (l 0), tree(l 0 ) tree + 2 (l 0) tree + 1 (l 0) tree + 2 (l 0) tree(l 0 ) tree + 2 (r 0) tree(r 0 ), tree + 1 (r 0) tree + 2 (l 0) tree + 1 (l 0) tree + 2 (l 0) tree(l 0 ) tree + 2 (r 0) tree(r 0 ), tree + 1 (r 0) Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
57 Inference rules - ID (infinite descent) RD RU SP tree + 2 (l 0) tree + 1 (l 0) tree + 2 (l 0), tree + 2 (r 0) tree + 1 (l 0) tree(r 0 ), tree(l 0 ) tree + 1 (r 0) x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) x (nil, nil), l 1 r 1. x (l 1, r 1 ) tree + 1 (l 1) tree(r 1 ), l 1 r 1. x (l 1, r 1 ) tree(l 1 ) tree + 1 (r 1) LU ID x (l 0, r 0 ), tree + 2 (l 0), tree + 2 (r 0) tree + 1 (x) tree + 2 (x) tree + 1 (x) Backlink from Γθ θ to the pivot Γ with Pivot constraint: LU required between the pivot and the consequent Generalizes the reachin an already seen pair in the NFTA inclusion check Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
58 Outline 1 Motivation and contributions 2 Inductive systems of predicates The entailment problem 3 Proof systems for inductive entailments Downwards inclusion check for tree automata Inference rules Restrictin the set of constraints for soundness and completeness 4 Implementation and experimental evaluation 5 Conclusions Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
59 Ranked Suboal models decrease in a well-founded domain w.r.t the oal models If h 1 = h h 2, then h 2 h 1 and h 2 h 1 if, moreover, h p(x), {φ(x, x 1,..., x m ), q 1 (x 1 ),..., q i (x 1 ),..., q m (x m )} h = h 0 h 1... h i... h m h i h Necessary to ensure proress alon a recurrin branch closed by ID Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
60 Soundness Inference rules are sound for entailments with ranked inductive definitions LU, RU, RD, SP, AX are locally sound Global soundness of proofs usin ID: a counterexample cex 1 for the root Γ 1 1 of a proof can be propaated alon an infinite trace antecedent or pivot Γ 1 1 Γ Γ i i Γ i+1 i+1... cex 1 cex 2... cex i cex i+1... Ranked + LU required by ID counterexample strictly decreases infinitely often, contradictin the well-foundedness of the chosen domain Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
61 Completeness Three additional semantic restrictions on the constraints of an inductive system - safe removal of constraints from sequents when usin RD Reduce to checkin satisfiability of -quantified SL formulae, which is PSPACE-complete for the -free frament Proofs can be discovered by employin a search stratey S = (LU RU RD SP?) LU? RU (AX ID) Only for definitions eneratin matchin coverae trees of the heap models Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
62 Completeness Only for definitions eneratin matchin coverae trees of the heap models ls = SL S r ls(x, y) := Sr emp x = y x u, ls(u, y) ls r (x, y) := Sr emp x = y u y, ls r (x, u) ls r and ls r = SL S r ls hold, but we cannot build a proof v = 1, 4 and h = {(1, 2), (2, 3), (3, 4)} solution for both ls and ls r, but the two definitions enerate different coverae trees for h t = {(1, 2)} {(2, 3)} {(3, 4)} t r = {(3, 4)} {(2, 3)} {(1, 2)} Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
63 Outline 1 Motivation and contributions 2 Inductive systems of predicates The entailment problem 3 Proof systems for inductive entailments Downwards inclusion check for tree automata Inference rules Restrictin the set of constraints for soundness and completeness 4 Implementation and experimental evaluation 5 Conclusions Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
64 Inductor checker for inductive entailments in SL Written in C++, queries CVC4 to check restrictions and noninductive entailments when applyin AX or RD Inductive definitions and entailment queries are iven as SMT-LIB scripts Explores all possible derivations usin a tree structure with two types of nodes: SNodes (for sequents) and RNodes (for inference rules) Node status: unknown, valid, invalid, updates propaate to ancestors S 1 S 1 S 1 IR 1 IR 2 IR 1 IR 2 IR 1 IR 2 S 2 S 3 S 4 S 2 S 3 S 4 S 2 S 3 S 4 Output: valid + proof, invalid + counterexample Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
65 Experimental evaluation LHS RHS R Sequents Rules H Seq H LU H SP T CVC4 tree + 1 tree V s 9 tree + 2 tree V s 7 tree + 2 tree + 1 V s 37 tree tree + 1 I s 7 tree tree + 2 I s 5 tree + 1 tree + 2 I s 14 ls a ls V s 2 ls ls a I s 2 Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
66 Outline 1 Motivation and contributions 2 Inductive systems of predicates The entailment problem 3 Proof systems for inductive entailments Downwards inclusion check for tree automata Inference rules Restrictin the set of constraints for soundness and completeness 4 Implementation and experimental evaluation 5 Conclusions Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
67 Conclusions Cyclic proof system for entailments between inductive predicates in SL Infinite Descent principle, inductive invariants produced durin proof search Semantic boundaries within which soundness and completeness are ensured Inductor uses a search stratey to explore possible derivations and outputs a proof if an entailment is shown to be valid, or counterexamples if it is not Cristina Serban (VERIMAG) An Entailment Checker for SL with Inductive Definitions July 18, /44
Learning Goals of CS245 Logic and Computation
Learning Goals of CS245 Logic and Computation Alice Gao April 27, 2018 Contents 1 Propositional Logic 2 2 Predicate Logic 4 3 Program Verification 6 4 Undecidability 7 1 1 Propositional Logic Introduction
More informationA Short Introduction to Hoare Logic
A Short Introduction to Hoare Logic Supratik Chakraborty I.I.T. Bombay June 23, 2008 Supratik Chakraborty (I.I.T. Bombay) A Short Introduction to Hoare Logic June 23, 2008 1 / 34 Motivation Assertion checking
More informationarxiv: v4 [cs.lo] 30 Apr 2018
Complete Cyclic Proof Systems for Inductive Entailments Radu Iosif and Cristina Serban arxiv:1707.02415v4 [cs.lo] 30 Apr 2018 CNRS/VERIMAG/Université Grenoble Alpes {Radu.Iosif,Cristina.Serban}@univ-grenoble-alpes.fr
More informationPropositional Logic: Models and Proofs
Propositional Logic: Models and Proofs C. R. Ramakrishnan CSE 505 1 Syntax 2 Model Theory 3 Proof Theory and Resolution Compiled at 11:51 on 2016/11/02 Computing with Logic Propositional Logic CSE 505
More informationAxiomatic Semantics. Lecture 9 CS 565 2/12/08
Axiomatic Semantics Lecture 9 CS 565 2/12/08 Axiomatic Semantics Operational semantics describes the meaning of programs in terms of the execution steps taken by an abstract machine Denotational semantics
More informationDeductive Verification
Deductive Verification Mooly Sagiv Slides from Zvonimir Rakamaric First-Order Logic A formal notation for mathematics, with expressions involving Propositional symbols Predicates Functions and constant
More informationProgram Verification using Separation Logic Lecture 0 : Course Introduction and Assertion Language. Hongseok Yang (Queen Mary, Univ.
Program Verification using Separation Logic Lecture 0 : Course Introduction and Assertion Language Hongseok Yang (Queen Mary, Univ. of London) Dream Automatically verify the memory safety of systems software,
More informationPropositional Logic Language
Propositional Logic Language A logic consists of: an alphabet A, a language L, i.e., a set of formulas, and a binary relation = between a set of formulas and a formula. An alphabet A consists of a finite
More informationCompositional Entailment Checking for a Fragment of Separation Logic
Compositional Entailment Checking for a Fragment of Separation Logic Constantin Enea 1, Ondřej Lengál 2, Mihaela Sighireanu 1, and Tomáš Vojnar 2 1 Univ. Paris Diderot, LIAFA CNRS UMR 7089 2 FIT, Brno
More informationNested Interpolants. Matthias Heizmann Jochen Hoenicke Andreas Podelski. Abstract. 1. Introduction. University of Freiburg, Germany
c ACM 2010. This is the author s version of the work. t is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Principles of Programming
More informationAutomata-Theoretic Model Checking of Reactive Systems
Automata-Theoretic Model Checking of Reactive Systems Radu Iosif Verimag/CNRS (Grenoble, France) Thanks to Tom Henzinger (IST, Austria), Barbara Jobstmann (CNRS, Grenoble) and Doron Peled (Bar-Ilan University,
More informationDesign of Distributed Systems Melinda Tóth, Zoltán Horváth
Design of Distributed Systems Melinda Tóth, Zoltán Horváth Design of Distributed Systems Melinda Tóth, Zoltán Horváth Publication date 2014 Copyright 2014 Melinda Tóth, Zoltán Horváth Supported by TÁMOP-412A/1-11/1-2011-0052
More informationFloyd-Hoare Style Program Verification
Floyd-Hoare Style Program Verification Deepak D Souza Department of Computer Science and Automation Indian Institute of Science, Bangalore. 9 Feb 2017 Outline of this talk 1 Overview 2 Hoare Triples 3
More informationHoare Calculus and Predicate Transformers
Hoare Calculus and Predicate Transformers Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.uni-linz.ac.at
More informationPřednáška 12. Důkazové kalkuly Kalkul Hilbertova typu. 11/29/2006 Hilbertův kalkul 1
Přednáška 12 Důkazové kalkuly Kalkul Hilbertova typu 11/29/2006 Hilbertův kalkul 1 Formal systems, Proof calculi A proof calculus (of a theory) is given by: A. a language B. a set of axioms C. a set of
More informationMatching Logic: Syntax and Semantics
Matching Logic: Syntax and Semantics Grigore Roșu 1 and Traian Florin Șerbănuță 2 1 University of Illinois at Urbana-Champaign, USA grosu@illinois.edu 2 University of Bucharest, Romania traian.serbanuta@unibuc.ro
More informationClassical Program Logics: Hoare Logic, Weakest Liberal Preconditions
Chapter 1 Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions 1.1 The IMP Language IMP is a programming language with an extensible syntax that was developed in the late 1960s. We will
More informationNatural Deduction. Formal Methods in Verification of Computer Systems Jeremy Johnson
Natural Deduction Formal Methods in Verification of Computer Systems Jeremy Johnson Outline 1. An example 1. Validity by truth table 2. Validity by proof 2. What s a proof 1. Proof checker 3. Rules of
More informationProgram Analysis Part I : Sequential Programs
Program Analysis Part I : Sequential Programs IN5170/IN9170 Models of concurrency Program Analysis, lecture 5 Fall 2018 26. 9. 2018 2 / 44 Program correctness Is my program correct? Central question for
More informationAutomatic Parallelization with Separation Logic
Automatic Parallelization with Separation Logic Mohammad Raza, Cristiano Calcagno, and Philippa Gardner Department of Computing, Imperial College London 180 Queen s Gate, London SW7 2AZ, UK {mraza,ccris,pg}@doc.ic.ac.uk
More informationTrace Diagnostics using Temporal Implicants
Trace Diagnostics using Temporal Implicants ATVA 15 Thomas Ferrère 1 Dejan Nickovic 2 Oded Maler 1 1 VERIMAG, University of Grenoble / CNRS 2 Austrian Institute of Technology October 14, 2015 Motivation
More informationSpatial Interpolants
Spatial Interpolants Aws Albargouthi 1, Josh Berdine 2, Byron Cook 3, and Zachary Kincaid 4 University of Wisconsin-Madison 1, Microsoft Research 2, University College London 3, University of Toronto 4
More informationFormal Methods in Software Engineering
Formal Methods in Software Engineering An Introduction to Model-Based Analyis and Testing Vesal Vojdani Department of Computer Science University of Tartu Fall 2014 Vesal Vojdani (University of Tartu)
More informationScalable and Accurate Verification of Data Flow Systems. Cesare Tinelli The University of Iowa
Scalable and Accurate Verification of Data Flow Systems Cesare Tinelli The University of Iowa Overview AFOSR Supported Research Collaborations NYU (project partner) Chalmers University (research collaborator)
More informationTHE AUSTRALIAN NATIONAL UNIVERSITY Second Semester COMP2600/COMP6260 (Formal Methods for Software Engineering)
THE AUSTRALIAN NATIONAL UNIVERSITY Second Semester 2016 COMP2600/COMP6260 (Formal Methods for Software Engineering) Writing Period: 3 hours duration Study Period: 15 minutes duration Permitted Materials:
More informationCompositional Entailment Checking for a Fragment of Separation Logic
Compositional Entailment Checking for a Fragment of Separation Logic FIT BUT Technical Report Series Constantin Enea, Ondřej Lengál, Mihaela Sighireanu, and Tomáš Vojnar Technical Report No. FIT-TR-2014-01
More informationComputation and Logic Definitions
Computation and Logic Definitions True and False Also called Boolean truth values, True and False represent the two values or states an atom can assume. We can use any two distinct objects to represent
More informationUnifying Theories of Programming
1&2 Unifying Theories of Programming Unifying Theories of Programming 3&4 Theories Unifying Theories of Programming designs predicates relations reactive CSP processes Jim Woodcock University of York May
More informationPropositional Logic: Part II - Syntax & Proofs 0-0
Propositional Logic: Part II - Syntax & Proofs 0-0 Outline Syntax of Propositional Formulas Motivating Proofs Syntactic Entailment and Proofs Proof Rules for Natural Deduction Axioms, theories and theorems
More informationHoare Logic I. Introduction to Deductive Program Verification. Simple Imperative Programming Language. Hoare Logic. Meaning of Hoare Triples
Hoare Logic I Introduction to Deductive Program Verification Işıl Dillig Program Spec Deductive verifier FOL formula Theorem prover valid contingent Example specs: safety (no crashes), absence of arithmetic
More informationRecent Developments in and Around Coaglgebraic Logics
Recent Developments in and Around Coaglgebraic Logics D. Pattinson, Imperial College London (in collaboration with G. Calin, R. Myers, L. Schröder) Example: Logics in Knowledge Representation Knowledge
More informationA Decidable Fragment of Separation Logic
A Decidable Fragment of Separation Logic Josh Berdine 1, Cristiano Calcagno 2, and Peter W. O Hearn 1 1 Queen Mary, University of London {berdine,ohearn}@dcs.qmul.ac.uk 2 Imperial College, London ccris@doc.ic.ac.uk
More informationLOGIC PROPOSITIONAL REASONING
LOGIC PROPOSITIONAL REASONING WS 2017/2018 (342.208) Armin Biere Martina Seidl biere@jku.at martina.seidl@jku.at Institute for Formal Models and Verification Johannes Kepler Universität Linz Version 2018.1
More informationPredicate Calculus. Formal Methods in Verification of Computer Systems Jeremy Johnson
Predicate Calculus Formal Methods in Verification of Computer Systems Jeremy Johnson Outline 1. Motivation 1. Variables, quantifiers and predicates 2. Syntax 1. Terms and formulas 2. Quantifiers, scope
More informationA Decision Procedure for Separation Logic in SMT
A Decision Procedure for Separation Logic in SMT Andrew Reynolds 1, Radu Iosif 2, Cristina Serban 2, and Tim King 3 1 The University of Iowa 2 Université de Grenoble Alpes, CNRS, VERIMAG 3 Google Inc.
More informationIC3 and Beyond: Incremental, Inductive Verification
IC3 and Beyond: Incremental, Inductive Verification Aaron R. Bradley ECEE, CU Boulder & Summit Middle School IC3 and Beyond: Incremental, Inductive Verification 1/62 Induction Foundation of verification
More informationProgram Verification Using Separation Logic
Program Verification Using Separation Logic Cristiano Calcagno Adapted from material by Dino Distefano Lecture 1 Goal of the course Study Separation Logic having automatic verification in mind Learn how
More informationValidating QBF Invalidity in HOL4
Interactive Theorem Proving (ITP) 14 July, 2010 Quantified Boolean Formulae Quantified Boolean Formulae Motivation System Overview Related Work QBF = propositional logic + quantifiers over Boolean variables
More informationRelations to first order logic
An Introduction to Description Logic IV Relations to first order logic Marco Cerami Palacký University in Olomouc Department of Computer Science Olomouc, Czech Republic Olomouc, November 6 th 2014 Marco
More informationPREDICATE LOGIC: UNDECIDABILITY AND INCOMPLETENESS HUTH AND RYAN 2.5, SUPPLEMENTARY NOTES 2
PREDICATE LOGIC: UNDECIDABILITY AND INCOMPLETENESS HUTH AND RYAN 2.5, SUPPLEMENTARY NOTES 2 Neil D. Jones DIKU 2005 14 September, 2005 Some slides today new, some based on logic 2004 (Nils Andersen) OUTLINE,
More informationUniversität Augsburg
Universität Augsburg Algebraic Separation Logic H.-H. Dang P. Höfner B. Möller Report 2010-06 July 2010 Institut für Informatik D-86135 Augsburg Copyright c H.-H. Dang P. Höfner B. Möller Institut für
More informationIntroduction to Temporal Logic. The purpose of temporal logics is to specify properties of dynamic systems. These can be either
Introduction to Temporal Logic The purpose of temporal logics is to specify properties of dynamic systems. These can be either Desired properites. Often liveness properties like In every infinite run action
More informationAxiomatic Semantics: Verification Conditions. Review of Soundness and Completeness of Axiomatic Semantics. Announcements
Axiomatic Semantics: Verification Conditions Meeting 12, CSCI 5535, Spring 2009 Announcements Homework 4 is due tonight Wed forum: papers on automated testing using symbolic execution 2 Questions? Review
More informationLinear-time Temporal Logic
Linear-time Temporal Logic Pedro Cabalar Department of Computer Science University of Corunna, SPAIN cabalar@udc.es 2015/2016 P. Cabalar ( Department Linear oftemporal Computer Logic Science University
More informationChapter 11: Automated Proof Systems
Chapter 11: Automated Proof Systems SYSTEM RS OVERVIEW Hilbert style systems are easy to define and admit a simple proof of the Completeness Theorem but they are difficult to use. Automated systems are
More informationLecture Notes on Software Model Checking
15-414: Bug Catching: Automated Program Verification Lecture Notes on Software Model Checking Matt Fredrikson André Platzer Carnegie Mellon University Lecture 19 1 Introduction So far we ve focused on
More informationPropositional Logic: Syntax
Logic Logic is a tool for formalizing reasoning. There are lots of different logics: probabilistic logic: for reasoning about probability temporal logic: for reasoning about time (and programs) epistemic
More information3 Propositional Logic
3 Propositional Logic 3.1 Syntax 3.2 Semantics 3.3 Equivalence and Normal Forms 3.4 Proof Procedures 3.5 Properties Propositional Logic (25th October 2007) 1 3.1 Syntax Definition 3.0 An alphabet Σ consists
More informationA Constructor-Based Reachability Logic for Rewrite Theories
A Constructor-Based Reachability Logic for Rewrite Theories Stephen Skeirik, Andrei Stefanescu, Jose Meseguer October 10th, 2017 Outline 1 Introduction 2 Reachability Logic Semantics 3 The Invariant Paradox
More informationThe State Explosion Problem
The State Explosion Problem Martin Kot August 16, 2003 1 Introduction One from main approaches to checking correctness of a concurrent system are state space methods. They are suitable for automatic analysis
More informationComputational Logic. Davide Martinenghi. Spring Free University of Bozen-Bolzano. Computational Logic Davide Martinenghi (1/30)
Computational Logic Davide Martinenghi Free University of Bozen-Bolzano Spring 2010 Computational Logic Davide Martinenghi (1/30) Propositional Logic - sequent calculus To overcome the problems of natural
More informationComputability and Complexity Results for a Spatial Assertion Language for Data Structures
Computability and Complexity Results for a Spatial Assertion Language for Data Structures Cristiano Calcagno 12, Hongseok Yang 3, and Peter W. O Hearn 1 1 Queen Mary, University of London 2 DISI, University
More informationCompleteness of Pointer Program Verification by Separation Logic
ISSN 1346-5597 NII Technical Report Completeness of Pointer Program Verification by Separation Logic Makoto Tatsuta, Wei-Ngan Chin, and Mahmudul Faisal Al Ameen NII-2009-013E June 2009 Completeness of
More informationLecture 1: Logical Foundations
Lecture 1: Logical Foundations Zak Kincaid January 13, 2016 Logics have two components: syntax and semantics Syntax: defines the well-formed phrases of the language. given by a formal grammar. Typically
More informationPropositional Logic: Evaluating the Formulas
Institute for Formal Models and Verification Johannes Kepler University Linz VL Logik (LVA-Nr. 342208) Winter Semester 2015/2016 Propositional Logic: Evaluating the Formulas Version 2015.2 Armin Biere
More informationOutline. Formale Methoden der Informatik First-Order Logic for Forgetters. Why PL1? Why PL1? Cont d. Motivation
Outline Formale Methoden der Informatik First-Order Logic for Forgetters Uwe Egly Vienna University of Technology Institute of Information Systems Knowledge-Based Systems Group Motivation Syntax of PL1
More informationDynamic Semantics. Dynamic Semantics. Operational Semantics Axiomatic Semantics Denotational Semantic. Operational Semantics
Dynamic Semantics Operational Semantics Denotational Semantic Dynamic Semantics Operational Semantics Operational Semantics Describe meaning by executing program on machine Machine can be actual or simulated
More informationDecision Procedures for Satisfiability and Validity in Propositional Logic
Decision Procedures for Satisfiability and Validity in Propositional Logic Meghdad Ghari Institute for Research in Fundamental Sciences (IPM) School of Mathematics-Isfahan Branch Logic Group http://math.ipm.ac.ir/isfahan/logic-group.htm
More informationEDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach
EDA045F: Program Analysis LECTURE 10: TYPES 1 Christoph Reichenbach In the last lecture... Performance Counters Challenges in Dynamic Performance Analysis Taint Analysis Binary Instrumentation 2 / 44 Types
More information03 Propositional Logic II
Martin Henz February 12, 2014 Generated on Wednesday 12 th February, 2014, 09:49 1 Review: Syntax and Semantics of Propositional Logic 2 3 Propositional Atoms and Propositions Semantics of Formulas Validity,
More informationFrom Separation Logic to Systems Software
From Separation Logic to Systems Software Peter O Hearn, Queen Mary Based on work of the SpaceInvader team: Cristiano Calcagno, Dino Distefano, Hongseok Yang, and me Special thanks to our SLAyer colleagues
More informationNon-linear Interpolant Generation and Its Application to Program Verification
Non-linear Interpolant Generation and Its Application to Program Verification Naijun Zhan State Key Laboratory of Computer Science, Institute of Software, CAS Joint work with Liyun Dai, Ting Gan, Bow-Yaw
More informationCS156: The Calculus of Computation Zohar Manna Autumn 2008
Page 3 of 52 Page 4 of 52 CS156: The Calculus of Computation Zohar Manna Autumn 2008 Lecturer: Zohar Manna (manna@cs.stanford.edu) Office Hours: MW 12:30-1:00 at Gates 481 TAs: Boyu Wang (wangboyu@stanford.edu)
More informationAbstractions and Decision Procedures for Effective Software Model Checking
Abstractions and Decision Procedures for Effective Software Model Checking Prof. Natasha Sharygina The University of Lugano, Carnegie Mellon University Microsoft Summer School, Moscow, July 2011 Lecture
More informationFirst-Order Logic First-Order Theories. Roopsha Samanta. Partly based on slides by Aaron Bradley and Isil Dillig
First-Order Logic First-Order Theories Roopsha Samanta Partly based on slides by Aaron Bradley and Isil Dillig Roadmap Review: propositional logic Syntax and semantics of first-order logic (FOL) Semantic
More informationFormal Methods for Java
Formal Methods for Java Lecture 20: Sequent Calculus Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg January 15, 2013 Jochen Hoenicke (Software Engineering) Formal Methods for Java
More informationAN INTRODUCTION TO SEPARATION LOGIC. 2. Assertions
AN INTRODUCTION TO SEPARATION LOGIC 2. Assertions John C. Reynolds Carnegie Mellon University January 7, 2011 c 2011 John C. Reynolds Pure Assertions An assertion p is pure iff, for all stores s and all
More informationEFFICIENT PREDICATE ABSTRACTION OF PROGRAM SUMMARIES
EFFICIENT PREDICATE ABSTRACTION OF PROGRAM SUMMARIES Arie Gurfinkel, Sagar Chaki and Samir Sapra Carnegie Mellon Uni In NFM11 Presented by Nimrod Partush OUTLINE Introduction Predicate Abstraction CEGAR
More informationSyntax. Notation Throughout, and when not otherwise said, we assume a vocabulary V = C F P.
First-Order Logic Syntax The alphabet of a first-order language is organised into the following categories. Logical connectives:,,,,, and. Auxiliary symbols:.,,, ( and ). Variables: we assume a countable
More informationLogic. Propositional Logic: Syntax
Logic Propositional Logic: Syntax Logic is a tool for formalizing reasoning. There are lots of different logics: probabilistic logic: for reasoning about probability temporal logic: for reasoning about
More informationCHAPTER 10. Gentzen Style Proof Systems for Classical Logic
CHAPTER 10 Gentzen Style Proof Systems for Classical Logic Hilbert style systems are easy to define and admit a simple proof of the Completeness Theorem but they are difficult to use. By humans, not mentioning
More informationFuzzy Description Logics
Fuzzy Description Logics 1. Introduction to Description Logics Rafael Peñaloza Rende, January 2016 Literature Description Logics Baader, Calvanese, McGuinness, Nardi, Patel-Schneider (eds.) The Description
More informationComp487/587 - Boolean Formulas
Comp487/587 - Boolean Formulas 1 Logic and SAT 1.1 What is a Boolean Formula Logic is a way through which we can analyze and reason about simple or complicated events. In particular, we are interested
More informationCSC 7101: Programming Language Structures 1. Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11.
Axiomatic Semantics Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11 1 Overview We ll develop proof rules, such as: { I b } S { I } { I } while b do S end { I b } That allow us to verify
More informationModular Labelled Sequent Calculi for Abstract Separation Logics
Modular Labelled Sequent Calculi for Abstract Separation Logics ZHÉ HÓU, Griffith University, Australia RANALD CLOUSTON, Aarhus University, Denmark RAJEEV GORÉ, The Australian National University, Australia
More informationAbstracting real-valued parameters in parameterised boolean equation systems
Department of Mathematics and Computer Science Formal System Analysis Research Group Abstracting real-valued parameters in parameterised boolean equation systems Master Thesis M. Laveaux Supervisor: dr.
More informationAxiomatic Semantics. Semantics of Programming Languages course. Joosep Rõõmusaare
Axiomatic Semantics Semantics of Programming Languages course Joosep Rõõmusaare 2014 Direct Proofs of Program Correctness Partial correctness properties are properties expressing that if a given program
More informationThe Impact of Craig s Interpolation Theorem. in Computer Science
The Impact of Craig s Interpolation Theorem in Computer Science Cesare Tinelli tinelli@cs.uiowa.edu The University of Iowa Berkeley, May 2007 p.1/28 The Role of Logic in Computer Science Mathematical logic
More informationAutomatic Verification of Parameterized Data Structures
Automatic Verification of Parameterized Data Structures Jyotirmoy V. Deshmukh, E. Allen Emerson and Prateek Gupta The University of Texas at Austin The University of Texas at Austin 1 Outline Motivation
More informationNatural Deduction for Propositional Logic
Natural Deduction for Propositional Logic Bow-Yaw Wang Institute of Information Science Academia Sinica, Taiwan September 10, 2018 Bow-Yaw Wang (Academia Sinica) Natural Deduction for Propositional Logic
More informationVerified Characteristic Formulae for CakeML. Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017
Verified Characteristic Formulae for CakeML Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 18, 2017 CakeML Has: references, modules, datatypes, exceptions, a FFI,... Doesn t have:
More informationComputer-Aided Program Design
Computer-Aided Program Design Spring 2015, Rice University Unit 3 Swarat Chaudhuri February 5, 2015 Temporal logic Propositional logic is a good language for describing properties of program states. However,
More informationFormal Methods for Java
Formal Methods for Java Lecture 12: Soundness of Sequent Calculus Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg June 12, 2017 Jochen Hoenicke (Software Engineering) Formal Methods
More informationKnowledge base (KB) = set of sentences in a formal language Declarative approach to building an agent (or other system):
Logic Knowledge-based agents Inference engine Knowledge base Domain-independent algorithms Domain-specific content Knowledge base (KB) = set of sentences in a formal language Declarative approach to building
More informationHoare Logic: Reasoning About Imperative Programs
Hoare Logic: Reasoning About Imperative Programs COMP1600 / COMP6260 Dirk Pattinson Australian National University Semester 2, 2018 Programming Paradigms Functional. (Haskell, SML, OCaml,... ) main paradigm:
More informationFirst Order Logic vs Propositional Logic CS477 Formal Software Dev Methods
First Order Logic vs Propositional Logic CS477 Formal Software Dev Methods Elsa L Gunter 2112 SC, UIUC egunter@illinois.edu http://courses.engr.illinois.edu/cs477 Slides based in part on previous lectures
More informationLecture Notes: Axiomatic Semantics and Hoare-style Verification
Lecture Notes: Axiomatic Semantics and Hoare-style Verification 17-355/17-665/17-819O: Program Analysis (Spring 2018) Claire Le Goues and Jonathan Aldrich clegoues@cs.cmu.edu, aldrich@cs.cmu.edu It has
More informationModel Checking: An Introduction
Model Checking: An Introduction Meeting 3, CSCI 5535, Spring 2013 Announcements Homework 0 ( Preliminaries ) out, due Friday Saturday This Week Dive into research motivating CSCI 5535 Next Week Begin foundations
More informationAutomatic Induction Proofs of Data-Structures in Imperative Programs
Automatic Induction Proofs of Data-Structures in Imperative Programs Duc-Hiep Chu National University of Singapore Republic of Singapore hiepcd@comp.nus.edu.sg Joxan Jaffar National University of Singapore
More informationComputation Tree Logic (CTL) & Basic Model Checking Algorithms
Computation Tree Logic (CTL) & Basic Model Checking Algorithms Martin Fränzle Carl von Ossietzky Universität Dpt. of Computing Science Res. Grp. Hybride Systeme Oldenburg, Germany 02917: CTL & Model Checking
More informationLinear Temporal Logic and Büchi Automata
Linear Temporal Logic and Büchi Automata Yih-Kuen Tsay Department of Information Management National Taiwan University FLOLAC 2009 Yih-Kuen Tsay (SVVRL @ IM.NTU) Linear Temporal Logic and Büchi Automata
More informationPreliminaries. Introduction to EF-games. Inexpressivity results for first-order logic. Normal forms for first-order logic
Introduction to EF-games Inexpressivity results for first-order logic Normal forms for first-order logic Algorithms and complexity for specific classes of structures General complexity bounds Preliminaries
More informationCS156: The Calculus of Computation
CS156: The Calculus of Computation Zohar Manna Winter 2010 It is reasonable to hope that the relationship between computation and mathematical logic will be as fruitful in the next century as that between
More informationChapter 2. Assertions. An Introduction to Separation Logic c 2011 John C. Reynolds February 3, 2011
Chapter 2 An Introduction to Separation Logic c 2011 John C. Reynolds February 3, 2011 Assertions In this chapter, we give a more detailed exposition of the assertions of separation logic: their meaning,
More informationProgram verification. Hoare triples. Assertional semantics (cont) Example: Semantics of assignment. Assertional semantics of a program
Program verification Assertional semantics of a program Meaning of a program: relation between its inputs and outputs; specified by input assertions (pre-conditions) and output assertions (post-conditions)
More informationBilateral Proofs of Safety and Progress Properties of Concurrent Programs (Working Draft)
Bilateral Proofs of Safety and Progress Properties of Concurrent Programs (Working Draft) Jayadev Misra December 18, 2015 Contents 1 Introduction 3 2 Program and Execution Model 4 2.1 Program Structure..........................
More informationAutomated Synthesis of Tableau Calculi
Automated Synthesis of Tableau Calculi Renate A. Schmidt 1 and Dmitry Tishkovsky 1 School of Computer Science, The University of Manchester Abstract This paper presents a method for synthesising sound
More informationAxiomatic Semantics: Verification Conditions. Review of Soundness of Axiomatic Semantics. Questions? Announcements
Axiomatic Semantics: Verification Conditions Meeting 18, CSCI 5535, Spring 2010 Announcements Homework 6 is due tonight Today s forum: papers on automated testing using symbolic execution Anyone looking
More informationACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes)
ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes) Steve Vickers CS Theory Group Birmingham 2. Theories and models Categorical approach to many-sorted
More informationHoare Logic (I): Axiomatic Semantics and Program Correctness
Hoare Logic (I): Axiomatic Semantics and Program Correctness (Based on [Apt and Olderog 1991; Gries 1981; Hoare 1969; Kleymann 1999; Sethi 199]) Yih-Kuen Tsay Dept. of Information Management National Taiwan
More information