safety and liveness defining programs
play

Safety and Liveness Defining Programs Variables with respective - PowerPoint PPT Presentation

Safety and Liveness Defining Programs Variables with respective domain State space of the program Program actions Guarded commands Program computation <s 0 , s 1 , s 2 , > (s j-1 , s j ) is permitted by


  1. Safety and Liveness

  2. Defining Programs • Variables with respective domain – State space of the program • Program actions – Guarded commands • Program computation – <s 0 , s 1 , s 2 , …> – (s j-1 , s j ) is permitted by program actions • Consider set of all program computations – Could depend upon the notion of fairness

  3. Program Correctness • How do we define that a program is correct with respect to its specification? – Intuition: A program is correct if all its computations are in the specification • For above intuition to work, the specification should be the set of acceptable sequences of program states – Note that the program does not have to exhibit all behaviors in the specification – It just should not exhibit anything that it is not permitted by the specification

  4. Hence, • From now on, let specification be a set of infinite sequences of states

  5. Example • Coke and Pepsi vending machine – Specification: pressing a button results in dispensation of a Coke or Pepsi

  6. Consider Programs Program 1 ButtonPressed  Dispense Coke Program 2 ButtonPressed  Dispense Pepsi Program 3 ButtonPressed  Dispense Coke ButtonPressed  Dispense Pepsi

  7. Consider Programs Program 4 ButtonPressed  Dispense Sprite

  8. Observations about Programs and Specifications • Suppose that you do not have access to code of program P. You can only observe its behavior. – Observed behavior is one state at a time – Observed behavior is finite • Looking at a finite prefix, we can never say that the specification is satisfied • We may be able to say that the specification is NOT satisfied.

  9. Specification 1 • Vending machine only dispenses coke or pepsi • Consider the behavior • c,p,c,p,s,c,p, … • Suppose a program behavior violates a specification, will you always be able to detect it at some finite point? – What do we mean that we detected safety violation at a finite point? • It means that no matter what future states are the specification cannot be satisfied by that sequence. • This is the intuition behind safety specification.

  10. Specification 2 • Vending machine is guaranteed to dispense pepsi • Consider the finite behavior • c,c,c,c,s,s,7 • Given any finite behavior, can you say that the specification cannot be satisfied • This is the intuition behind liveness specification

  11. Specification 2 continued • Suppose the infinite sequence were • c,c,c,c,c, … • Even though this sequence does not satisfy specification 2, we cannot conclude this at any finite point.

  12. Specification 3 • Dispense only coke or pepsi and that eventually dispense pepsi – Is this safety, liveness, both or neither • This color is black • This color is white • This color is neither black nor white although it is a combination of the two

  13. Safety and Liveness • Safety – Intuition: Nothing bad happens • Intuition: If something bad happens, it cannot be fixed • Intuition: if a sequence violates specification then it does so at some finite point after which it cannot be fixed. – ∀σ : σ∉ SafetySpec : ( ∃α : α is a prefix of σ ∧ ∀β :: αβ ∉ SafetySpec)

  14. Safety and Liveness • Liveness – Intuition: Something good happens eventually • Intuition: No matter what has happened so far, the specification can be met • ∀α : α is finite sequence of states: ∃β :: αβ ∈ LivenessSpec

  15. Recalling weak fairness and strong fairness • Are these safety properties? • Are these liveness properties? • What is a good fairness property?

  16. Examples of Properties • Invariant (S) : Predicate S is true in every state • Closed (S) : If predicate S is true in some state, it will remain true in the next • P Leads to Q : If P is ever true in some state then Q will be true in that or some future state • P Converges to Q : Closed(P) and Closed(Q) and P leads to Q

  17. • P Converges to Q : Closed(P) and Closed(Q) and P leads to Q – Consider sequenec • P, p, p, … • Violates specificatin • Cannot say that at any finite point – Not a safety specification – Is there any finite prefix alpha such that alpha cannot be extended to satisfy the specification?

  18. To show that P conv to Q is not a safety property • Create a sequence that violates P converges to Q such that – At finite point, you cannot say that spec is violated – (P&NotQ), (P&NotQ) …

  19. To show that P converges to Q is not a liveness property • Find some alpha such that it cannot be extended to satisfy the specification • P, NotP,

  20. Specification 3 • For vending machine: • For every 10 consecutive button pressed, dispense at least 4 coke and at least 4 pepsi • This is a safety specification

  21. Specification 3 • Consider sequence – C, c, c, c, c, c, c

  22. Specification 4 • Pepsi must be dispensed at least once in 10 steps

  23. Specification 4 • After some point, the machine will only dispense pepsi • This is a liveness specification

  24. Sf1 & Sf2 • Given Sf1, Sf2 is a safety specificaiton • Show Sf1 & Sf2 is a safety specification • For all sigma : sigma not in Sf1 & Sf2 : • Take any sigma not in Sf1 and Sf2 – Case 1: sigma not in Sf1 – Case 2: sigma not in Sf2

  25. • Given – ∀σ : σ∉ Sf1 : ( ∃α : α is a prefix of σ ∧ ∀β :: αβ ∉ Sf1) – ∀σ : σ∉ Sf2 : ( ∃α : α is a prefix of σ ∧ ∀β :: αβ ∉ Sf2) • To prove – ∀σ : σ∉ Sf1 & Sf2 : ( ∃α : α is a prefix of σ ∧ ∀β :: αβ ∉ Sf1 & Sf2)

  26. Case 1 • Sigma not in Sf1 – There exists alpha : for all beta : • Alpha beta is not in sf1 ==> there exists alpha : for all beta : alpha beta is not in sf1 & sf2 Same for Case 2 : Completes proof for showing that sf1 & sf2 is a safety property

  27. Observation • Some properties are neither safety properties nor liveness properties. They appear to be a combination of the two. • Goal: prove that any property can be expressed as an intersection of a safety property and a liveness property

  28. • Spec1 = Always dispense coke or pepsi • Spec2 = always dispense coke • Spec3 = Always dispense coke and pepsi and eventually dispense pepsi • Spec4 = dispense coke and pepsi in an alternating manner – Spec4 subset of spec1 – Spec2 is not a subset of spec4 and vice versa – Spec2 is a subset of spec1 but not of spec3 – Spec3 is a subset of spec1

  29. Manipulation of Safety/Liveness Properties • Intersection of safety and liveness properties – Step 1: Intersection of any number of safety properties is a safety property – Step 2: Given a specification, spec, find the smallest safety specification sf such that spec ⊆ sf – Step 3: spec = sf ∩ (spec ∪ (S w – sf)) – Step 4: (spec ∪ (S w – sf)) is a liveness specification

  30. • Let sigma be some sequence • Suppose spec = { sigma }, spec only contains one sequence

  31. Towards Proving spec = safety ∧ liveness • S w denotes the set of all computations • α S w denotes the set of all computations with prefix α • (S w - α S w ) is a safety specification

  32. Towards Proving spec = safety ∧ liveness • Consider (infinitely many) safety properties sf1, sf2, … – Is the union of them a safety specification? – Is the intersection of them a safety specification?

  33. Towards Proving spec = safety ∧ liveness • Let spec be the given specification – Consider the set of safety properties sf 1 , sf 2 , … such that • spec ⊆ sf i – Consider the intersection of these safety properties • Let sf denote this intersection • Observe: spec ⊆ sf • sf is a safety specification

  34. Properties of sf • Consider a sequence σ ∈ sf – spec – Let α be any prefix of σ – There must exist β such that αβ ∈ spec – If not spec ⊆ (sf ∩ (S w - α S w )), which is a safety specification • This is a contradiction as sf is supposed to smallest safety specification containing spec

  35. Towards Proving spec = safety ∧ liveness (spec ∪ (S w – sf)) • spec = sf ∩ Safety specification Liveness specification

  36. • To prove (spec ∪ (S w – sf)) • sf ∩ = Sf ∩ spec ∪ ( sf ∩ (S w – sf)) = spec

  37. • To show that (spec ∪ (S w – sf)) is a liveness specification: • For any α , some extension of α is in (spec ∪ (S w – sf)) • Let σ be any infinite extension of α • Case 1: σ ∈ spec : trivial • Case 2: σ ∈ (S w – sf) : trivial • Case 3: σ ∈ sf – spec: – Every prefix of σ has an extension that satisfies spec – By construction α is a prefix of σ

  38. • (x > 0) converges to (x > 5) – (x > 0) is closed, i.e., if x is 1 or higher, x can never become 0 or negative – (x > 5) is closed – If (x > 0) is reached then eventually (x > 5) would be reached • Safety specification – x is always equal to 10 (not a superset of converges because – X is always greater than 0 (superset of converges) – Closed (x > 0) (superset of converges) – Closed (x > 5) (superset of converges) – Closed (x > 0) & Closed (x > 5) (superset of converges), … • This is the smallest safety specification for converges

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