relational specification and verification
play

Relational Specification and Verification From Non-Interference to - PowerPoint PPT Presentation

Relational Specification and Verification From Non-Interference to Regression-free Program Evolution Bernhard Beckert with M. Kirsten, V. Klebanov, M. Ulbrich, A. Weigl | RS3 Practitioner Event www.kit.edu KIT Universit at des Landes


  1. Relational Specification and Verification From Non-Interference to Regression-free Program Evolution Bernhard Beckert with M. Kirsten, V. Klebanov, M. Ulbrich, A. Weigl | RS3 Practitioner Event www.kit.edu KIT – Universit¨ at des Landes Baden-W¨ urttemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

  2. Relational vs. Function Functional Verification: Prove property for one program Relational Verification: Prove relation between two programs Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 2/29

  3. Verification of Relational Properties Use Cases: Non-interference / Information flow Regression Verification Relational Properties of Algorithms Refinement Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29

  4. Verification of Relational Properties Use Cases: Non-interference / Information flow low 1 = low 2 → � P 1 ; P 2 � low 1 = low 2 Regression Verification Relational Properties of Algorithms Refinement Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29

  5. Verification of Relational Properties Use Cases: Non-interference / Information flow low 1 = low 2 → � P 1 ; P 2 � low 1 = low 2 Regression Verification in P = in Q → � P ; Q � out P = out Q Relational Properties of Algorithms Refinement Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29

  6. Verification of Relational Properties Use Cases: Non-interference / Information flow low 1 = low 2 → � P 1 ; P 2 � low 1 = low 2 Regression Verification in P = in Q → � P ; Q � out P = out Q Relational Properties of Algorithms ballots 1 ∼ ballots 2 → � P 1 ; P 2 � winner 1 ≈ winner 2 Refinement Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29

  7. Verification of Relational Properties Use Cases: Non-interference / Information flow low 1 = low 2 → � P 1 ; P 2 � low 1 = low 2 Regression Verification in P = in Q → � P ; Q � out P = out Q Relational Properties of Algorithms ballots 1 ∼ ballots 2 → � P 1 ; P 2 � winner 1 ≈ winner 2 Refinement in Abs ∼ in Concr → � Abs ; Concr � out Abs ≈ out Concr Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 3/29

  8. Relational vs. Function Functional Verification: Prove property for one program P Relational Verification: Prove relation between two programs P , Q Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 4/29

  9. Relational vs. Function Functional Verification: Prove property for one program P Effort grows with size/complexity of P Relational Verification: Prove relation between two programs P , Q Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 4/29

  10. Relational vs. Function Functional Verification: Prove property for one program P Effort grows with size/complexity of P Relational Verification: Prove relation between two programs P , Q Effort grows with size/complexity of ∆( P , Q ) Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 4/29

  11. Relational vs. Function Functional Verification: Prove property for one program P Effort grows with size/complexity of P Relational Verification: Prove relation between two programs P , Q Effort grows with size/complexity of ∆( P , Q ) Verification considers P , Q simultaneously! Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 4/29

  12. General Setting deductive reasoning about complex interferences / flows with high precision at program level “small” programs Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 5/29

  13. Relational Verification Loop synchronisation f1 f2 Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  14. Relational Verification Loop synchronisation = f1 f2 = Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  15. Relational Verification Loop synchronisation = f1 f2 = Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  16. Relational Verification Loop synchronisation = f1 f2 = = Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  17. Relational Verification Loop synchronisation = f1 f2 = = Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  18. Relational Verification Loop synchronisation = f1 f2 Coupling Invariant Cpl Cpl = Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  19. Relational Verification Loop synchronisation f1 f2 Coupling Invariant Cpl Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  20. Relational Verification Loop synchronisation f1 f2 Coupling Invariant Cpl Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  21. Relational Verification Loop synchronisation = f1 f2 Coupling Invariant Cpl Cpl = Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  22. Relational Verification Loop synchronisation f1 = f2 Cpl Coupling Invariant Cpl Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  23. Relational Verification Loop synchronisation f1 = f2 Cpl Coupling Invariant Cpl Cpl Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  24. Relational Verification Loop synchronisation f1 = f2 Cpl Coupling Invariant Cpl Cpl Cpl = Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 6/29

  25. Synchronised Traces Ψ B , n 1 Ψ n 1 , n 2 Ψ n 2 , n 3 Ψ n k , E . . . n 1 n 2 B E Cpl n 1 Cpl n 2 Cpl B Cpl E . . . n 1 n 2 B E Φ B , n 1 Φ n 1 , n 2 Φ n 2 , n 3 Φ n k , E Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 7/29

  26. Relational Verification for Object-oriented Programs Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 8/29

  27. KeY Project Project Consortium Bernhard Beckert Karlsruhe Institute of Technology Reiner H¨ ahnle TU Darmstadt www.key-project.org Wolfgang Ahrendt Chalmers Univ., Gothenburg Relational vs. Functional Object-oriented Programs Programmable Logic Controllers C Programs Demo Reve Tool Bernhard Beckert – Relational Specification and Verification RS3 Practitioner Event 9/29

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