Well a property test is essentially a test where some random input is generated and a function with asserts in it is called with that input. The most important part of the message is the input that is passed to the function. This can be quite long though.

To reduce the input there's a system of shrinking, basically when the test function fails a shrink function is called that returns a list of reductions of the input. The test function is then re-run and reduced and re-run, until the function no longer fails. The number of shrinks is useful information when writing and fine-tuning the shrink function (which can be a bit tricky) but is less significant otherwise.

Other less important information includes after how many successful runs a test has failed.

What we could do is something like:

```
(AssertionError in PropertyError after 3 shrinks)
    generated test data: ...
               expected: ...
               to equal: ...
```

(Maybe with something shorter than "generated test data")