2011
DOI: 10.4204/eptcs.70.1
|View full text |Cite
|
Sign up to set email alerts
|

Integrating Testing and Interactive Theorem Proving

Abstract: Using an interactive theorem prover to reason about programs involves a sequence of interactions where the user challenges the theorem prover with conjectures. Invariably, many of the conjectures posed are in fact false, and users often spend considerable effort examining the theorem prover's output before realizing this. We present a synergistic integration of testing with theorem proving, implemented in the ACL2 Sedan (ACL2s), for automatically generating concrete counterexamples. Our method uses the full po… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2

Citation Types

0
33
0

Year Published

2013
2013
2020
2020

Publication Types

Select...
5
4

Relationship

1
8

Authors

Journals

citations
Cited by 40 publications
(33 citation statements)
references
References 17 publications
0
33
0
Order By: Relevance
“…Eastlund [11] implemented DoubleCheck, an adaption of QuickCheck for ACL2. Chamarthi et al [20] later proposed a more advanced counterexample finding tool for ACL2s, which uses the full power of the theorem prover and libraries to simplify conjectures so that they are easier to falsify. While all these tools are general and only require the statement of the conjecture to be in a special form (e.g., executable specification), so they could in principle be applied to test noninterference, our experience with QuickCheck suggests that for the best results one has to incorporate domain knowledge about the machine and the property being tested.…”
Section: Related Workmentioning
confidence: 99%
“…Eastlund [11] implemented DoubleCheck, an adaption of QuickCheck for ACL2. Chamarthi et al [20] later proposed a more advanced counterexample finding tool for ACL2s, which uses the full power of the theorem prover and libraries to simplify conjectures so that they are easier to falsify. While all these tools are general and only require the statement of the conjecture to be in a special form (e.g., executable specification), so they could in principle be applied to test noninterference, our experience with QuickCheck suggests that for the best results one has to incorporate domain knowledge about the machine and the property being tested.…”
Section: Related Workmentioning
confidence: 99%
“…Since being popularized by QuickCheck [20], property-based random testing has become a standard technique for improving software quality in a wide variety of programming languages [2,41,48,58] and for streamlining interaction with proof assistants [6,16,24,57,61].…”
Section: Introductionmentioning
confidence: 99%
“…Eastlund (2009) implemented DoubleCheck, an adaption of QuickCheck for ACL2. Chamarthi et al (2011) later proposed a more advanced counterexample finding tool for ACL2s, which uses the full power of the theorem prover and libraries to simplify conjectures so that they are easier to falsify. While all these tools are general and only require the statement of the conjecture to be in a special form (e.g., executable specification), so they could in principle be applied to test noninterference, our experience with QuickCheck suggests that for the best results one has to incorporate domain knowledge about the machine and the property being tested.…”
Section: Related Workmentioning
confidence: 99%