Certifying expressive power and algorithms of reversible primitive permutations with Lean

Reversible primitive permutations (RPP) is a class of recursive functions that models reversible computation. We present a proof, which has been verified using the proof-assistant Lean, that demonstrates RPP can encode every primitive recursive function (PRF-completeness) and that each RPP can be en...

Full description

Saved in:
Bibliographic Details
Published inJournal of logical and algebraic methods in programming Vol. 136; p. 100923
Main Authors Maletto, Giacomo, Roversi, Luca
Format Journal Article
LanguageEnglish
Published Elsevier Inc 01.01.2024
Subjects
Online AccessGet full text

Cover

Loading…
Abstract Reversible primitive permutations (RPP) is a class of recursive functions that models reversible computation. We present a proof, which has been verified using the proof-assistant Lean, that demonstrates RPP can encode every primitive recursive function (PRF-completeness) and that each RPP can be encoded as a primitive recursive function (PRF-soundness). Our proof of PRF-completeness is simpler and fixes some errors in the original proof, while also introducing a new reversible iteration scheme for RPP. By keeping the formalization and semi-automatic proofs simple, we are able to identify a single programming pattern that can generate a set of reversible algorithms within RPP: Cantor pairing, integer division quotient/remainder, and truncated square root. Finally, Lean source code is available for experiments on reversible computation whose properties can be certified.
AbstractList Reversible primitive permutations (RPP) is a class of recursive functions that models reversible computation. We present a proof, which has been verified using the proof-assistant Lean, that demonstrates RPP can encode every primitive recursive function (PRF-completeness) and that each RPP can be encoded as a primitive recursive function (PRF-soundness). Our proof of PRF-completeness is simpler and fixes some errors in the original proof, while also introducing a new reversible iteration scheme for RPP. By keeping the formalization and semi-automatic proofs simple, we are able to identify a single programming pattern that can generate a set of reversible algorithms within RPP: Cantor pairing, integer division quotient/remainder, and truncated square root. Finally, Lean source code is available for experiments on reversible computation whose properties can be certified.
ArticleNumber 100923
Author Maletto, Giacomo
Roversi, Luca
Author_xml – sequence: 1
  givenname: Giacomo
  surname: Maletto
  fullname: Maletto, Giacomo
  email: giacomo.maletto@edu.unito.it
  organization: Università degli Studi di Torino, Dipartimento di Matematica, Italy
– sequence: 2
  givenname: Luca
  orcidid: 0000-0002-1871-6109
  surname: Roversi
  fullname: Roversi, Luca
  email: luca.roversi@unito.it
  organization: Università degli Studi di Torino, Dipartimento di Informatica, Italy
