PRUNERS / FLiT

A project to quickly detect discrepancies in floating point computation across hardware, compilers, libraries and software.
Other
36 stars 6 forks source link

Bisect to check for assumption of disjoint sets #225

Closed mikebentley15 closed 6 years ago

mikebentley15 commented 6 years ago

Feature Request

Describe the new feature: There is an additional assumption that is made beyond the assumption that all minimal sets are of size one. That assumption is actually checked currently by an assertion at the end of the bisect run. However, if that assertion passes, we could still have a situation where there are minimal sets that are bigger than one, but that overlap with some of the found elements.

Suggested change: To check to see if this is the case, we would need the following assertion after we have the set of found elements:

assert test(found) == test(items)

This builds on the assumption that errors never exactly cancel each other out. This would need to be done after finding the set of files, after finding the set of functions within a file, and once more after finding all functions. If these assertions pass, then there still can be minimal sets of size bigger than one, but they would need to be contained within the set of found elements, in which case we wouldn't care none.