Proving Properties of Lazy Functional Programs with Sparkle

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

  • Affiliations:
  • Institute for Computing and Information Sciences, Radboud University Nijmegen, The Netherlands;Institute for Computing and Information Sciences, Radboud University Nijmegen, The Netherlands;Institute for Computing and Information Sciences, Radboud University Nijmegen, The Netherlands

  • Venue:
  • Central European Functional Programming School
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

This tutorial paper aims to provide the necessary expertise for working with the proof assistant Sparkle, which is dedicated to the lazy functional programming language Clean. The purpose of a proof assistant is to use formal reasoning to verify the correctness of a computer program. Formal reasoning is very powerful, but is unfortunately also difficult to carry out.Due to their mathematical nature, functional programming languages are well suited for formal reasoning. Moreover, Sparkleoffers specialized support for reasoning about Clean, and is integrated into its official development environment. These factors make Sparklea proof assistant that is relatively easy to use.This paper provides both theoretical background for formal reasoning, and detailed information about using Sparklein practice. Special attention will be given to specific aspects that arise due to lazy evaluation and due to the existence of strictness annotations. Several assignments are included in the text, which provide hands-on experience with Sparkle.