raymyers / verified-refactoring

Exploring techniques for code refactoring with formal verification

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Verified Refactoring

Exploring techniques for code refactoring with formal verification.

Refactoring is changing the structure of a program without changing the behavior. Traditional refactoring tools help us achieve this using syntax transformations. By using Formal Methods to reason about the semantics of the code, we can open up more posibilities!

This collection is inspired by Provable Refactorings by Arlo Belshee, with the addition of mechanically verified proof rather than informal arguments to ensure behavior is unchanged.

Techniques and examples

Related Concepts

  • Relational Verification
  • Differential Analysis
  • Program Equivalence
  • Program Synthesis
  • Symbolic Execution

Cool Papers

About

Exploring techniques for code refactoring with formal verification

License:MIT License