Reconciling Partial and Local Invertibility

Anders Ågren Thuné, Kazutaka Matsuda*, Meng Wang

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference Contribution (Conference Proceeding)

Abstract

Invertible programming languages specify transformations to be run in two directions, such as compression/decompression or encryption/decryption. Two key concepts in invertible programming languages are partial invertibility and local invertibility. Partial invertibility lets invertible code be parameterized by the results of non-invertible code, whereas local invertibility requires all code to be invertible. The former allows for more flexible programming, while the latter has connections to domains such as low-energy computing and quantum computing. We find that existing approaches lack a satisfying treatment of partial invertibility, leaving the connection to local invertibility unclear.

In this paper, we identify four core constructs for partially invertible programming, and show how to give them a locally invertible interpretation. We show the expressiveness of the constructs by designing the functional invertible language KALPIS, and show how to give them a locally invertible semantics using the novel arrow combinator language RRARR the key idea is viewing partial invertibility as an invertible effect. By formalizing the two systems and giving KALPIS semantics by translation to RRARR, we reconcile partial and local invertibility, solving an open problem in the field. All formal developments are mechanized in Agda.
Original languageEnglish
Title of host publicationProgramming Languages and Systems
Subtitle of host publication33rd European Symposium on Programming, ESOP 2024, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2024, Luxembourg City, Luxembourg, April 6–11, 2024, Proceedings, Part I
EditorsStephanie Weirich
Place of PublicationSwitzerland
PublisherSpringer, Cham
Pages59-89
Number of pages31
ISBN (Electronic)9783031572623
ISBN (Print)9783031572661
DOIs
Publication statusPublished - 5 Apr 2024

Publication series

NameLecture Notes in Computer Science (LNCS)
PublisherSpringer
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Bibliographical note

Publisher Copyright:
© The Author(s) 2024.

Research Groups and Themes

  • Programming Languages

Fingerprint

Dive into the research topics of 'Reconciling Partial and Local Invertibility'. Together they form a unique fingerprint.

Cite this