BookMark eNp9kM1OAjEUhbvARESewE1fYLA_DNMuXBjiDwmJG124akrnFjuZaUlbQd7eAq5dneTmOzcn3w0a-eABoTtKZpTQxX0363o97GaMMF4uRDI-QmPGa1YxRsQ1mqbUEVJQ0QhOx-hzCTE7e3R-i-FnFyEltwe8CweIWPsW634bostfQ8LB4gh7iMlt-oJEN7h8hiEO31lnF3zCh8LiNWh_i66s7hNM_3KCPp6f3pev1frtZbV8XFeGSZErCZzbuta15MIu5sRoSxvOGkmYMazlJYWooRVWgG2I2HCzkBs5pxwYn2vgE8Qvf00MKUWw6rRMx6OiRJ2kqE6dpaiTFHWRUloPlxaUaXsHUSXjwBtoXQSTVRvcv_1fte1w_A
Cites_doi 10.1063/1.881299
10.1007/BF01341281
10.1016/0304-3975(89)90155-2
10.1016/S0304-3975(02)00486-3
10.1147/rd.53.0183
10.1007/s00354-018-0039-1
10.1016/j.tcs.2019.11.029
10.1007/s10817-007-9070-5
10.1016/j.tcs.2019.10.005
ContentType Journal Article
Copyright 2023 The Author(s)
Copyright_xml – notice: 2023 The Author(s)
DBID 6I.
AAFTH
AAYXX
CITATION
DOI 10.1016/j.jlamp.2023.100923
DatabaseName ScienceDirect Open Access Titles
Elsevier:ScienceDirect:Open Access
CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
ExternalDocumentID 10_1016_j_jlamp_2023_100923
S2352220823000779
GroupedDBID --M
0R~
4.4
457
4G.
6I.
7-5
8P~
AACTN
AAEDT
AAEDW
AAFTH
AAIAV
AAIKJ
AAKOC
AALRI
AAOAW
AAXUO
AAYFN
ABBOA
ABMAC
ABVKL
ABXDB
ABYKQ
ACDAQ
ACGFS
ACRLP
ADBBV
ADEZE
AEBSH
AEKER
AENEX
AFKWA
AFTJW
AGHFR
AGUBO
AIALX
AIEXJ
AIKHN
AITUG
AJBFU
AJOXV
ALMA_UNASSIGNED_HOLDINGS
AMFUW
AMRAJ
AOUOD
AXJTR
BKOJK
BLXMC
EBS
EFJIC
EFLBG
EJD
FDB
FIRID
FYGXN
GBLVA
GBOLZ
HZ~
KOM
M41
NCXOZ
O9-
OAUVE
RIG
ROL
SPC
SPCBC
SSV
SSZ
T5K
~G-
AATTM
AAXKI
AAYWO
AAYXX
ABJNI
ACVFH
ADCNI
ADVLN
AEIPS
AEUPX
AFJKZ
AFPUW
AFXIZ
AGCQF
AGRNS
AIGII
AIIUN
AKBMS
AKRWK
AKYEP
ANKPU
BNPGV
CITATION
SSH
ID FETCH-LOGICAL-c298t-9e33f55a5938f640caf17327902cc2d3902885ed8f8ef708b3c69b9413e234ae3
IEDL.DBID AIKHN
ISSN 2352-2208
IngestDate Tue Jul 01 00:37:50 EDT 2025
Fri Feb 23 02:35:52 EST 2024
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Keywords Lean
Primitive recursion
Reversible computation
Language English
License This is an open access article under the CC BY license.
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-c298t-9e33f55a5938f640caf17327902cc2d3902885ed8f8ef708b3c69b9413e234ae3
ORCID 0000-0002-1871-6109
OpenAccessLink https://www.sciencedirect.com/science/article/pii/S2352220823000779
ParticipantIDs crossref_primary_10_1016_j_jlamp_2023_100923
elsevier_sciencedirect_doi_10_1016_j_jlamp_2023_100923
ProviderPackageCode CITATION
AAYXX
PublicationCentury 2000
PublicationDate January 2024
2024-01-00
PublicationDateYYYYMMDD 2024-01-01
PublicationDate_xml – month: 01
  year: 2024
  text: January 2024
PublicationDecade 2020
PublicationTitle Journal of logical and algebraic methods in programming
PublicationYear 2024
Publisher Elsevier Inc
Publisher_xml – name: Elsevier Inc
References Maxwell (br0040) 1872
Paolini, Piccolo, Roversi (br0080) 2020; 813
Carneiro (br0240)
Ammer, Frank, Knight, Love, Vieri (br0270) 2007
Jacopini, Mentrasti (br0200) 1989; 66
Maletto (br0220)
Matos, Paolini, Roversi (br0110) 2020
Vieri, Ammer, Frank, Margolus, Knight (br0260) 1998
Paolini, Piccolo, Roversi (br0100) 2018; 36
Landauer (br0010) 1961; 5
Maletto (br0210) October 2021
Carneiro (br0230) 2019
Rogers (br0090) 1967
Perumalla (br0050) 2013
Matos, Paolini, Roversi (br0130) 2020; 813
Szudzik (br0170) 2017
Landauer (br0020) 1991; 44
Matos (br0120) 2003; 290
de Moura, Kong, Avigad, van Doorn, von Raumer (br0140) 2015
Maletto, Roversi (br0150) 2022; vol. 13354
Vieri (br0250) 1999
De Vos (br0060) 2010
Cantor (br0160) 1878; 84
Asperti, Sacerdoti Coen, Tassi, Zacchiroli (br0190) 2007; 39
Paolini, Piccolo, Roversi (br0180) 2017; vol. 69
Szilard (br0030) 1929; 53
Morita (br0070) 2017
Carneiro (10.1016/j.jlamp.2023.100923_br0230) 2019
De Vos (10.1016/j.jlamp.2023.100923_br0060) 2010
Asperti (10.1016/j.jlamp.2023.100923_br0190) 2007; 39
Paolini (10.1016/j.jlamp.2023.100923_br0100) 2018; 36
Maletto (10.1016/j.jlamp.2023.100923_br0220)
Rogers (10.1016/j.jlamp.2023.100923_br0090) 1967
Szudzik (10.1016/j.jlamp.2023.100923_br0170)
Cantor (10.1016/j.jlamp.2023.100923_br0160) 1878; 84
Maletto (10.1016/j.jlamp.2023.100923_br0210) 2021
Landauer (10.1016/j.jlamp.2023.100923_br0010) 1961; 5
Matos (10.1016/j.jlamp.2023.100923_br0120) 2003; 290
de Moura (10.1016/j.jlamp.2023.100923_br0140) 2015
Jacopini (10.1016/j.jlamp.2023.100923_br0200) 1989; 66
Ammer (10.1016/j.jlamp.2023.100923_br0270) 2007
Matos (10.1016/j.jlamp.2023.100923_br0110) 2020
Maxwell (10.1016/j.jlamp.2023.100923_br0040) 1872
Paolini (10.1016/j.jlamp.2023.100923_br0080) 2020; 813
Matos (10.1016/j.jlamp.2023.100923_br0130) 2020; 813
Vieri (10.1016/j.jlamp.2023.100923_br0250) 1999
Vieri (10.1016/j.jlamp.2023.100923_br0260) 1998
Carneiro (10.1016/j.jlamp.2023.100923_br0240)
Maletto (10.1016/j.jlamp.2023.100923_br0150) 2022; vol. 13354
Paolini (10.1016/j.jlamp.2023.100923_br0180) 2017; vol. 69
Perumalla (10.1016/j.jlamp.2023.100923_br0050) 2013
Morita (10.1016/j.jlamp.2023.100923_br0070) 2017
Szilard (10.1016/j.jlamp.2023.100923_br0030) 1929; 53
Landauer (10.1016/j.jlamp.2023.100923_br0020) 1991; 44
References_xml – volume: vol. 69
  year: 2017
  ident: br0180
  article-title: A certified study of a reversible programming language
  publication-title: TYPES 2015 Postproceedings
