PEQcheck: Localized and Context-aware Checking of Functional Equivalence (Technical Report)

01/22/2021
by   Marie-Christine Jakobs, et al.
0

Refactorings must not alter the program's functionality. However, not all refactorings fulfill this requirement. Hence, one must explicitly check that a refactoring does not alter the functionality. Since one rarely has a formal specification of the program's behavior, we utilize the original program as functional specification. Then, we check whether the original and refactored program are functionally equivalent. To this end, we apply a common idea and reduce equivalence checking to program verification. To increase efficiency, our equivalence checker PEQcheck constructs one verification task per refactored code segment instead of one per function as typically done by prior work. In addition, PEQcheck considers the context of the code segments. For instance, only variables that are modified and live are required to be equivalent and read-only variables may be shared between original and refactored code segments. We show that PEQcheck is sound.Moreover, our evaluation testifies that the localized and context-aware checking performed by can indeed be beneficial.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/28/2017

Automated Formal Equivalence Verification of Pipelined Nested Loops in Datapath Designs

In this paper, we present an efficient formal approach to check the equi...
research
05/26/2023

Automatic Program Instrumentation for Automatic Verification (Extended Technical Report)

In deductive verification and software model checking, dealing with cert...
research
09/20/2019

Equivalence Checking of Non-deterministic Operations

Checking the semantic equivalence of operations is an important task in ...
research
08/06/2021

Explaining Counterexamples with Giant-Step Assertion Checking

Identifying the cause of a proof failure during deductive verification o...
research
09/12/2023

Style2Fab: Functionality-Aware Segmentation for Fabricating Personalized 3D Models with Generative AI

With recent advances in Generative AI, it is becoming easier to automati...
research
05/13/2021

Stateless Model Checking under a Reads-Value-From Equivalence

Stateless model checking (SMC) is one of the standard approaches to the ...
research
02/21/2018

Path-Based Function Embedding and its Application to Specification Mining

Relationships among program elements is useful for program understanding...

Please sign up or login with your details

Forgot password? Click here to reset