{"id":15168746,"url":"https://github.com/quickchick/quickchick","last_synced_at":"2025-05-16T07:04:07.418Z","repository":{"id":15682784,"uuid":"18420385","full_name":"QuickChick/QuickChick","owner":"QuickChick","description":"Randomized Property-Based Testing Plugin for Coq","archived":false,"fork":false,"pushed_at":"2025-05-05T16:26:16.000Z","size":29120,"stargazers_count":263,"open_issues_count":92,"forks_count":48,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-05-05T17:52:32.986Z","etag":null,"topics":["coq","testing"],"latest_commit_sha":null,"homepage":"","language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QuickChick.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-04-03T22:36:19.000Z","updated_at":"2025-05-05T16:26:21.000Z","dependencies_parsed_at":"2023-10-12T01:39:05.705Z","dependency_job_id":"b6e47a1a-68d3-4584-b3ee-beb7887b2a33","html_url":"https://github.com/QuickChick/QuickChick","commit_stats":{"total_commits":1815,"total_committers":50,"mean_commits":36.3,"dds":0.8303030303030303,"last_synced_commit":"3f66a746719a1b93b49ad640379a0733f024a529"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickChick%2FQuickChick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickChick%2FQuickChick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickChick%2FQuickChick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickChick%2FQuickChick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QuickChick","download_url":"https://codeload.github.com/QuickChick/QuickChick/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254485053,"owners_count":22078767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coq","testing"],"created_at":"2024-09-27T06:41:20.449Z","updated_at":"2025-05-16T07:04:07.393Z","avatar_url":"https://github.com/QuickChick.png","language":"Coq","funding_links":[],"categories":[],"sub_categories":[],"readme":"QuickChick\n==========\n\n[![CircleCI](https://circleci.com/gh/QuickChick/QuickChick.svg?style=svg)](https://circleci.com/gh/QuickChick/QuickChick)\n[![project chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://coq.zulipchat.com/#narrow/stream/237977-Coq-users)\n\n## Description\n \n- Randomized property-based testing plugin for Coq; a clone of [Haskell QuickCheck]\n- Includes a [foundational verification framework for testing code]\n- Includes a [mechanism for automatically deriving generators for inductive relations]\n\n[Haskell QuickCheck]:\nhttps://hackage.haskell.org/package/QuickCheck\n\n[foundational verification framework for testing code]:\nhttp://prosecco.gforge.inria.fr/personal/hritcu/publications/foundational-pbt.pdf\n\n[mechanism for automatically deriving generators for inductive relations]:\nhttps://lemonidas.github.io/pdf/GeneratingGoodGenerators.pdf\n\n## Tutorial\n\n- Small tutorials on Basic Usage and Automation can be found under `tutorials/`\n- An extended introduction can be found in [QuickChick: Property-Based Testing in Coq][sfqc] (Software Foundations, Volume 4)\n\n[sfqc]: https://softwarefoundations.cis.upenn.edu/qc-current/index.html\n\n## Installation\n\n### From OPAM\n\n    # Add the Coq opam repository (if you haven't already)\n    opam repo add coq-released https://coq.inria.fr/opam/released\n    opam update\n    # Install the coq-quickchick opam package\n    opam install coq-quickchick\n\n## Simple Examples\n\n  - `examples/Tutorial.v`\n  - `examples/RedBlack`\n  - `examples/stlc`\n  - `examples/ifc-basic` \n\nRunning `make tests` in the top-level QuickChick folder will check and execute all of these.\nIf successful, you should see \"success\" at the end.\n\n## Documentation\n\nThe public API of QuickChick is summarized in `QuickChickInterface.v`.\n\n### Top-level Commands\n\n- `QuickCheck c`\n- `Sample g`\n- `Derive Arbitrary for c`\n- `Derive Show for c`\n- `Derive ArbitrarySizedSuchThat for (fun x =\u003e p)`\n- `Derive DecOpt for p`\n- `Derive EnumSizedSuchThat for (fun x =\u003e p)`\n- `Derive ArbitrarySizedSuchThat for (fun x =\u003e let (x1,x2...) := x in p)`\n- `QuickCheckWith args c`\n- `MutateCheck c p`\n- `MutateCheckWith args c p`\n- `MutateCheckMany c ps`\n- `MutateCheckManyWith args c ps`\n\n### More resources\n\nHere is some more reading material:\n  - Our PLDI 2022 paper on [a mechanism for automatically deriving generators, enumerators, and checkers for inductive relations](https://lemonidas.github.io/pdf/ComputingCorrectly.pdf)\n  - Our POPL 2018 paper on [a mechanism for automatically deriving generators for inductive relations](https://lemonidas.github.io/pdf/GeneratingGoodGenerators.pdf)\n  - Our ITP 2015 paper on [Foundational Property-Based Testing](http://prosecco.gforge.inria.fr/personal/hritcu/publications/foundational-pbt.pdf)\n  - Our PLDI 2023 paper on [a mechanism for merging multiple inductive relations into one](https://lemonidas.github.io/pdf/MergingInductiveRelations.pdf)\n  - Leo's invited talk at CLA on [Random Testing in the Coq Proof Assistant](https://lemonidas.github.io/pdf/InvitedCLA.pdf)\n  - Catalin's [internship topic proposals for 2015](http://prosecco.gforge.inria.fr/personal/hritcu/students/topics/2015/quick-chick.pdf)\n  - Catalin's [presentation at CoqPL 2015 workshop (2015-01-18)](http://prosecco.gforge.inria.fr/personal/hritcu/talks/QuickChick-Verified-Testing-CoqPL.pdf)\n  - Zoe's [thesis defense at NTU Athens (2014-09-08)](http://prosecco.gforge.inria.fr/personal/hritcu/talks/zoe-defense.pdf)\n  - Maxime's [presentation at the Coq Workshop (2014-07-18)](http://prosecco.gforge.inria.fr/personal/hritcu/talks/QuickChick-Coq.pdf)\n  - Catalin's [presentation at the Coq Working Group @ PPS (2014-03-19)](http://prosecco.gforge.inria.fr/personal/hritcu/talks/QuickChick-PPS.pdf)\n\n---\n\n## Developer's corner\n\n### Build dependencies\n\nDependencies are listed in [`coq-quickchick.opam`](./coq-quickchick.opam).\n\n    # To get the dependencies, add the Coq opam repository if you haven't already\n    opam repo add coq-released https://coq.inria.fr/opam/released\n    opam update\n    opam install . --deps-only\n\n### Build\n\n    dune build\n\n## Run tests\n\n    dune runtest\n\n### Run extra tests for quickChick tool\n\n    dune install coq-quickchick  # Makes QuickChick available globally\n    dune build @cram\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickchick%2Fquickchick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquickchick%2Fquickchick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickchick%2Fquickchick/lists"}