symbolic verification of epistemic properties in programs
play

Symbolic Verification of Epistemic Properties in Programs Ioana - PowerPoint PPT Presentation

Symbolic Verification of Epistemic Properties in Programs Ioana Boureanu (Univ. of Surrey, SCCS) joint work @ IJCAI 2017, with N. Gorogiannis (Middlesex, Facebook) and F . Raimondi (Middelsex, Amazon) Asking you... Motivation & Aim


  1. Symbolic Verification of Epistemic Properties in Programs Ioana Boureanu (Univ. of Surrey, SCCS) joint work @ IJCAI 2017, with N. Gorogiannis (Middlesex, Facebook) and F . Raimondi (Middelsex, Amazon)

  2. Asking you...

  3. Motivation & Aim Program-Epistemic Logic Verification of Program-Epistemic Logic Practical Experimentation Conclusions

  4. Motivation ◮ epistemic logics, i.e., logics of knowledge – “knowing logical facts” → expressions of rich properties (e.g., unlinkability, anonymity) ◮ widely used in verification of general-purpose concurrent & distributed SYSTEMS (e.g., Byzantine agreement) via epistemic model checkers such as MCMAS, Verics, MCK, etc....

  5. Motivation ◮ epistemic logics, i.e., logics of knowledge – “knowing logical facts” → expressions of rich properties (e.g., unlinkability, anonymity) ◮ widely used in verification of general-purpose concurrent & distributed SYSTEMS (e.g., Byzantine agreement) via epistemic model checkers such as MCMAS, Verics, MCK, etc....

  6. Motivation ... ◮ epistemic logics widely used in systems’ model checkers systems BUT... ◮ :( these are not epistemic specifications on program code ◮ :( it is hard to capture rich (e.g., first-order) state specifications, since the base logic of most temporal-epistemic verifiers is propositional ◮ !!? ... meanwhile, base logics of programs are very expressive + predicate transformers are used to reduce verification to FO queries to SMT solvers ...

  7. Motivation ... ◮ epistemic logics widely used in systems’ model checkers systems BUT... ◮ :( these are not epistemic specifications on program code ◮ :( it is hard to capture rich (e.g., first-order) state specifications, since the base logic of most temporal-epistemic verifiers is propositional ◮ !!? ... meanwhile, base logics of programs are very expressive + predicate transformers are used to reduce verification to FO queries to SMT solvers ...

  8. Motivation ... ◮ epistemic logics widely used in systems’ model checkers systems BUT... ◮ :( these are not epistemic specifications on program code ◮ :( it is hard to capture rich (e.g., first-order) state specifications, since the base logic of most temporal-epistemic verifiers is propositional ◮ !!? ... meanwhile, base logics of programs are very expressive + predicate transformers are used to reduce verification to FO queries to SMT solvers ...

  9. Motivation ... ◮ epistemic logics widely used in systems’ model checkers systems BUT... ◮ :( these are not epistemic specifications on program code ◮ :( it is hard to capture rich (e.g., first-order) state specifications, since the base logic of most temporal-epistemic verifiers is propositional ◮ !!? ... meanwhile, base logics of programs are very expressive + predicate transformers are used to reduce verification to FO queries to SMT solvers ...

  10. Motivation ... ◮ epistemic logics widely used in systems’ model checkers systems BUT... ◮ :( these are not epistemic specifications on program code ◮ :( it is hard to capture rich (e.g., first-order) state specifications, since the base logic of most temporal-epistemic verifiers is propositional ◮ !!? ... meanwhile, base logics of programs are very expressive + predicate transformers are used to reduce verification to FO queries to SMT solvers ...

  11. Aim ◮ be able to verify epistemic properties of programs ◮ agents can OBSERVE certain program variables ◮ the program (i.e., state-transition relation) is KNOWN to all agents ◮ focus on S5 -like epistemic properties about program states “ agent observer1 knows that variable x is equal to y + 5” “ agent observer2 does not know that variable x is equal to y + 5”

  12. Aim ◮ be able to verify epistemic properties of programs ◮ agents can OBSERVE certain program variables ◮ the program (i.e., state-transition relation) is KNOWN to all agents ◮ focus on S5 -like epistemic properties about program states “ agent observer1 knows that variable x is equal to y + 5” “ agent observer2 does not know that variable x is equal to y + 5”

  13. Aim ◮ be able to verify epistemic properties of programs ◮ agents can OBSERVE certain program variables ◮ the program (i.e., state-transition relation) is KNOWN to all agents ◮ focus on S5 -like epistemic properties about program states “ agent observer1 knows that variable x is equal to y + 5” “ agent observer2 does not know that variable x is equal to y + 5”

  14. Aim ◮ be able to verify epistemic properties of programs ◮ agents can OBSERVE certain program variables ◮ the program (i.e., state-transition relation) is KNOWN to all agents ◮ focus on S5 -like epistemic properties about program states “ agent observer1 knows that variable x is equal to y + 5” “ agent observer2 does not know that variable x is equal to y + 5”

  15. Motivation & Aim Program-Epistemic Logic Verification of Program-Epistemic Logic Practical Experimentation Conclusions

  16. Syntax Setup ◮ A a finite set of agents or program-observers ◮ V a countable set of variables ◮ p ⊆ V a non-empty set of program variables ◮ o A ⊆ p the variables the agent A ∈ A can observe ◮ n A = p \ o A variables agent A ∈ A cannot observe

  17. Syntax Epistemic Language L K ◮ L QF base language = a quantifier-free, FO language ◮ L FO extension of L QF with quantifiers φ :: = π | ¬ φ | φ 1 ∧ φ 2 | φ 1 ∨ φ 2 | φ 1 ⇒ φ 2 | ∀ x . φ | ∃ x . φ ◮ L K extension of L QF with epistemic modalities K A α ::= π | ¬ α | α 1 ∧ α 2 | α 1 ∨ α 2 | α 1 ⇒ α 2 | K A α

  18. Program-Epistemic Specifications L � K ◮ C a (possibly infinite) set of commands ◮ L � K extends L K with every formula β = � C α , meaning “ at all final states of C, α holds ” Example “at the end of the vote-counting, a partial observer (who can see certain aspects of the program) does not know that voter 1 vote for candidate 1”: � EVotingProgram ¬ K public − observer V 1 , 1 , where V 1 , 1 is a formula in L QF which here is linear integer arithmetic.

  19. First-order Semantics ◮ state s : V → D . ◮ set of all states U s | = π ⇐ ⇒ in accordance to interpretation I s | = φ 1 ◦ φ 2 ⇐ ⇒ ( s | = φ 1 ) ◦ ( s | = φ 2 ) s | = ¬ φ ⇐ ⇒ s �| = φ s | = ∃ x .φ ⇐ ⇒ ∃ c ∈ D . s [ x �→ c ] | = φ s | = ∀ x .φ ⇐ ⇒ ∀ c ∈ D . s [ x �→ c ] | = φ. where ◦ is ∧ , ∨ or ⇒ , and I is an interpretation of constants, functions and predicates in L QF over the domain D . The interpretation � φ � of a first-order formula φ is the set of states satisfying it, i.e., � φ � = { s ∈ U | s | = φ }

  20. Towards a Program-Epistemic Semantics ◮ Indistinguishability relation ∼ X over states s ∼ X s ′ ⇐ ⇒ ∀ x ∈ X . ( s ( x ) = s ′ ( x )) , where X ⊆ V ◮ Transition relation (over states) of any command C R C ( s ) = { s ′ | ( s , s ′ ) ∈ R C } R C ( W ) = � s ∈ W R C ( s ) ◮ strongest postcondition operator is a partial function SP ( − , − ) : L FO × C ⇀ L FO SP ( φ, C ) = ψ iff � ψ � = R C ( � φ � )

  21. Interpretation of a program specification β The satisfaction relation W , s � β W , s � π ⇐ ⇒ s | = π W , s � ¬ α ⇐ ⇒ W , s � � α W , s � α 1 ◦ α 2 ⇐ ⇒ ( W , s � α 1 ) ◦ ( W , s � α 2 ) ⇒ ∀ s ′ ∈ W . ( s ∼ o A s ′ = ⇒ W , s ′ � α ) W , s � K A α ⇐ ⇒ ∀ s ′ ∈ R C ( s ) . ( R C ( W ) , s ′ � α ) W , s � � C α ⇐ where ◦ is ∧ , ∨ , or ⇒ , and C ∈ C is a command. ◮ Validity of program specifications φ � β for all s ∈ � φ � , we have that � φ � , s � β . φ � K A π means that in all states satisfying φ , agent A knows π φ � � C ¬ K A π means: if command C starts at a state satisfying φ , then in all states where the execution finishes, agent A does not know π

  22. Motivation & Aim Program-Epistemic Logic Verification of Program-Epistemic Logic Practical Experimentation Conclusions

  23. Reducing to First-Order Validity ◮ Recall: strongest postcondition operator is a partial function SP ( − , − ) : L FO × C ⇀ L FO SP ( φ, C ) = ψ � ψ � = R C ( � φ � ) iff If the strongest postcondition operator is computable for the chosen base logic/programming language, then validity of program-epistemic specifications reduces to validity in first-order fragments (such as QBF and Presburger arithmetic). ... a translation τ : L K → L FO of epistemic formulas into the first-order language. τ ( φ, π ) = π τ ( φ, α 1 ◦ α 2 )= τ ( φ, α 1 ) ◦ τ ( φ, α 2 ) τ ( φ, ¬ α )= ¬ τ ( φ, α ) τ ( φ, K A α ) = ∀ n A . ( φ ⇒ τ ( φ, α ))

  24. Over-approximation ◮ Recall: strongest postcondition operator is a partial function SP ( − , − ) : L FO × C ⇀ L FO SP ( φ, C ) = ψ iff � ψ � = R C ( � φ � ) ◮ a function f : L FO × C → L FO over-approximates the strongest postcondition iff ... � f ( φ, C ) � ⊇ R C ( � φ � ) for all φ ∈ L FO and C ∈ C When the strongest postcondition can only be over-approximated (such as in programming languages with unbounded loops), we show that the validity of positive epistemic specifications reduces to that of first-order fragments, in a sound but incomplete way.

  25. Motivation & Aim Program-Epistemic Logic Verification of Program-Epistemic Logic Practical Experimentation Conclusions

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