Course on Program Verification 2017/2018 URL: www.cs.uu.nl/docs/vakken/pv by Wishnu Prasetya (S.W.B.Prasetya@uu.nl) §
Learning goals Become familiar with, and acquire insight on the underlying concepts of: program semantics: operational, denotational, axiomatic formalisms to express the correctness of programs: a Hoare-style formalism, LTL, CTL, higher order logic, CSP automated verification techniques: predicate transformer, automated testing, LTL model checking, CTL model checking, symbolic mc, tactic-based theorem proving, CSP refinement checking.
Learning goals Acquire hands-on experience with (towards your future research) : implementing a verification technique (one of previously mentioned). embedding a simple programming language in a higher order theorem prover, and to use it to prove the correctness of some example programs. using a verification tool to model a problem and conduct a verification of its solution.
Evaluation Assignments (4) + project (1) Exams : 2x Grading: All are mandatory You can work in a team, up to size 3. Exams : 2x Grading: Assignments, A = 5% H1 + 5% H2 + 10% H3 + 0% Spin-tutorial P = 25% Project Exams, E = 27.5% E1+ 27.5% E2, average should be ≧ 4.0 Your raw grade = A+P+E rounded to the closest 0.5 pt, but: if average(E1,E2) < 4 then raw is capped at 5 Your final grade = conform the Faculty’s Education & Examination Regulation (EER)
Evaluation Supplementary exam, Note the Faculty’s regulation concerning this. A1 : semantics A2 : SPIN A3 : tutorial HOL A4 : embedding HOL
Coverage H1 H2 H3 ST P E1 E2 Program semantic ✔ Pred. transformer LTL + model checking CTL + model checking Symbolic model checking higher order logic (HOL) Modelling & proving in HOL Experience with verification tool Can implement a verification technique CSP + refinement checking (may change if the actual progress during the course requires us to adapt)
Software You need to bring your own laptop. Needed software: HOL, Spin. Install them ASAP!! Theorem prover HOL, also requires Moscow ML (Mosml), ML is a functional language Model checker SPIN, also requires C compiler + its standard libraries. On Windows you probably also need Cygwin or Msys+Mingw to get the C compiler. Tk/Tcl for its GUI Dot for drawing state automata Links to HOL & Spin sites can be found in PV website. Consult their install instructions.
Other notes www.cs.uu.nl/docs/vakken/pv Regularly check it out…