Proving the equivalence of higher-order terms by means of supercompilation

  • Authors:
  • Ilya Klyuchnikov;Sergei Romanenko

  • Affiliations:
  • Keldysh Institute of Applied Mathematics, Russian Academy of Sciences;Keldysh Institute of Applied Mathematics, Russian Academy of Sciences

  • Venue:
  • PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

One of the applications of supercompilation is proving properties of programs. We focus in this paper on a specific task: proving term equivalence for a higher-order lazy functional language. The “classical” way to prove equivalence of two terms t1 and t2 is to write an equality function equals and to simplify the term (equals t1 t2). However, this works only when certain conditions are met. The paper presents another approach to proving term equivalence by means of supercompilation. In this approach we supercompile both terms and compare supercompiled terms syntactically. Some applications of the technique are discussed. In particular, one of these applications may lead to the development of a more powerful “higher-level” supercompiler.