CF-GKAT: Efficient Validation of Control-Flow Transformations

Guarded Kleene Algebra with Tests (GKAT) provides a sound and complete framework to reason about trace equivalence between simple imperative programs. However, there are still several notable limitations. First, GKAT is completely agnostic with respect to the meaning of primitives, to keep equivalen...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:arXiv.org 2024-11
Hauptverfasser: Zhang, Cheng, Kappé, Tobias, Narváez, David E, Naus, Nico
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title arXiv.org
container_volume
creator Zhang, Cheng
Kappé, Tobias
Narváez, David E
Naus, Nico
description Guarded Kleene Algebra with Tests (GKAT) provides a sound and complete framework to reason about trace equivalence between simple imperative programs. However, there are still several notable limitations. First, GKAT is completely agnostic with respect to the meaning of primitives, to keep equivalence decidable. Second, GKAT excludes non-local control flow such as goto, break, and return. To overcome these limitations, we introduce Control-Flow GKAT (CF-GKAT), a system that allows reasoning about programs that include non-local control flow as well as hardcoded values. CF-GKAT is able to soundly and completely verify trace equivalence of a larger class of programs, while preserving the nearly-linear efficiency of GKAT. This makes CF-GKAT suitable for the verification of control-flow manipulating procedures, such as decompilation and goto-elimination. To demonstrate CF-GKAT's abilities, we validated the output of several highly non-trivial program transformations, such as Erosa and Hendren's goto-elimination procedure and the output of Ghidra decompiler. CF-GKAT opens up the application of Kleene Algebra to a wider set of challenges, and provides an important verification tool that can be applied to the field of decompilation and control-flow transformation.
doi_str_mv 10.48550/arxiv.2411.13220
format Article
fullrecord <record><control><sourceid>proquest_arxiv</sourceid><recordid>TN_cdi_arxiv_primary_2411_13220</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>3131611971</sourcerecordid><originalsourceid>FETCH-LOGICAL-a521-efede12145f9031d02647ca00a4483693e56a0db0eee98f8779711391cb308c83</originalsourceid><addsrcrecordid>eNotjz1rwzAYhEWh0JDmB3SqobNcvXolWy50CCZJSwNdTFej2BIoOFYqOf3493WcTjfccXcPIXfAUqGkZI86_LivlAuAFJBzdkVmHBGoEpzfkEWMe8YYz3IuJc7Ic7mmm7dl9ZSsrHWNM_2QfOjOtXpwvk-8TUrfD8F3dN3576QKuo_Wh8Nkx1tybXUXzeJf56Rar6ryhW7fN6_lcku15ECNNa0BDkLagiG047rIG82YFkJhVqCRmWbtjhljCmVVnhc5ABbQ7JCpRuGc3F9qJ7b6GNxBh9_6zFhPjGPi4ZI4Bv95MnGo9_4U-vFTjYCQAYyV-Aek7FIA</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>3131611971</pqid></control><display><type>article</type><title>CF-GKAT: Efficient Validation of Control-Flow Transformations</title><source>arXiv.org</source><source>Free E- Journals</source><creator>Zhang, Cheng ; Kappé, Tobias ; Narváez, David E ; Naus, Nico</creator><creatorcontrib>Zhang, Cheng ; Kappé, Tobias ; Narváez, David E ; Naus, Nico</creatorcontrib><description>Guarded Kleene Algebra with Tests (GKAT) provides a sound and complete framework to reason about trace equivalence between simple imperative programs. However, there are still several notable limitations. First, GKAT is completely agnostic with respect to the meaning of primitives, to keep equivalence decidable. Second, GKAT excludes non-local control flow such as goto, break, and return. To overcome these limitations, we introduce Control-Flow GKAT (CF-GKAT), a system that allows reasoning about programs that include non-local control flow as well as hardcoded values. CF-GKAT is able to soundly and completely verify trace equivalence of a larger class of programs, while preserving the nearly-linear efficiency of GKAT. This makes CF-GKAT suitable for the verification of control-flow manipulating procedures, such as decompilation and goto-elimination. To demonstrate CF-GKAT's abilities, we validated the output of several highly non-trivial program transformations, such as Erosa and Hendren's goto-elimination procedure and the output of Ghidra decompiler. CF-GKAT opens up the application of Kleene Algebra to a wider set of challenges, and provides an important verification tool that can be applied to the field of decompilation and control-flow transformation.</description><identifier>EISSN: 2331-8422</identifier><identifier>DOI: 10.48550/arxiv.2411.13220</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Algebra ; Computer Science - Programming Languages ; Equivalence ; Verification</subject><ispartof>arXiv.org, 2024-11</ispartof><rights>2024. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><rights>http://creativecommons.org/licenses/by/4.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,780,784,885,27925</link.rule.ids><backlink>$$Uhttps://doi.org/10.48550/arXiv.2411.13220$$DView paper in arXiv$$Hfree_for_read</backlink><backlink>$$Uhttps://doi.org/10.1145/3704857$$DView published paper (Access to full text may be restricted)$$Hfree_for_read</backlink></links><search><creatorcontrib>Zhang, Cheng</creatorcontrib><creatorcontrib>Kappé, Tobias</creatorcontrib><creatorcontrib>Narváez, David E</creatorcontrib><creatorcontrib>Naus, Nico</creatorcontrib><title>CF-GKAT: Efficient Validation of Control-Flow Transformations</title><title>arXiv.org</title><description>Guarded Kleene Algebra with Tests (GKAT) provides a sound and complete framework to reason about trace equivalence between simple imperative programs. However, there are still several notable limitations. First, GKAT is completely agnostic with respect to the meaning of primitives, to keep equivalence decidable. Second, GKAT excludes non-local control flow such as goto, break, and return. To overcome these limitations, we introduce Control-Flow GKAT (CF-GKAT), a system that allows reasoning about programs that include non-local control flow as well as hardcoded values. CF-GKAT is able to soundly and completely verify trace equivalence of a larger class of programs, while preserving the nearly-linear efficiency of GKAT. This makes CF-GKAT suitable for the verification of control-flow manipulating procedures, such as decompilation and goto-elimination. To demonstrate CF-GKAT's abilities, we validated the output of several highly non-trivial program transformations, such as Erosa and Hendren's goto-elimination procedure and the output of Ghidra decompiler. CF-GKAT opens up the application of Kleene Algebra to a wider set of challenges, and provides an important verification tool that can be applied to the field of decompilation and control-flow transformation.</description><subject>Algebra</subject><subject>Computer Science - Programming Languages</subject><subject>Equivalence</subject><subject>Verification</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2024</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GOX</sourceid><recordid>eNotjz1rwzAYhEWh0JDmB3SqobNcvXolWy50CCZJSwNdTFej2BIoOFYqOf3493WcTjfccXcPIXfAUqGkZI86_LivlAuAFJBzdkVmHBGoEpzfkEWMe8YYz3IuJc7Ic7mmm7dl9ZSsrHWNM_2QfOjOtXpwvk-8TUrfD8F3dN3576QKuo_Wh8Nkx1tybXUXzeJf56Rar6ryhW7fN6_lcku15ECNNa0BDkLagiG047rIG82YFkJhVqCRmWbtjhljCmVVnhc5ABbQ7JCpRuGc3F9qJ7b6GNxBh9_6zFhPjGPi4ZI4Bv95MnGo9_4U-vFTjYCQAYyV-Aek7FIA</recordid><startdate>20241120</startdate><enddate>20241120</enddate><creator>Zhang, Cheng</creator><creator>Kappé, Tobias</creator><creator>Narváez, David E</creator><creator>Naus, Nico</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20241120</creationdate><title>CF-GKAT: Efficient Validation of Control-Flow Transformations</title><author>Zhang, Cheng ; Kappé, Tobias ; Narváez, David E ; Naus, Nico</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a521-efede12145f9031d02647ca00a4483693e56a0db0eee98f8779711391cb308c83</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2024</creationdate><topic>Algebra</topic><topic>Computer Science - Programming Languages</topic><topic>Equivalence</topic><topic>Verification</topic><toplevel>online_resources</toplevel><creatorcontrib>Zhang, Cheng</creatorcontrib><creatorcontrib>Kappé, Tobias</creatorcontrib><creatorcontrib>Narváez, David E</creatorcontrib><creatorcontrib>Naus, Nico</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Access via ProQuest (Open Access)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>arXiv Computer Science</collection><collection>arXiv.org</collection><jtitle>arXiv.org</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Zhang, Cheng</au><au>Kappé, Tobias</au><au>Narváez, David E</au><au>Naus, Nico</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>CF-GKAT: Efficient Validation of Control-Flow Transformations</atitle><jtitle>arXiv.org</jtitle><date>2024-11-20</date><risdate>2024</risdate><eissn>2331-8422</eissn><abstract>Guarded Kleene Algebra with Tests (GKAT) provides a sound and complete framework to reason about trace equivalence between simple imperative programs. However, there are still several notable limitations. First, GKAT is completely agnostic with respect to the meaning of primitives, to keep equivalence decidable. Second, GKAT excludes non-local control flow such as goto, break, and return. To overcome these limitations, we introduce Control-Flow GKAT (CF-GKAT), a system that allows reasoning about programs that include non-local control flow as well as hardcoded values. CF-GKAT is able to soundly and completely verify trace equivalence of a larger class of programs, while preserving the nearly-linear efficiency of GKAT. This makes CF-GKAT suitable for the verification of control-flow manipulating procedures, such as decompilation and goto-elimination. To demonstrate CF-GKAT's abilities, we validated the output of several highly non-trivial program transformations, such as Erosa and Hendren's goto-elimination procedure and the output of Ghidra decompiler. CF-GKAT opens up the application of Kleene Algebra to a wider set of challenges, and provides an important verification tool that can be applied to the field of decompilation and control-flow transformation.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><doi>10.48550/arxiv.2411.13220</doi><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier EISSN: 2331-8422
ispartof arXiv.org, 2024-11
issn 2331-8422
language eng
recordid cdi_arxiv_primary_2411_13220
source arXiv.org; Free E- Journals
subjects Algebra
Computer Science - Programming Languages
Equivalence
Verification
title CF-GKAT: Efficient Validation of Control-Flow Transformations
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-23T04%3A43%3A30IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_arxiv&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=CF-GKAT:%20Efficient%20Validation%20of%20Control-Flow%20Transformations&rft.jtitle=arXiv.org&rft.au=Zhang,%20Cheng&rft.date=2024-11-20&rft.eissn=2331-8422&rft_id=info:doi/10.48550/arxiv.2411.13220&rft_dat=%3Cproquest_arxiv%3E3131611971%3C/proquest_arxiv%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=3131611971&rft_id=info:pmid/&rfr_iscdi=true