Exhaustive checking verifies a property by testing every value in a finite domain, turning successful testing into conclusive proof for that domain. section 8.2.3
Apply the technique when the tested domain is small or deliberately bounded:
- Check both Boolean values instead of sampling generated inputs. section 8.2.3
- Enumerate small domains such as Byte when their complete value sets are practical. section 8.2.3
- Bound an otherwise infinite domain with a sized generator, then check every generated value up to the maximum size. section 8.2.3
Proving a Boolean property
A property such as forAll(p) is proved when both p(true) and p(false) pass. The property-testing library can represent this result as Proved rather than merely Passed. section 8.2.3