– volume: vol. 13354
  start-page: 111
  year: 2022
  end-page: 127
  ident: br0150
  article-title: Certifying algorithms and relevant properties of reversible primitive permutations with Lean
  publication-title: Reversible Computation - 14th International Conference
– year: 1967
  ident: br0090
  article-title: Theory of Recursive Functions and Effective Computability
  publication-title: McGraw-Hill Series in Higher Mathematics
– volume: 84
  year: 1878
  ident: br0160
  article-title: Ein beitrag zur mannigfaltigkeitslehre
  publication-title: J. Reine Angew. Math.
– volume: 813
  start-page: 218
  year: 2020
  end-page: 233
  ident: br0080
  article-title: A class of recursive permutations which is primitive recursive complete
  publication-title: Theor. Comput. Sci.
– volume: 44
  start-page: 23
  year: 1991
  end-page: 29
  ident: br0020
  article-title: Information is physical
  publication-title: Phys. Today
– year: 2017
  ident: br0070
  article-title: Theory of reversible computing
  publication-title: Monographs in Theoretical Computer Science
– year: 1872
  ident: br0040
  article-title: Theory of Heat, Text-Books of Science
– volume: 290
  start-page: 2063
  year: 2003
  end-page: 2074
  ident: br0120
  article-title: Linear programs in a simple reversible language
  publication-title: Theor. Comput. Sci.
– volume: 5
  start-page: 183
  year: 1961
  end-page: 191
  ident: br0010
  article-title: Irreversibility and heat generation in the computing process
  publication-title: IBM J. Res. Dev.
– ident: br0220
  article-title: RPP in LEAN
– ident: br0240
– start-page: 378
  year: 2015
  end-page: 388
  ident: br0140
  article-title: The Lean theorem prover (system description)
  publication-title: Automated Deduction - CADE-25
– volume: 813
  start-page: 143
  year: 2020
  end-page: 154
  ident: br0130
  article-title: The fixed point problem of a simple reversible language
  publication-title: Theor. Comput. Sci.
– start-page: 128
  year: 2020
  end-page: 143
  ident: br0110
  article-title: On the expressivity of total reversible programming languages
  publication-title: Reversible Computation
– volume: 36
  start-page: 233
  year: 2018
  end-page: 256
  ident: br0100
  article-title: On a class of reversible primitive recursive functions and its Turing-complete extensions
  publication-title: New Gener. Comput.
– year: 2019
  ident: br0230
  article-title: Formalizing computability theory via partial recursive functions
  publication-title: 10th International Conference on Interactive Theorem Proving
– year: 1999
  ident: br0250
  article-title: Reversible computer engineering and architecture
– volume: 66
  start-page: 289
  year: 1989
  end-page: 297
  ident: br0200
  article-title: Generation of invertible functions
  publication-title: Theor. Comput. Sci.
– volume: 39
  start-page: 109
  year: 2007
  end-page: 139
  ident: br0190
  article-title: User interaction with the matita proof assistant
  publication-title: J. Autom. Reason.
– year: 2007
  ident: br0270
  article-title: A Scalable Reversible Computer in Silicon?
