It's important to shrink lists correctly and efficiently. Many other types rely upon good behavior here. For example, shrinking an atom uses this code (via list(codes)). However a property like
prop_atom_fail(A:atom) :-
atom_length(A,Len),
Len < 3.
gives different "minimal" results each time: bMe, 'a^4', a.3, etc. The length is fine (could be more efficient) but shrinking elements needs improvement for sure.
It's important to shrink lists correctly and efficiently. Many other types rely upon good behavior here. For example, shrinking an atom uses this code (via list(codes)). However a property like
gives different "minimal" results each time:
bMe,'a^4',a.3, etc. The length is fine (could be more efficient) but shrinking elements needs improvement for sure.