Verified Reversible Programming for Verified Lossless Compression
Not on the map. Why?
Abstract (arXiv)
Lossless compression implementations typically contain two programs, an encoder and a decoder, which are required to be inverse to one another. We observe that a significant class of compression methods, based on asymmetric numeral systems (ANS), have shared structure between the encoder and decoder -- the decoder program is the 'reverse' of the encoder program -- allowing both to be simultaneously specified by a single, reversible function. To exploit this, we have implemented a small reversible language, embedded in Agda, which we call 'Flipper' (available at https://github.com/j-towns/flipper). Agda supports formal verification of program properties, and the compiler for our reversible language (which is implemented as an Agda macro), produces not just an encoder/decoder pair of functions but also a proof that they are inverse to one another. Thus users of the language get formal verification 'for free'. We give a small example use-case of Flipper in this paper, and plan to publish a full compression implementation soon.
Key facts. No citing papers in the map yet (data through 7 Oct 2026). Builds on 8 of its 17 references that are in the map. First posted on arXiv 2 Nov 2022.
Builds on
8 of 17 references.
References · 8
- 2021Variational Diffusion Modelscited by 1,145
- 2019Practical Lossless Compression with Latent Variables using Bits Back Codingcited by 85
- 2019Integer Discrete Flows and Lossless Compressioncited by 82
- 2019Bit-Swap: Recursive Bits-Back Coding for Lossless Compression with Hierarchical Latent Variablescited by 51
- 2019HiLLoC: Lossless Image Compression with Hierarchical Latent Variable Modelscited by 36
- 2020IDF++: Analyzing and Improving Integer Discrete Flows for Lossless Compressioncited by 35
- 2021On the Out-of-distribution Generalization of Probabilistic Image Modellingcited by 32
- 2021Improving Lossless Compression Rates via Monte Carlo Bits-Back Codingcited by 19
Built on by
Not cited yet.