Saved in:
Bibliographic Details
Main Authors: Zhang, Cheng, Kappé, Tobias, Narváez, David E., Naus, Nico
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2411.13220
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866915105026867200
author Zhang, Cheng
Kappé, Tobias
Narváez, David E.
Naus, Nico
author_facet Zhang, Cheng
Kappé, Tobias
Narváez, David E.
Naus, Nico
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2411_13220
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle CF-GKAT: Efficient Validation of Control-Flow Transformations
Zhang, Cheng
Kappé, Tobias
Narváez, David E.
Naus, Nico
Programming Languages
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.
title CF-GKAT: Efficient Validation of Control-Flow Transformations
topic Programming Languages
url https://arxiv.org/abs/2411.13220