Making Objects Count: A Shape Analysis Framework for Proving Polynomial Time Termination

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=p6z-VRiKA2k



Duration: 1:08:13
86 views
0


We present a novel technique for verifying that (recursive) heap manipulating programs terminate in polynomial time. We achieve this by defining an unorthodox ranking function that tracks the number of loop iterations using logical counters distributed across heap objects. If every object counter is bounded, then the program belongs to large class of interesting programs whose running time is O(n k ), where n is the size of the input heap and k is the maximal loop-nesting depth. We soundly determine whether such a bound exists by generating a constraint system in the (decidable) quantifier-free fragment of Presburger arithmetic out of an abstraction of the program's transition relation. The latter can be computed by any shape analysis algorithm that enjoys certain natural properties. We have implemented a prototype analysis and successfully applied it to prove polynomial-time termination of a suite of benchmarks, including (looping and recursive) list manipulating programs, looping list-sorting programs, and looping programs that manipulate trees and graphs. This is joint work with Dr. Noam Rinetzky (Tel-Aviv University) and Boris Dogadov (Tel-Aviv University).




Other Videos By Microsoft Research


2016-06-13DNA Strand Displacement
2016-06-13Outatime: Using Speculation to Enable Low-Latency Continuous Interaction for Mobile Cloud Gaming
2016-06-13Provable Algorithms for Learning Neural Networks
2016-06-13Modern Deep Learning through Bayesian Eyes
2016-06-13Towards Understandable Neural Networks for High Level AI Tasks; Part 2
2016-06-13Towards Understandable Neural Networks for High Level AI Tasks - Part 4
2016-06-13What are the prospects for automatic theorem proving?
2016-06-13Towards Understandable Neural Networks for High Level AI Tasks - Part 3
2016-06-13Artist in Residence (formerly Studio99) Presents: Michael Gough and "Drawing as Literacy."
2016-06-13Towards Cross-fertilization Between Propositional Satisfiability and Data Mining
2016-06-13Making Objects Count: A Shape Analysis Framework for Proving Polynomial Time Termination
2016-06-13Human factors of software updates
2016-06-13Machine-Checked Correctness and Complexity of a Union-Find Implementation
2016-06-13Applications of 3-Dimensional Spherical Transforms to Acoustics and Personalization of Head-related
2016-06-13Network Protocols: Myths, Missteps, and Mysteries
2016-06-13Optimal and Adaptive Online Learning
2016-06-13Speaker Diarization: Optimal Clustering and Learning Speaker Embeddings
2016-06-13Multi-rate neural networks for efficient acoustic modeling
2016-06-13Unsupervised Latent Faults Detection in Data Centers
2016-06-13System and Toolchain Support for Reliable Intermittent Computing
2016-06-13Gates Foundation Presents: Crucial Areas of Fintech Innovation for the Bottom of the Pyramid



Tags:
microsoft research
program languages and software engineering
algorithms