REFINITY to Model and Prove Program Transformation Rules

  • Dominic SteinhöfelEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 12470)


Open image in new window is a workbench for modeling statement-level transformation rules on Open image in new window programs with the aim to formally verify their correctness. It is based on Abstract Execution, a verification framework for abstract programs with a high degree of proof automation, and interfaces with the Open image in new window program prover. We describe the user interface and functionality of Open image in new window , and illustrate its capabilities along the application to proving conditional correctness of a code refactoring rule.


  1. 1.
    Beckert, B., Klebanov, V., Weiß, B.: Dynamic logic for Java. Deductive Software Verification – The KeY Book. LNCS, vol. 10001, pp. 49–106. Springer, Cham (2016). CrossRefGoogle Scholar
  2. 2.
    Ahrendt, W., Roth, A., Sasse, R.: Automatic validation of transformation rules for Java verification against a rewriting semantics. In: Sutcliffe, G., Voronkov, A. (eds.) LPAR 2005. LNCS (LNAI), vol. 3835, pp. 412–426. Springer, Heidelberg (2005). CrossRefzbMATHGoogle Scholar
  3. 3.
    Beckert, B., Ulbrich, M.: Trends in relational program verification. Principled Software Development, pp. 41–58. Springer, Cham (2018). CrossRefGoogle Scholar
  4. 4.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Object Technology Series. Addison-Wesley, Boston (1999)Google Scholar
  5. 5.
    Garrido, A., Meseguer, J.: Formal specification and verification of Java refactorings. In: Proceedings of the 6th SCAM, pp. 165–174. IEEE Computer Society (2006)Google Scholar
  6. 6.
    Godlin, B., Strichman, O.: Regression verification: proving the equivalence of similar programs. Softw. Test. Verif. Reliab. 23(3), 241–258 (2013)CrossRefGoogle Scholar
  7. 7.
    Kassios, I.T.: The dynamic frames theory. Formal Asp. Comput. 23(3), 267–288 (2011). MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Kiefer, M., Klebanov, V., Ulbrich, M.: Relational program reasoning using compiler IR - combining static verification and dynamic analysis. J. Autom. Reasoning 60(3), 337–363 (2018). MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Kourie, D.G., Watson, B.W.: The Correctness-by-Construction Approach to Programming. Springer, Heidelberg (2012)Google Scholar
  10. 10.
    Kundu, S., Tatlock, Z., Lerner, S.: Proving optimizations correct using parameterized program equivalence. Proc. PLDI 2009, 327–337 (2009)Google Scholar
  11. 11.
    Lahiri, S.K., Hawblitzel, C., Kawaguchi, M., Rebêlo, H.: SYMDIFF: a language-agnostic semantic diff tool for imperative programs. In: Madhusudan, P., Seshia, S.A. (eds.) CAV 2012. LNCS, vol. 7358, pp. 712–717. Springer, Heidelberg (2012). CrossRefGoogle Scholar
  12. 12.
    Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  13. 13.
    Lopes, N.P., Menendez, D., Nagarakatte, S., Regehr, J.: Practical verification of peephole optimizations with alive. Commun. ACM 61(2), 84–91 (2018)CrossRefGoogle Scholar
  14. 14.
    Srivastava, S., Gulwani, S., Foster, J.S.: From program verification to program synthesis. In: Proceedings of the 37th POPL, pp. 313–326 (2010)Google Scholar
  15. 15.
    Steinhöfel, D.: Abstract Execution: automatically proving infinitely many programs. Ph.D. thesis, TU Darmstadt, Department of Computer Science, Darmstadt, Germany (2020).
  16. 16.
    Steinhöfel, D., Hähnle, R.: Abstract Execution. In: Proceedings of the Third World Congress on Formal Methods - The Next 30 Years, (FM), pp. 319–336 (2019).
  17. 17.
    Tan, Y.K., Myreen, M.O., Kumar, R., Fox, A., Owens, S., Norrish, M.: A new verified compiler backend for CakeML. In: Proceedings of the 21st ICFP. ACM (2016)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2020

Authors and Affiliations

  1. 1.Department of Computer ScienceTU DarmstadtDarmstadtGermany

Personalised recommendations