An Entailment Checker for Separation Logic with Inductive Definitions

Size: px
Start display at page:

Download "An Entailment Checker for Separation Logic with Inductive Definitions"

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 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 information

A Short Introduction to Hoare Logic

A 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 information

arxiv: v4 [cs.lo] 30 Apr 2018

arxiv: 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 information

Propositional Logic: Models and Proofs

Propositional 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 information

Axiomatic Semantics. Lecture 9 CS 565 2/12/08

Axiomatic 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 information

Deductive Verification

Deductive 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 information

Program 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. 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 information

Propositional Logic Language

Propositional 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 information

Compositional Entailment Checking for a Fragment of Separation Logic

Compositional 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 information

Nested Interpolants. Matthias Heizmann Jochen Hoenicke Andreas Podelski. Abstract. 1. Introduction. University of Freiburg, Germany

Nested 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 information

Automata-Theoretic Model Checking of Reactive Systems

Automata-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 information

Design 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 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 information

Floyd-Hoare Style Program Verification

Floyd-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 information

Hoare Calculus and Predicate Transformers

Hoare 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 information

Př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 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 information

Matching Logic: Syntax and Semantics

Matching 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 information

Classical Program Logics: Hoare Logic, Weakest Liberal Preconditions

Classical 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 information

Natural Deduction. Formal Methods in Verification of Computer Systems Jeremy Johnson

Natural 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 information

Program Analysis Part I : Sequential Programs

Program 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 information

Automatic Parallelization with Separation Logic

Automatic 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 information

Trace Diagnostics using Temporal Implicants

Trace 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 information

Spatial Interpolants

Spatial 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 information

Formal Methods in Software Engineering

Formal 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 information

Scalable 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 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 information

THE AUSTRALIAN NATIONAL UNIVERSITY Second Semester COMP2600/COMP6260 (Formal Methods for Software Engineering)

THE 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 information

Compositional Entailment Checking for a Fragment of Separation Logic

Compositional 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 information

Computation and Logic Definitions

Computation 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 information

Unifying Theories of Programming

Unifying 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 information

Propositional Logic: Part II - Syntax & Proofs 0-0

Propositional 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 information

Hoare 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. 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 information

Recent Developments in and Around Coaglgebraic Logics

Recent 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 information

A Decidable Fragment of Separation Logic

A 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 information

LOGIC PROPOSITIONAL REASONING

LOGIC 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 information

Predicate Calculus. Formal Methods in Verification of Computer Systems Jeremy Johnson

Predicate 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 information

A Decision Procedure for Separation Logic in SMT

A 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 information

IC3 and Beyond: Incremental, Inductive Verification

IC3 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 information

Program Verification Using Separation Logic

Program 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 information

Validating QBF Invalidity in HOL4

Validating 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 information

Relations to first order logic

Relations 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 information

PREDICATE 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 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 information

Universität Augsburg

Universitä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 information

Introduction 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 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 information

Axiomatic Semantics: Verification Conditions. Review of Soundness and Completeness of Axiomatic Semantics. Announcements

Axiomatic 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 information

Linear-time Temporal Logic

Linear-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 information

Chapter 11: Automated Proof Systems

Chapter 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 information

Lecture Notes on Software Model Checking

Lecture 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 information

Propositional Logic: Syntax

Propositional 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 information

3 Propositional Logic

3 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 information

A Constructor-Based Reachability Logic for Rewrite Theories

A 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 information

The State Explosion Problem

The 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 information

Computational Logic. Davide Martinenghi. Spring Free University of Bozen-Bolzano. Computational Logic Davide Martinenghi (1/30)

Computational 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 information

Computability and Complexity Results for a Spatial Assertion Language for Data Structures

Computability 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 information

Completeness of Pointer Program Verification by Separation Logic

Completeness 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 information

Lecture 1: Logical Foundations

Lecture 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 information

Propositional Logic: Evaluating the Formulas

Propositional 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 information

