Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1637837.1637844acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesacl2Conference Proceedingsconference-collections
research-article

DoubleCheck your theorems

Published: 11 May 2009 Publication History

Abstract

Theorem proving in ACL2 is a complex undertaking. Initial attempts to admit a lemma often fail, in which case the programmer must either redirect ACL2's efforts or change the lemma. ACL2's output does not always indicate whether the formulation of the lemma or the proof process is at fault.
In this paper we present the automated testing framework DoubleCheck as an extension of Dracula, the ACL2 development environment for DrScheme. DoubleCheck creates randomized inputs for ACL2 conjectures and uses those to test the conjecture. If these tests fail, the programmer is presented with a list of counterexamples to the conjecture. DoubleCheck can be used to guide the theorem proving process or, in a classroom setting, as a gentle introduction to automated program verification.

References

[1]
Berghofer, S. and T. Nipkow. Random testing in Isabelle/HOL. In Proceedings of the 2nd IEEE International Conference on Software Engineering and Formal Methods, p. 230--239. IEEE, 2004.
[2]
Claessen, K. and J. Hughes. QuickCheck: a lightweight tool for random testing of Haskell programs. In Proceedings of the 5th ACM SIGPLAN International Conference on Functional Programming, p. 268--279. ACM, 2000.
[3]
Eastlund, C., D. Vaillancourt and M. Felleisen. ACL2 for freshmen: first experiences. In Proceedings of the 7th International Workshop on the ACL2 Theorem Prover and its Applications, p. 200--211. ACM, 2007.
[4]
Kaufmann, M., P. Manolios and J. S. Moore. Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, 2000.
[5]
Page, R., C. Eastlund and M. Felleisen. Functional programming and theorem proving for undergraduates: a progress report. In Proceedings of the 13th Workshop on Functional and Declarative Programming in Education. ACM, 2008.
[6]
Runciman, C., M. Naylor and F. Lindblad. SmallCheck and Lazy SmallCheck: automatic exhaustive testing for small values. In Proceedings of the First ACM SIGPLAN Symposium on Haskell, p. 37--48. ACM, 2008.
[7]
Spiridinov, A. and S. Khurshid. Pythia: Automatic generation of counterexamples for ACL2 using Alloy. In Proceedings of the 7th International Workshop on the ACL2 Theorem Prover and Its Applications, 2007.
[8]
Sumners, R. Checking ACL2 theorems via SAT checking. In Proceedings of the 3rd International Workshop on the ACL2 Theorem Prover and Its Applications, 2002.
[9]
Vaillancourt, D., R. Page and M. Felleisen. ACL2 in DrScheme. In Proceedings of the 6th International Workshop on the ACL2 Theorem Prover and its Applications, p. 107--116. ACM, 2006.
[10]
Welsh, N., F. Solsona and I. Glover. SchemeUnit and SchemeQL. In Proceedings of the 3rd Workshop on Scheme and Functional Programming, Technical Report GIT-CC-02-28, College of Computing, Georgia Institute of Technology, p. 21--30. ACM, 2002.

Cited By

View all
  • (2023)Merging Inductive RelationsProceedings of the ACM on Programming Languages10.1145/35912927:PLDI(1759-1778)Online publication date: 6-Jun-2023
  • (2022)Using ACL2 To Teach Students About Software TestingElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.359.4359(19-32)Online publication date: 24-May-2022
  • (2022)Property-Based Testing: Climbing the Stairway to VerificationProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567520(84-97)Online publication date: 29-Nov-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ACL2 '09: Proceedings of the Eighth International Workshop on the ACL2 Theorem Prover and its Applications
May 2009
144 pages
ISBN:9781605587424
DOI:10.1145/1637837
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 May 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. ACL2
  2. Dracula
  3. QuickCheck
  4. randomized testing

Qualifiers

  • Research-article

Conference

ACL2 '09

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Merging Inductive RelationsProceedings of the ACM on Programming Languages10.1145/35912927:PLDI(1759-1778)Online publication date: 6-Jun-2023
  • (2022)Using ACL2 To Teach Students About Software TestingElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.359.4359(19-32)Online publication date: 24-May-2022
  • (2022)Property-Based Testing: Climbing the Stairway to VerificationProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567520(84-97)Online publication date: 29-Nov-2022
  • (2021)Model Finding for ExplorationProtocols, Strands, and Logic10.1007/978-3-030-91631-2_9(156-174)Online publication date: 19-Nov-2021
  • (2017)Position paper: the science of deep specificationPhilosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences10.1098/rsta.2016.0331375:2104(20160331)Online publication date: 4-Sep-2017
  • (2016)Testing noninterference, quicklyJournal of Functional Programming10.1017/S095679681600005826Online publication date: 5-Apr-2016
  • (2014)Proceedings Twelfth International Workshop on the ACL2 Theorem Prover and its ApplicationsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.152.7152(87-88)Online publication date: 4-Jun-2014
  • (2013)Proof Pad: A New Development Environment for ACL2Electronic Proceedings in Theoretical Computer Science10.4204/EPTCS.114.2114(13-28)Online publication date: 26-Apr-2013
  • (2013)Testing noninterference, quicklyACM SIGPLAN Notices10.1145/2544174.250057448:9(455-468)Online publication date: 25-Sep-2013
  • (2013)Testing noninterference, quicklyProceedings of the 18th ACM SIGPLAN international conference on Functional programming10.1145/2500365.2500574(455-468)Online publication date: 25-Sep-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media