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...
Saved in:
Published in | Journal of logical and algebraic methods in programming Vol. 136; p. 100923 |
---|---|
Main Authors | , |
Format | Journal Article |
Language | English |
Published |
Elsevier Inc
01.01.2024
|
Subjects | |
Online Access | Get 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 |