Outline. 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. 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 information

Dynamic Semantics. Dynamic Semantics. Operational Semantics Axiomatic Semantics Denotational Semantic. Operational Semantics

Dynamic 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 information

Decision Procedures for Satisfiability and Validity in Propositional Logic

Decision 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 information

EDA045F: Program Analysis LECTURE 10: TYPES 1. Christoph Reichenbach

EDA045F: 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 information

03 Propositional Logic II

03 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 information

From Separation Logic to Systems Software

From 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 information

Non-linear Interpolant Generation and Its Application to Program Verification

Non-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 information

CS156: The Calculus of Computation Zohar Manna Autumn 2008

CS156: 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 information

Abstractions and Decision Procedures for Effective Software Model Checking

Abstractions 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 information

First-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 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 information

Formal Methods for Java

Formal 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 information

AN INTRODUCTION TO SEPARATION LOGIC. 2. Assertions

AN 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 information

EFFICIENT PREDICATE ABSTRACTION OF PROGRAM SUMMARIES

EFFICIENT 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 information

Syntax. Notation Throughout, and when not otherwise said, we assume a vocabulary V = C F P.

Syntax. 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 information

Logic. Propositional Logic: Syntax

Logic. 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 information

CHAPTER 10. Gentzen Style Proof Systems for Classical Logic

CHAPTER 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 information

Fuzzy Description Logics

Fuzzy 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 information

Comp487/587 - Boolean Formulas

Comp487/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 information

CSC 7101: Programming Language Structures 1. Axiomatic Semantics. Stansifer Ch 2.4, Ch. 9 Winskel Ch.6 Slonneger and Kurtz Ch. 11.

CSC 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 information

Modular Labelled Sequent Calculi for Abstract Separation Logics

Modular 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 information

Abstracting real-valued parameters in parameterised boolean equation systems

Abstracting 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 information

Axiomatic Semantics. Semantics of Programming Languages course. Joosep Rõõmusaare

Axiomatic 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 information

The Impact of Craig s Interpolation Theorem. in Computer Science

The 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 information

Automatic Verification of Parameterized Data Structures

Automatic 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 information

Natural Deduction for Propositional Logic

Natural 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 information

Verified 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 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 information

Computer-Aided Program Design

Computer-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 information

Formal Methods for Java

Formal 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 information

Knowledge base (KB) = set of sentences in a formal language Declarative approach to building an agent (or other system):

Knowledge 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 information

Hoare Logic: Reasoning About Imperative Programs

Hoare 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 information

First Order Logic vs Propositional Logic CS477 Formal Software Dev Methods

First 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 information

Lecture Notes: Axiomatic Semantics and Hoare-style Verification

Lecture 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 information

Model Checking: An Introduction

Model 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 information

Automatic Induction Proofs of Data-Structures in Imperative Programs

Automatic 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 information

Computation Tree Logic (CTL) & Basic Model Checking Algorithms

Computation 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 information

Linear Temporal Logic and Büchi Automata

Linear 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 information

Preliminaries. Introduction to EF-games. Inexpressivity results for first-order logic. Normal forms for first-order logic

Preliminaries. 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 information

CS156: The Calculus of Computation

CS156: 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 information

Chapter 2. Assertions. An Introduction to Separation Logic c 2011 John C. Reynolds February 3, 2011

Chapter 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 information

Program verification. Hoare triples. Assertional semantics (cont) Example: Semantics of assignment. Assertional semantics of a program

Program 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 information

Bilateral Proofs of Safety and Progress Properties of Concurrent Programs (Working Draft)

Bilateral 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 information

Automated Synthesis of Tableau Calculi

Automated 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 information

Axiomatic Semantics: Verification Conditions. Review of Soundness of Axiomatic Semantics. Questions? Announcements

Axiomatic 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 information

ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes)

ACLT: 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 information

Hoare Logic (I): Axiomatic Semantics and Program Correctness

Hoare 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