– year: 2010
  ident: br0060
  article-title: Reversible Computing - Fundamentals, Quantum Computing, and Applications
– year: 2017
  ident: br0170
  article-title: The Rosenberg-strong pairing function
– year: 2013
  ident: br0050
  article-title: Introduction to Reversible Computing
– year: October 2021
  ident: br0210
  article-title: A Formal Verification of Reversible Primitive Permutations
– start-page: 138
  year: 1998
  end-page: 142
  ident: br0260
  article-title: A fully reversible asymptotically zero energy microprocessor
  publication-title: Power Driven Microarchitecture Workshop
– volume: 53
  start-page: 840
  year: 1929
  end-page: 856
  ident: br0030
  article-title: über die entropieverminderung in einem thermodynamischen system bei eingriffen intelligenter wesen
  publication-title: Z. Phys.
– year: 2007
  ident: 10.1016/j.jlamp.2023.100923_br0270
– volume: 44
  start-page: 23
  issue: 5
  year: 1991
  ident: 10.1016/j.jlamp.2023.100923_br0020
  article-title: Information is physical
  publication-title: Phys. Today
  doi: 10.1063/1.881299
– volume: 53
  start-page: 840
  year: 1929
  ident: 10.1016/j.jlamp.2023.100923_br0030
  article-title: über die entropieverminderung in einem thermodynamischen system bei eingriffen intelligenter wesen
  publication-title: Z. Phys.
  doi: 10.1007/BF01341281
– volume: 66
  start-page: 289
  issue: 3
  year: 1989
  ident: 10.1016/j.jlamp.2023.100923_br0200
  article-title: Generation of invertible functions
  publication-title: Theor. Comput. Sci.
  doi: 10.1016/0304-3975(89)90155-2
– start-page: 138
  year: 1998
  ident: 10.1016/j.jlamp.2023.100923_br0260
  article-title: A fully reversible asymptotically zero energy microprocessor
– volume: 290
  start-page: 2063
  issue: 3
  year: 2003
  ident: 10.1016/j.jlamp.2023.100923_br0120
  article-title: Linear programs in a simple reversible language
  publication-title: Theor. Comput. Sci.
  doi: 10.1016/S0304-3975(02)00486-3
– start-page: 128
  year: 2020
  ident: 10.1016/j.jlamp.2023.100923_br0110
  article-title: On the expressivity of total reversible programming languages
– year: 2013
  ident: 10.1016/j.jlamp.2023.100923_br0050
– year: 1872
  ident: 10.1016/j.jlamp.2023.100923_br0040
– volume: 5
  start-page: 183
  issue: 3
  year: 1961
  ident: 10.1016/j.jlamp.2023.100923_br0010
  article-title: Irreversibility and heat generation in the computing process
  publication-title: IBM J. Res. Dev.
  doi: 10.1147/rd.53.0183
– volume: 36
  start-page: 233
  issue: 3
  year: 2018
  ident: 10.1016/j.jlamp.2023.100923_br0100
  article-title: On a class of reversible primitive recursive functions and its Turing-complete extensions
  publication-title: New Gener. Comput.
  doi: 10.1007/s00354-018-0039-1
– year: 2019
  ident: 10.1016/j.jlamp.2023.100923_br0230
  article-title: Formalizing computability theory via partial recursive functions
– year: 2010
  ident: 10.1016/j.jlamp.2023.100923_br0060
– volume: vol. 69
  year: 2017
  ident: 10.1016/j.jlamp.2023.100923_br0180
  article-title: A certified study of a reversible programming language
– volume: 84
  year: 1878
  ident: 10.1016/j.jlamp.2023.100923_br0160
  article-title: Ein beitrag zur mannigfaltigkeitslehre
  publication-title: J. Reine Angew. Math.
– year: 1967
  ident: 10.1016/j.jlamp.2023.100923_br0090
  article-title: Theory of Recursive Functions and Effective Computability
– volume: 813
  start-page: 218
  year: 2020
  ident: 10.1016/j.jlamp.2023.100923_br0080
  article-title: A class of recursive permutations which is primitive recursive complete
  publication-title: Theor. Comput. Sci.
  doi: 10.1016/j.tcs.2019.11.029
– year: 2017
  ident: 10.1016/j.jlamp.2023.100923_br0070
  article-title: Theory of reversible computing
– volume: 39
  start-page: 109
  year: 2007
  ident: 10.1016/j.jlamp.2023.100923_br0190
  article-title: User interaction with the matita proof assistant
  publication-title: J. Autom. Reason.
  doi: 10.1007/s10817-007-9070-5
– ident: 10.1016/j.jlamp.2023.100923_br0170
– year: 2021
  ident: 10.1016/j.jlamp.2023.100923_br0210
