For the final exam the students should:
- be able to use verification by proof method to prove partial or total correctness
- know the terminology of verification by proof and inference rules
- know the kinds of symbolic evaluation method (path-dependent and global); know their advantages and weaknesses
- be able to use a path dependent symbolic evaluation method
- know the principle of operation of a satisfiability based verification method implemented in Alloy (diagram from the corresponding set of slides)
- describe the operation of the FLAVERS approach using a simple example (e.g. the one from the slides)
- describe relative advantages and disadvantages of FLAVERS data flow finite state verification and model checking
- know what is meant by precision in the FLAVERS approach
- know why a Control Flow Graph is considered to overapproximate programs behavior and what kind of a problem that creates for interpretation of FLAVERs analysis results
- know what purpose a contstraint FSA serves (something dealing with infeasible paths)
- know the computational complexity of a model checking algorithm (linear in the size of the model and in the size of the formula, but the model size grows exponentially e.g. in the number of if-statements) and FLAVERS approach with constraint FSAs (O(N^2 × Sp× Sc1 ×…× Scn), where N - number of nodes in an CFG, Sp - number of nodes ina property FSA, Sci - number of nodes in an "ith" constraint FSA)
- know the relative advantages and weaknesses of methods discussed in class