3 comp 1 5 9 3 algorithmic verification
play

3 COMP 1 5 9 3 Algorithmic Verification Temporal Logics Dr. - PowerPoint PPT Presentation

<latexit


  1. <latexit sha1_base64="P4jUJHo6g1yopyZBD74hiv3LdI=">AIZHicjVRb9NIFD6kXEKW6l4QEhoCBalIa4JYJqVcTSF14QRaIFqanQ2D5xRpnYZjxpG6L8Cn7d/oH9EfvEmWPnRgy7juw5/ubMd75zif1Uq8w2m39fqKxcvHT5SvVq7Y9r12/cvLV6+yhLBibAwyDRifnsywy1ivHQKqvxc2pQ9n2Nn/zevtv/dIomU0n80Q5TPOnLKFYdFUhL0JfVyve2j5GKR1b1vqUqsAOD41o7TkI8zqy0WO8orfd8PcAH2826ULGySuoTsfHV2xSjtsVz63fyNeuM9t+/OxiPx38uMxgMmUD6ySkKo6KuFUln76tHVHqnhGqnOdUJRotU/mok7OfqXZLqHbLqSKDGJeJ0ruOqSw/r5xpiJqkMNWMhOW0Skha5STBUMZzeTmKVl0GAaZWxRGX6fzXdQqNPMubgmGEXIgydGeGuqoXqDeH7paiM4bWHNqa8Z5vFikJacWGV9/yGtNWkMq/dJQYZbt9FYgjNMJZO0Yhwvz9+XWerPR5EsG15hrENxHSrlTa0IYQEAhAHxBisGRrkJDR7xg8aEJK2AmMCDNkKd5HGEONzg7IC8lDEtqjZ0RvxwUa07vjzPh0QFE03YZOCnhc+IRkdxjNVxdfzPn+KsaIuZ3GIa1+wdkn1EKX0P86N/H8v+dcTpYUvuRcFOlMGXFZBgsZdWjV9G5Jv3sOyRPJCumUISsgTBOaIy6GoTWvq8u8y3W7Idk/S4Xd6oH3zj+xGeCaVp9ZjIUzeU9YE15rhLqdCal96yI7mrv8op4x50yhJ3Rvu0zBhzqOMyGsLXrH3K9gj1OmVFNdV8gnj+l28Xo8BYJ3cIFdMCKpFm7f5767majRvfyLaT+cVjPjPFz9keJ70IAW2f1p5IwrH5Bnh+5FBX3OVdHq5n6Zz2lxWZ7R0/VYsJ3MacgonoB97lfM/RAcyXkgc7jpzKvfWMoI4ZS7O2SdlnuC8Iw8M54ZzTmNWK/intf5H6JoR9NOxJ0dwgPKuUkdmuXsVM9nmnKlU45mp3WY/OeQJ6oLQtyd6SB7vtaLyvO6WZ7dfM4Rzum5B4/o7dFvlEw8c0SyJUlZyioM+yZFrfMTuSJTeM5mpgbuW+f9/GVbNo62G97zxvMP2+uv3xRfvSrcg4ewQfPyAl7DWziAQwgq/6Ilc2Vp1f+qV6rlXv5K6VC8WZNVi4qvd/AB3w9Tw=</latexit> Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL 3 COMP 1 5 9 3 Algorithmic Verification Temporal Logics Dr. Liam O’Connor CSE, UNSW (for now) Term 1 2020 1

  2. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Reachability Define Reach( A , q ) ⊆ Q as the set of states reachable in A from q . Define Reach( A ) ≡ Reach( A , q 0 ). Exercise Describe the algorithm for computing Reach( A ). Deadlock or a stuck state is a state q ∈ Q which has no outgoing transitions i.e ∀ a . δ ( q , a ) = ∅ . 2

  3. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Deadlock Example Assuming unicast synchronisation: lock( L 1 ) ! lock( L 2 ) ! free 1 p 1 p 1 lock( L 1 ) ? unlock( L 1 ) ? p 0 p 2 locked 1 locked 1 p 3 unlock( L 1 ) ! unlock( L 2 ) ! lock( L 2 ) ! lock( L 1 ) ! free 2 q 1 q 1 lock( L 2 ) ? unlock( L 2 ) ? q 0 q 2 q 3 locked 2 locked 2 unlock( L 2 ) ! unlock( L 1 ) ! Exercise : What is an algorithm to detect deadlock? 3

  4. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Safety Properties A safety property is an assertion that bad things do not happen. In other words, given some set of states Bad ⊆ Q , we want to check that: Bad ∩ Reach( A ) = ∅ Exercise Give an algorithm to check a safety property. 4

  5. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Observations Is use after free a safety property? ℓ 0 ℓ 1 malloc void foo() { ℓ 7 ℓ 2 int x, a; int *p = malloc(sizeof(int)); for (x = 10; x > 0; x--) { a = *p; ℓ 3 if (x <= 1) { use free(p); } ℓ 4 ∗ } ℓ 5 } free use free OK Free Bad ℓ 6 5

  6. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Kripke Structures Definition A labelled automaton is a FA ( Q , q 0 , Σ , δ, F , L ) with an additional labelling function L : Q → 2 P , where P is our atomic propositions. A Kripke structure is a type of labelled automaton where | Σ | = 1, F = Q . Equivalently, we don’t have a notion of actions or final states, and δ : Q → 2 Q . We also require that for any q , δ ( q ) � = ∅ . { started, running } start start terminate terminate q 0 q 1 q 3 stop stop { stopped } { terminated } resume resume suspend suspend q 2 { suspended, started } 6

  7. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Traces Definition A trace , also called a behaviour , is the sequence of labels corresponding to a run. For Kripke structures it is necessarily infinite in length. Define Traces( A ) to be all possible infinite traces from q 0 in A . Definition A linear time property is a set of traces, i.e. a subset of (2 P ) ω . We say a Kripke structure A satisfies a property P iff: Traces( A ) ⊆ P 7

  8. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL LTL Linear temporal logic (LTL) is a logic designed to describe linear time properties. Linear temporal logic syntax We have normal propositional operators: p ∈ P is an LTL formula. If ϕ, ψ are LTL formulae, then ϕ ∧ ψ is an LTL formula. If ϕ is an LTL formula, ¬ ϕ is an LTL formula. We also have modal or temporal operators: If ϕ is an LTL formula, then X ϕ is an LTL formula. If ϕ , ψ are LTL formulae, then ϕ UNTIL ψ is an LTL formula. 8

  9. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL LTL Semantics in Pictures σ { • } { • } { • } { • } { • } ∅ ¬ • , ¬ • ¬ • , • • , ¬ • • , ¬ • • , ¬ • ¬ • , • X ¬ • X • X • X • X ¬ • ¬ ( φ U ψ ) φ U ψ φ U ψ φ U ψ φ U ψ φ U ψ ?? 9

  10. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL LTL Semantics Let σ = σ 0 σ 1 σ 2 σ 3 σ 4 σ 5 . . . be a trace. Then define notation: σ | 0 = σ σ | 1 = σ 1 σ 2 σ 3 σ 4 σ 5 . . . σ | n +1 = ( σ | 1 ) | n Semantics The models of LTL are traces. For atomic propositions, we just look at the first state: σ | = p ⇔ p ∈ σ 0 σ | = ϕ ∧ ψ ⇔ σ | = ϕ and σ | = ψ σ | = ¬ ϕ ⇔ σ �| = ϕ σ | ⇔ σ | 1 | = X ϕ = ϕ σ | = ϕ UNTIL ψ ⇔ There exists an i such that σ | i | = ψ and for all j < i , σ | j | = ϕ We say A | = ϕ iff ∀ σ ∈ Traces( A ) . σ | = ϕ . 10

  11. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Derived Operators The operator F ϕ (“finally” or “eventually”) says that ϕ will be true at some point. The operator G ϕ (“globally” or “always”) says that ϕ is always true. Exercise Give the semantics of F and G . Define F and G in terms of other operators. 11

  12. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL More Exercises Let ρ be this trace: • • • •• •• •• · · · More Derived Operators Define “Infinitely Often” in LTL. = • ? ρ | Define “Almost Globally” in LTL = • ? ρ | (always true from some point = X • ? ρ | onwards). = F • ? ρ | = F ( • ∧ ¬ • )? ρ | 3 | = FG ( • ∧ • )? ρ | = G ( • UNTIL • )? ρ | 12

  13. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Possible Futures { started, running } start start terminate terminate q 0 q 1 q 3 stop stop { stopped } { terminated } resume resume suspend suspend q 2 { suspended, started } We can see that it is always possible for a run to move to the terminated state. How do we express this in LTL? We can’t! — it is a branching time property. 13

  14. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Branching Time Definition The computation tree of a Kripke structure A , written Tree( A ), is an infinite tree of Kripke structure states, where q 0 is the root and a state q ′ is a child of q if q ′ ∈ δ ( q ). A path t 1 t 2 t 3 . . . is a (infinite) sequence of computation trees such that t n +1 is the child of t n . Define Paths( t ) to be the set of all paths starting at t . Exercise Draw the CT for the process example. 14

  15. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL CTL* Syntax Definition We define two types of formulae, state formulae and path formulae, named based on their models. A state formula (SF) is defined as follows: All p ∈ P are SFs. Given SFs P and Q , ¬ P is a SF and P ∧ Q is a SF. Given a PF ϕ , E ϕ and A ϕ are SFs. A path formula (PF) is defined much like LTL: If P is a SF, then P is a PF. Given PFs ϕ and ψ , ¬ ϕ is a PF and ϕ ∧ ψ is a PF. Given a PF ϕ then X ϕ is a PF. Given PFs ϕ and ψ , ϕ UNTIL ψ is a PF. Initially, we start with state formulae (SFs). 15

  16. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL CTL* Semantics State Semantics t | = p ⇔ p ∈ L ( t root ) t | = P ∧ Q ⇔ t | = P and t | = Q t | = ¬ P ⇔ t �| = P t | = E ϕ ⇔ ∃ ρ ∈ Paths( t ) . ρ | = ϕ t | = A ϕ ⇔ ∀ ρ ∈ Paths( t ) . ρ | = ϕ Path Semantics ρ | = P ⇔ ρ 0 | = P ρ | = ϕ ∧ ψ ⇔ ρ | = ϕ and ρ | = ψ ρ | = ¬ ϕ ⇔ ρ �| = ϕ ρ | = X ϕ ⇔ ρ | 1 | = ϕ ρ | = ϕ UNTIL ψ ⇔ There exists an i such that ρ | i | = ψ and for all j < i , ρ | j | = ϕ 16

  17. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL CTL* Examples We say a Kripke structure A satisfies a CTL* property P , that is, A | = P iff Tree( A ) | = P Given this automaton A : = E G F • ? A | = A G F • ? A | q 0 q 1 = A F • ? A | = A E F • ? A | q 2 17

  18. Reachability and Safety Trace Semantics and LTL Tree Semantics and CTL* CTL Simplifying CTL* is very expressive but very complicated. It’s also extremely hard to model check, which we’ll get to later. CTL* to CTL Keep state formulae the same: All p ∈ P are SFs. Given SFs P and Q , ¬ P is a SF and P ∧ Q is a SF. Given a PF ϕ , E ϕ and A ϕ are SFs. But we force path formulae to go straight back to state formulae immediately with a temporal operator: Given a SF P then X P is a PF. Given SFs P and Q , P UNTIL Q is a PF. 18

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

Recommend


More recommend