Date of Award
8-2018
Degree Type
Thesis
Degree Name
Master of Science in Electrical and Computer Engineering (MSECE)
Department
Electrical and Computer Engineering
Committee Chair
Benjamin Delaware
Committee Member 1
Robert Givan
Committee Member 2
Milind Kulkarni
Abstract
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 protected 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 guarantees 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.
Recommended Citation
Krogmeier, Paul M., "A Core Calculus for Data Refinement" (2018). Open Access Theses. 1555.
https://docs.lib.purdue.edu/open_access_theses/1555