For someone new to the way you define property and contracts, the second sentence is not enough definition. The article made sense once I found other links in the article defining property and contracts: https://fsharpforfunandprofit.com/posts/property-based-testi... and https://www.hillelwayne.com/post/contracts/.
I would summarize by saying
> A different testing style is property based testing (PBT) with contracts. By testing invariant properties like commutativity instead of specific cases, and writing the functions under test with assertion-like contracts that fail if they ever attempt invalid behavior, we can test with random input data and cover more of the search space than we would manually.
I had a this problem when writing a very similar blog post.
However, it kind of takes away the punch when both of the issues ("None" as an element in a list of numbers and 0 being falsy) would have have been eliminated by the type checker in a language like Haskell.