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

Recommend


More recommend