Abstract
Sparkle is a new theorem prover written in and specialized for the functional programming language Clean. It is mainly intended to be used by programmers for proving properties of parts of programs, combining programming and reasoning into one process. It can also be used by logicians interested in proving properties of larger programs.
Two features of Sparkle are in particular helpful for programmers. Firstly, Sparkle is integrated in Clean and has a semantics based on lazy graph-rewriting. This allows reasoning to take place on the program itself, rather than on a translation that uses di.erent concepts. Secondly, Sparkle supports automated reasoning. Trivial goals will automatically be discarded and suggestions will be given on more difficult goals.
This paper presents a small example proof built in Sparkle. It will be shown that building this proof is easy and requires little effort.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
P. Achten and M. Wierich. A Tutorial to the CLEAN Object I/O Library (version 1.2), Nijmegen, February 2000. CSI Technical Report, CSI-R0003.
E. Barendsen and S. Smetsers. Strictness Typing, Nijmegen, 1998. In proceedings of the 10th International Workshop on Implementation of Functional Languages (IFL’98), London, 1998, pages 101–116.
R. Bird. Introduction to Functional Programming using Haskell, second edition, Prentice Hall Europe, 1998, ISBN 0-13-484346-0.
A. Butterfield and G. Strong. Proving Correctness of Programs with I/O-a paradigm comparison, Dublin, 2001. In proceedings of the 13th InternationalWorkshop on Implementation of Functional Languages (IFL’01), Stockholm, 2001, pages 319–334.
The Coq Development Team. The Coq Proof Assistant Reference Manual (version 7.0), Inria, 1998. http://pauillac.inria.fr/coq/doc/main.html
M. van Eekelen and R. Plasmeijer. Concurrent Clean Language Report (version 1.3), Nijmegen, June 1998. CSI Technical Report, CSI-R9816. http://www.cs.kun.nl/~clean/Manuals/manuals.html
T. Noll, L. Fredlund and D. Gurov. The EVT Erlang Verification Tool, Stockholm, 2001. In proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’01), Lecture Notes in Computer Science, Vol. 2031, Springer, 2001, ISBN 3-540-41865-2, pages 582–585.
S. Mintchev. Mechanized reasoning about functional programs, Manchester, 1994. In K. Hammond, D.N. Turner and P. Sansom, editors, Functional Programming, Glasgow 1994, pages 151–167. Springer-Verlag.
M. de Mol and M. van Eekelen. A proof tool dedicated to Clean-the first prototype, 1999. In proceedings of Applications of Graph Transformations with Industrial Relevance 1999, Lecture Notes in Computer Science, Vol. 1779, Springer, 2000, ISBN 3-540-67658-9, pages 271–278.
S. Owre, N. Shankar, J.M. Rushby and D.W.J. Stringer-Calvert. PVS Language Reference (version 2.3), 1999. http://pvs.csl.sri.com/manuals.html
L. C. Paulson. Logic and Computation, Cambridge University Press, 1987. ISBN 0-52-134632-0.
L. C. Paulson. The Isabelle Reference Manual, Cambridge, 2001. http://www.cl.cam.ac.uk/Research/HVG/Isabelle/docs.html
S. Peyton Jones(editor), J. Hughes(editor) et al. Report on the programming language Haskell 98, Yale, 1999. http://www.haskell.org/definition/
N. Winstanley. Era User Manual, version 2.0, Glasgow, 1998. http://www.dcs.gla.ac.uk/~nww/Era/Era.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
de Mol, M., van Eekelen, M., Plasmeijer, R. (2002). Theorem Proving for Functional Programmers. In: Arts, T., Mohnen, M. (eds) Implementation of Functional Languages. IFL 2001. Lecture Notes in Computer Science, vol 2312. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46028-4_4
Download citation
DOI: https://doi.org/10.1007/3-540-46028-4_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43537-2
Online ISBN: 978-3-540-46028-2
eBook Packages: Springer Book Archive