Flattening and Saturation: Two Representation Changes for Generalization
Machine Learning - Special issue on evaluating and changing representation
Journal of the ACM (JACM)
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Constraint-based mode analysis of mercury
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Mode Analysis Domains for Typed Logic Programs
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming Synthesis and Transformation
Random Testing in Isabelle/HOL
SEFM '04 Proceedings of the Software Engineering and Formal Methods, Second International Conference
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Systematic generation of glass-box test cases for functional logic programs
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Smallcheck and lazy smallcheck: automatic exhaustive testing for small values
Proceedings of the first ACM SIGPLAN symposium on Haskell
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Turning Inductive into Equational Specifications
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Bounded Model Generation for Isabelle/HOL
Electronic Notes in Theoretical Computer Science (ENTCS)
Multi-paradigm declarative languages
ICLP'07 Proceedings of the 23rd international conference on Logic programming
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Verifying a hotel key card system
ICTAC'06 Proceedings of the Third international conference on Theoretical Aspects of Computing
Code generation via higher-order rewrite systems
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Nitpick: a counterexample generator for higher-order logic based on a relational model finder
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
The new quickcheck for isabelle: random, exhaustive and symbolic testing under one roof
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Testing noninterference, quickly
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
We present a novel counterexample generator for the interactive theorem prover Isabelle based on a compiler that synthesizes test data generators for functional programming languages (e.g. ML, Haskell) from specifications in Isabelle. In contrast to naive type-based test data generators, the smart generators take the preconditions into account and only generate tests that fulfill the preconditions. The smart generators are constructed by a compiler that reformulates the preconditions as logic programs and analyzes them with an enriched mode inference. From this inference, the compiler can construct the desired generators in the functional programming language. Applying these test data generators reduces the number of tests significantly and enables us to find errors in specifications where naive random and exhaustive testing fail.