Abstraction Functions as Types
Harrison Grodin (1), Runming Li (1), and Robert Harper (1) ((1) Carnegie Mellon University)

TL;DR
This paper develops a type-theoretic framework for modular verification of software, using abstraction functions encoded as types to ensure correctness and cost analysis while maintaining privacy of implementation details.
Contribution
It introduces a novel type-theoretic encoding of abstraction functions within univalent dependent type theory, enabling modular verification and cost analysis.
Findings
Supports modular verification of program correctness.
Allows cost analysis relative to specifications.
Ensures private details are hidden from clients.
Abstract
Software development depends on the use of libraries whose public specifications inform client code and impose obligations on private implementations; it follows that verification at scale must also be modular, preserving such abstraction. Hoare's influential methodology uses abstraction functions to demonstrate the coherence between such concrete implementations and their abstract specifications. However, the Hoare methodology relies on a conventional separation between implementation and specification, providing no linguistic support for ensuring that this convention is obeyed. This paper proposes a synthetic account of Hoare's methodology within univalent dependent type theory by encoding the data of abstraction functions within types themselves. This is achieved via a phase distinction, which gives rise to a gluing construction that renders an abstraction function as a type and a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
