A Core Calculus for Data Refinement
A hallmark of modern programming languages is the strict isolation guarantees they provide to clients and creators of data abstractions, guarantees which are backed by decades-old foundational proofs of representation independence. Recent program synthesis frameworks have exploited these guarantees to ensure that clients are pro- tected from any algorithmic and data structure choices made when producing an implementation from a high-level specification. By their nature, such specifications admit a large number of behaviors, introducing a formal gap between the functional correctness guarantees provided by the synthesis engine and the data abstraction guar- antees provided by the programming language. To bridge the gap, this thesis presents System F ⊇, a core calculus for data representation refinement for nondeterministic specifications of abstract data types. This calculus is extensible with user-definable specification predicates. We establish a representation independence theorem for any instantiation of this calculus with compatible user-defined specifications. This theorem justifies replacing a specification with a derived implementation in any client program and is agnostic to the method used to derive an implementation, instead capturing the proof obligations that must be discharged to ensure representation independence.
Givan, Purdue University.
Off-Campus Purdue Users:
To access this dissertation, please log in to our