– year: 1999
  ident: 10.1016/j.jlamp.2023.100923_br0250
– ident: 10.1016/j.jlamp.2023.100923_br0220
– volume: 813
  start-page: 143
  year: 2020
  ident: 10.1016/j.jlamp.2023.100923_br0130
  article-title: The fixed point problem of a simple reversible language
  publication-title: Theor. Comput. Sci.
  doi: 10.1016/j.tcs.2019.10.005
– start-page: 378
  year: 2015
  ident: 10.1016/j.jlamp.2023.100923_br0140
  article-title: The Lean theorem prover (system description)
– volume: vol. 13354
  start-page: 111
  year: 2022
  ident: 10.1016/j.jlamp.2023.100923_br0150
  article-title: Certifying algorithms and relevant properties of reversible primitive permutations with Lean
– ident: 10.1016/j.jlamp.2023.100923_br0240
SSID ssj0001687831
Score 2.2643845
Snippet Reversible primitive permutations (RPP) is a class of recursive functions that models reversible computation. We present a proof, which has been verified using...
SourceID crossref
elsevier
SourceType Index Database
Publisher
StartPage 100923
SubjectTerms Lean
Primitive recursion
Reversible computation
Title Certifying expressive power and algorithms of reversible primitive permutations with Lean
URI https://dx.doi.org/10.1016/j.jlamp.2023.100923
Volume 136
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1LT8MwDI7GduHCGzFeyoEj0bo82uQ4TUzjtQtMGqcqTRMYGt20dYifT9yHAAlx4Ngorqqvjm059meELpx2hruuJSYVIYERhQRIwIkUxquHZqwroDn5fhQOx_xmIiYN1K97YaCssrL9pU0vrHW10qnQ7Cym084DhdiBFjdFQEqjNlCLMhV61W71rm-Ho69USygjWUwmBBECMjX_UFHp9eqxB-pKyqBmQFH2u4_65ncGO2irChhxr_ymXdSw2R7arocx4Ops7qOnPlRIF11L2H6U5a3vFi9gChrWWYr17Hm-nOYvbys8dxiYm5b-OMz8FpjslRebvZlel3fzKwwZWnxndXaAxoOrx_6QVHMTiKFK5kRZxpwQWigmXcgDo103YjRSATWGpgwIW6SwqXTSuiiQCTOhSpR3Z5Yyri07RM1sntkjhH1w4xe5DZw13IZJwo22gdCJkKn2r2ijyxqpeFHSY8R13dhrXAAbA7BxCWwbhTWa8Y-_HHsD_pfg8X8FT9Cmf-Jl0uQUNfPl2p75MCJPzis1-QQT08dd
linkProvider Elsevier
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV07T8MwED6VMsDCG1GeHhiJmtpx4oxVRdVC24VWKlPkODa0KmlVAuLn48tDgIQYWB1fFH2x7072d98BXBtplGda2lEJ9x1sUeigCLgjuLLLQzLW4licPBz5vYl3N-XTGnSqWhikVZa-v_DpubcuR5olms3VbNZ8oJg70PymCEVpwg3YRHUqXofNdv--N_o6avFFIPLOhGjioE2lP5QzveYWe5SupAw5AyFlv8eob3Gnuwc7ZcJI2sU37UNNpwewWzVjIOXePITHDjKk86oloj8Keuu7JivsgkZkmhC5eFquZ9nzyytZGoLKTWu7HRZ2Cnb2yvLJ1k2_FXfzrwRPaMlAy_QIJt3bcafnlH0THEVDkTmhZsxwLnnIhPE9V0nTChgNQpcqRROGgi2C60QYoU3gipgpP4xDG840ZZ7U7Bjq6TLVJ0BscmMHPe0arTztx7GnpHa5jLlIpH1FA24qpKJVIY8RVbyxeZQDGyGwUQFsA_wKzejHX46sA__L8PS_hlew1RsPB9GgP7o_g237xCsOUM6hnq3f9IVNKbL4slwyn4PtykM
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Certifying+expressive+power+and+algorithms+of+reversible+primitive+permutations+with+Lean&rft.jtitle=Journal+of+logical+and+algebraic+methods+in+programming&rft.au=Maletto%2C+Giacomo&rft.au=Roversi%2C+Luca&rft.date=2024-01-01&rft.pub=Elsevier+Inc&rft.issn=2352-2208&rft.volume=136&rft_id=info:doi/10.1016%2Fj.jlamp.2023.100923&rft.externalDocID=S2352220823000779
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2352-2208&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2352-2208&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2352-2208&client=summon