Decision Procedures for Recursive Data Structures with Integer Arithmetic

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



Duration: 1:11:37
75 views
1


Decision procedures exists for many specialized logical domains as well as for many data structures frequently appearing in programs. Programs, even very simple kind, however, often involve multiple data domains, resulting in verification conditions spanning more than one logical theories. Hence for modeling and analyzing high-level programs we need decision procedures which can reason about complex domains. In this talk we presents novel solutions to an important class of decision problems, the mixed constraints on data structures with constraints on ``integral measures'' of those data structures. Such constraints can express memory safety properties such as absence of memory overflow and out-of-bound array access, which are crucial for program correctness. Our approach is to reduce constraints on data structures to constraints on integers, and with presence of quantifiers, to reduce quantifiers on data objects to quantifiers on integers. We present three contributions with case studies. 1. Decision procedures for the theory of term algebras with integer constraints. This theory can express mixed constraints on tree-like data structures with integer constraints on those data structures. As an example, we show how verification conditions of the red-black tree algorithm can be expressed in this theory. 2. Decision procedures for the first-order theory of Knuth-Bendix orders. Using the reduction technique developed for the decision problem of term algebras with integer arithmetic, we proved the decidability of the first-order theory of Knuth-Bendix Order, thereby solving a long-standing open problem in term rewriting (officially listed as RTA open problem 99 since 2000). 3. Decision procedures for queues with integer constraints. We adapt the reduction technique to reason about linear data structures with integer constraints. We show semantics of most common string operations in C language can be precisely expressed in this theory and its extensions.




Other Videos By Microsoft Research


2016-09-06End-User Control in the Smart Home
2016-09-06Exiting the cleanroom: on ecological validity and ubiquitous computing
2016-09-06Memory Model = Instruction Reordering + Store Atomicity
2016-09-06From Wayback Machine to WebLab: New Opportunities for Social Research
2016-09-06Remarks by Senator Obama
2016-09-06Automating the Construction of Compiler Heuristics using Machine Learning
2016-09-06Capacity and Fairness Issues in Enterprise-class Wireless Mesh Networks
2016-09-06Towards Accurate Internet Distance Prediction
2016-09-06Guanxi (The Art of Relationships) : Microsoft, China, and Bill Gates's Plan to Win the Road Ahead
2016-09-06Increasing Concurrency using EDGE Architectures
2016-09-06Decision Procedures for Recursive Data Structures with Integer Arithmetic
2016-09-06Supporting Construction, Analysis, and Understanding of Software Models.
2016-09-06Program Verification via Three-Valued Logic Analysis
2016-09-06Efficient Data Dissemination in Bandwidth-Asymmetric P2P Networks
2016-09-06Tractable Learning of Structured Prediction Models
2016-09-06Future Hype: The Myths of Technology Change
2016-09-06Improving Packet Delivery Efficiency Using Multi-Radio Diversity in Wireless LANs
2016-09-06Algorithmic Foundations of P2P and Wireless Networks
2016-09-06Semi-unsupervised learning of taxonomic and non-taxonomic relationships from the web
2016-09-06The Weather Makers: How Man is Changing the Climate and What it Means for Life on Earth
2016-09-06Touched with Light: Scanned beams display or capture information at video rates



Tags:
microsoft research