English

Verifying Semantic Conflict-Freedom in Three-Way Program Merges

Programming Languages 2018-02-20 v1

Abstract

Even though many programmers rely on 3-way merge tools to integrate changes from different branches, such tools can introduce subtle bugs in the integration process. This paper aims to mitigate this problem by defining a semantic notion of confict-freedom, which ensures that the merged program does not introduce new unwanted behaviors. We also show how to verify this property using a novel, compositional algorithm that combines lightweight dependence analysis for shared program fragments and precise relational reasoning for the modifications. We evaluate our tool called SafeMerge on 52 real-world merge scenarios obtained from Github and compare the results against a textual merge tool. The experimental results demonstrate the benefits of our approach over syntactic confict-freedom and indicate that SafeMerge is both precise and practical.

Keywords

Cite

@article{arxiv.1802.06551,
  title  = {Verifying Semantic Conflict-Freedom in Three-Way Program Merges},
  author = {Marcelo Sousa and Isil Dillig and Shuvendu Lahiri},
  journal= {arXiv preprint arXiv:1802.06551},
  year   = {2018}
}
R2 v1 2026-06-23T00:26:10.017Z