Hostname: page-component-76fb5796d-wq484 Total loading time: 0 Render date: 2024-04-26T02:35:52.362Z Has data issue: false hasContentIssue false

Quick specifications for the busy programmer

Published online by Cambridge University Press:  10 July 2017

NICHOLAS SMALLBONE
Affiliation:
Chalmers University of Technology, Gothenburg, Sweden (e-mails: nicsma@chalmers.se, moa.johansson@chalmers.se, koen@chalmers.se, algehed@chalmers.se)
MOA JOHANSSON
Affiliation:
Chalmers University of Technology, Gothenburg, Sweden (e-mails: nicsma@chalmers.se, moa.johansson@chalmers.se, koen@chalmers.se, algehed@chalmers.se)
KOEN CLAESSEN
Affiliation:
Chalmers University of Technology, Gothenburg, Sweden (e-mails: nicsma@chalmers.se, moa.johansson@chalmers.se, koen@chalmers.se, algehed@chalmers.se)
MAXIMILIAN ALGEHED
Affiliation:
Chalmers University of Technology, Gothenburg, Sweden (e-mails: nicsma@chalmers.se, moa.johansson@chalmers.se, koen@chalmers.se, algehed@chalmers.se)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

QuickSpec is a theory exploration system which tests a Haskell program to find equational properties of it, automatically. The equations can be used to help understand the program, or as lemmas to help prove the program correct. QuickSpec is largely automatic: the user just supplies the functions to be tested and QuickCheck data generators. Previous theory exploration systems, including earlier versions of QuickSpec itself, scaled poorly. This paper describes a new architecture for theory exploration with which we can find vastly more complex laws than before, and much faster. We demonstrate theory exploration in QuickSpec on problems both from functional programming and mathematics.

Type
Articles
Copyright
Copyright © Cambridge University Press 2017 

References

Bachmair, L., Dershowitz, N. & Plaisted, D. A. (1989) Chapter 1 of Vol. II of Resolution of Equations in Algebraic Structures. In Completion without Failure, Ait-Kaci, H. and Nivat, M., eds., Academic Press.Google Scholar
Baez, J. C. (2002) The octonions. Bull. Am. Math. Soc. 39, 145205.Google Scholar
Buchberger, B., Creciun, A., Jebelean, T., Kovacs, L., Kutsia, T., Nakagawa, K., Piroi, F., Popov, N., Robu, J., Rosenkranz, M. & Windsteiger, W. (2006) Theorema: Towards computer-aided mathematical theory exploration. J. Appl. Log. 4 (4), 470504.CrossRefGoogle Scholar
Bundy, A., McCasland, R. & Smith, P. (2015) MATHsAiD: Automated Mathematical Theory Exploration. Working paper. University of Edinburgh.Google Scholar
Claessen, K., Duregård, J. & Pałka, M. H. (2014) Generating constrained random data with uniform distribution. In International Symposium on Functional and Logic Programming. Springer, pp. 1834.CrossRefGoogle Scholar
Claessen, K. & Hughes, J. (2000) QuickCheck: A lightweight tool for random testing of Haskell programs.In Proceedings of ICFP, pp. 268–279.Google Scholar
Claessen, K., Johansson, M., Rosén, D. & Smallbone, N. (2013) Automating inductive proofs using theory exploration. In Proceedings of the Conference on Auomtated Deduction (CADE), LNCS, vol. 7898. Springer, pp. 392–406.Google Scholar
Claessen, K., Smallbone, N. & Hughes, J. (2010) QuickSpec: Guessing formal specifications using testing. In Proceedings of TAP, pp. 6–21.CrossRefGoogle Scholar
Duregård, J. (2016) Automating Black-Box Property Based Testing. PhD Thesis, Chalmers University of Technology.Google Scholar
Ernst, M. D., Perkins, J.f H., Guo, P. J., McCamant, S., Pacheco, C., Tschantz, M. S. & Xiao, C. (2007) The Daikon system for dynamic detection of likely invariants. Sci. Comput. Program. 69 (1–3), 3545.Google Scholar
Henderson, P. (1982) Functional geometry. In Symposium on LISP and Functional Programming, pp. 179–187.Google Scholar
Henderson, P. (2002) Functional geometry. Higher-Order Symbol. Comput. 15 (4), 349365.Google Scholar
Hughes, J. (1995) The design of a pretty-printing library. In Proceedings of Advanced Functional Programming. Springer Verlag, pp. 53–96.Google Scholar
Johansson, M., Dixon, L. & Bundy, A. (2011) Conjecture synthesis for inductive theories. J. Autom. Reason. 47 (3), 251289.Google Scholar
Johansson, M., Rosén, D., Smallbone, N. & Claessen, K. (2014) Hipster: Integrating theory exploration in a proof assistant. In Conference on Intelligent Computer Mathematics.CrossRefGoogle Scholar
Knuth, D. E. & Bendix, P. B. (1983) Simple word problems in universal algebras. In Automation of Reasoning, Siekmann, JrgH. & Wrightson, G. (eds), Symbolic Computation. Berlin Heidelberg: Springer, pp. 342376.Google Scholar
Martin, U. & Nipkow, T. (1990) Ordered rewriting and confluence. In Proceedings of 10th International Conference Automated Deduction, Stickel, M. E. (ed), vol. 449, pp. 366–380.Google Scholar
Montano-Rivas, O., McCasland, R., Dixon, L. & Bundy, A. (2012) Scheme-based theorem discovery and concept invention. Expert Syst. Appl. 39 (2), 16371646.Google Scholar
Moufang, R. (1935) Zur struktur von alternativekörpen. Math. Ann. 110, 416430.Google Scholar
Smith, J.D.H. & Romanowska, Anna B. (1999) Post-modern algebra. Wiley-Interscience.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.