1.98k likes | 2.01k Views
Learn the basics of refinement-based termination proof methods including variance analysis, well-founded relations, and termination proof rules. Explore recent and future work in this field. Discover strategies for proving termination with linear rank functions. Advantages and disadvantages of this approach are discussed.
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)