More about HKUST
VIAP-Automated System for Verifying Integer Assignment Programs with Loops
PhD Thesis Proposal Defence Title: "VIAP-Automated System for Verifying Integer Assignment Programs with Loops" by Mr. Pritom RAJKHOWA Abstract: The automatic program verification has been a major research area since its beginning. Despite significant progress in automatic program verification, proving the correctness of programs with loops and arrays is still considered as a complex problem. The main difficulty in proving the correctness of programs with loops and array in traditional approaches is that it is not always possible to find the number iterations statically. In such cases, they tried to derive a logical property called the loop invariant which describes the properties of loops in each iteration. It provides a solution to this problem so that reasoning about loop becomes independent of the number of iterations. Although the automatic generation of loop invariants itself is considered as a long-standing complex problem. In the case of programs that use non-linear arithmetic, unbounded data structures like array, complex control flow (such as nested loops), it is difficult to automatically find suitable candidate invariants. That's why the automatic generation of suitable loop invariants is one of the major practical obstacles to full automation of program verification. To address that challenge, Lin proposed a method for translating a non-concurrent program to a first-order theory with quantifiers over natural numbers. This approach does not rely on loop invariants. Once translated to a first-order theory, properties about the program can then be proved using induction (because of the quantifiers on natural numbers) and other methods. This approach has been implemented a fully automated system VIAP, short for a Verifier for Integer Assignment Programs, for proving the correctness of procedural programs. We improved the approach by integrating recurrence solver(RS) which try to compute the closed-form solutions of inductive definitions in Lin's translation. VIAP use SMT solver Z3 as the basic theorem prover. RS uses SymPy's rsolve() function as a base solver and extends it to handle conditional recurrences. It also includes a solution for a simple case of mutual recurrences. It successfully proves benchmark programs such as those for computing integer square roots, integer product, integer power, factorial and the sums of series of integers. The system is fully automatic and points to a new way of proving properties of programs. In the most recent SV-COMP 2019 competition, VIAP came first in the ReachSafety-Arrays and ReachSafety-Recursive sub-category. In SV-COMP 2018 competition, VIAP also came in second in the ReachSafety-Arrays sub-category, behind VeriAbs. Program equivalence checking has significant practical applications such as compiler optimization validation, information flow analysis, and regression verification. Program equivalence checking also presents the same challenges as program verification. We have extended the approach designed fully automated system called Eq-VIAP primarily for checking the equivalence of programs. Date: Wednesday, 6 March 2019 Time: 10:00am - 12:00noon Venue: Room 2405 (lifts 17/18) Committee Members: Prof. Fangzhen Lin (Supervisor) Prof. Shing-Chi Cheung (Chairperson) Prof. Cunsheng Ding Dr. Ke Yi **** ALL are Welcome ****