A Single-Step Term-Graph Reduction System for Proof Assistants

  • Authors:
  • Maarten Mol;Marko Eekelen;Rinus Plasmeijer

  • Affiliations:
  • Department of Software Technology, Nijmegen University, The Netherlands;Department of Software Technology, Nijmegen University, The Netherlands;Department of Software Technology, Nijmegen University, The Netherlands

  • Venue:
  • Applications of Graph Transformations with Industrial Relevance
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, we will define a custom term-graph reduction system for a simplified lazy functional language. Our custom system is geared towards flexibility , which is accomplished by leaving the choice of redex free and by making use of single-step reduction. It is therefore more suited for formal reasoning than the well-established standard reduction systems, which usually fix a single redex and realize multi-step reduction only. We will show that our custom system is correct with respect to the standard systems, by proving that it is confluent and allows standard lazy functional evaluation as a possible reduction path. Our reduction system is used in the foundation of Sparkle . Sparkle is the dedicated proof assistant for Clean , a lazy functional programming language based on term-graph rewriting. An important reasoning step in Sparkle is the replacement of an expression with one of its reducts. The flexibility of our underlying reduction mechanism ensures that as many reduction options as possible are available for this reasoning step, which improves the ease of reasoning. Because our reduction system is based on a simplified lazy functional language, our results can be applied to any other functional language based on term-graph rewriting as well.