A Consistent Semantics of Self-Adjusting Computation
Umut A. Acar, Matthias Blume, Jacob Donham

TL;DR
This paper develops a formal semantics for self-adjusting computation that combines memoization and change propagation, proving that it is both correct and consistent, ensuring reliable reuse of computations under memory mutations.
Contribution
It introduces a formal, verified semantics for self-adjusting computation that integrates memoization with change propagation, ensuring correctness and consistency.
Findings
The semantics are proven correct and consistent.
Any two evaluations from the same state produce the same result.
The semantics are formalized and machine-checked in Twelf.
Abstract
This paper presents a semantics of self-adjusting computation and proves that the semantics are correct and consistent. The semantics integrate change propagation with the classic idea of memoization to enable reuse of computations under mutation to memory. During evaluation, reuse of a computation via memoization triggers a change propagation that adjusts the reused computation to reflect the mutated memory. Since the semantics integrate memoization and change-propagation, it involves both non-determinism (due to memoization) and mutation (due to change propagation). Our consistency theorem states that the non-determinism is not harmful: any two evaluations of the same program starting at the same state yield the same result. Our correctness theorem states that mutation is not harmful: self-adjusting programs are consistent with purely functional programming. We formalize the semantics…
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.
