Lecture Outline 1. Course summary 2. Beyond the course DD2452 Formal Methods 3. Exam preparation 4. Course evaluation Concluding Lecture 1. Course Summary Formal Verification • Formal methods : • Two possibilities : – correctness by design: transformation collection of formal notations and techniques (i.e. based on discrete – establishing correctness: verification mathematics and mathematical logic) for modelling and analysis of program • Three ingredients : behaviour. Basis for tool support. M M – model ψ • Common goal : S φ φ – specification ╞ M ≈ S M ╞ φ ╞ ψ → φ the design of correct systems. – verification Hoare Logic and Approaches Considered Program Verification in the Course 1. Hoare Logic & Program Verification Goal: Correctness of state transform. 2. Temporal Logic & Model Checking Abstr.: low-level Models: Source code (Java) Specs: Assertions (Hoare Logic, JML) Method: Proof tableaux; VCG + ATP Tool: ESC/Java2 1
Temporal Logic and Conclusions Model Checking + helps in capturing transform. behaviour + modular , hence scales well Goal: Correctness of state sequences + ESC/Java2 helps finding logical errors Abstr.: medium-level Models: Transition systems (Promela) - automatic at expense of completeness Specs: Temporal logic (LTL, CTL) - requires more detail than just interface Method: Automata-based - bad at data structures Tool: SPIN Conclusions 2. Beyond the Course + realistic modelling of comm. protocols • Infinite-state systems – recursion: pushdown automata + efficient model checking – dynamic process creation: induction + counter-examples as error traces • Theorem Proving • Program Analysis - finite-state: no unbounded data, recursion – type systems or dynamic process creation – abstract interpretation 3. Exam Preparation What do bring: 2. Temporal Logics (LTL, CTL) the book, lecture slides, handouts, own - Understanding the meaning of formulas lecture notes taken in class - evaluation on states in models - formalizing properties - relating formulas in LTL and CTL 1. Hoare logic - relating formulas to B ű chi automata - Specifying programs as Hoare triples - Verifying temporal properties - Verifying programs using proof tableaux - automata-based approach • Partial & total correctness • Concurrent programs (Owicky-Gries) 2
4. Exam Evaluation • Help improve the course! • Anonymous evaluation • How meaningful did you find the course? • What should be added or removed? • Other suggestions for improving the course? 3
Recommend
More recommend