1.98k likes | 2.01k Views
Tutorial: Proving termination and liveness Byron Cook Microsoft Research and Queen Mary, Univ. of London. Introduction. Introduction. Introduction. Introduction. Introduction. Introduction. Introduction. Introduction. Outline. Basics Refinement-based termination proving
E N D
Tutorial: Proving termination and liveness Byron Cook Microsoft Research and Queen Mary, Univ. of London
Outline • Basics • Refinement-based termination proving • Variance analysis • Recent and future work • Conclusion
Outline • Basics • Refinement-based termination proving • Variance analysis • Recent and future work • Conclusion
Termination proof rule x := x – y; assume(x>=1); assume(y>=1);
Termination proof rule x := x – y; assume(x>=1); assume(y>=1);
Termination proof rule x := x – y; assume(x>=1); assume(y>=1);
Termination proof rule x := x – y; assume(x>=1); assume(y>=1);
Termination proof rule x := x – y; assume(x>=1); assume(y>=1);
Outline • Basics • Refinement-based termination proving • Variance analysis • Recent and future work • Conclusion
Outline • Basics • Refinement-based termination proving • Variance analysis • Recent and future work • Conclusion
Outline • Basics • Refinement-based termination proving • Variance analysis • Recent and future work • Conclusion
Refinement • Strategy: • Start with empty termination argument • Iteratively weaken and re-check termination argument • Weaken using linear rank function synthesis • Advantages: • Can use existing safety property checking technology to check argument validity • Finds complex termination arguments with only linear rank functions • Leads to counterexamples • Accurate • Disadvantages: • Very slow • May not terminate (in several ways)