A Semantics for Approximate Program Transformations
Edwin Westbrook, Swarat Chaudhuri

TL;DR
This paper introduces a semantics for approximate program transformations that allows modular, quantitative reasoning about their correctness and error bounds, applicable to various types of data and transformations.
Contribution
It provides a novel semantics based on type-specific distances enabling composable, local proofs of correctness for approximate transformations.
Findings
Semantics models distances for different data types, including numbers and functions.
Applied semantics to approximate real numbers with floating-point and loop perforation.
Supports modular reasoning about error bounds in approximate program transformations.
Abstract
An approximate program transformation is a transformation that can change the semantics of a program within a specified empirical error bound. Such transformations have wide applications: they can decrease computation time, power consumption, and memory usage, and can, in some cases, allow implementations of incomputable operations. Correctness proofs of approximate program transformations are by definition quantitative. Unfortunately, unlike with standard program transformations, there is as of yet no modular way to prove correctness of an approximate transformation itself. Error bounds must be proved for each transformed program individually, and must be re-proved each time a program is modified or a different set of approximations are applied. In this paper, we give a semantics that enables quantitative reasoning about a large class of approximate program transformations in a local,…
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.
