Tests and proofs for custom data generators - Archive ouverte HAL Accéder directement au contenu
Article Dans Une Revue Formal Aspects of Computing Année : 2018

Tests and proofs for custom data generators

Résumé

We address automated testing and interactive proving of properties involving complex data structures with constraints, like the ones studied in enumerative combinatorics, e.g., permutations and maps. In this paper we show testing techniques to check properties of custom data generators for these structures. We focus on random property-based testing and bounded exhaustive testing, to find counterexamples for false conjectures in the Coq proof assistant. For random testing we rely on the existing Coq plugin QuickChick and its toolbox to write random generators. For bounded exhaustive testing, we use logic programming to generate all the data up to a given size. We also propose an extension of QuickChick with bounded exhaustive testing based on generators developed inside Coq, but also on correct-by-construction generators developed with Why3. These tools are applied to an original Coq formalization of the combinatorial structures of permutations and rooted maps, together with some operations on them and properties about them. Recursive generators are defined for each combinatorial family. They are used for debugging properties which are finally proved in Coq. This large case study is also a contribution in enumerative combinatorics.
Fichier principal
Vignette du fichier
34629641-d48a-4e33-a475-164f13aa918f-author.pdf (615.15 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02302096 , version 1 (01-10-2019)

Identifiants

  • HAL Id : hal-02302096 , version 1

Citer

Catherine Dubois, Alain Giorgetti. Tests and proofs for custom data generators. Formal Aspects of Computing, 2018, 30 (6), pp.659 - 684. ⟨hal-02302096⟩
84 Consultations
171 Téléchargements

Partager

Gmail Facebook X LinkedIn More