High-level requirements work like assertions -- but at a higher level -- so they cover much more of a design's functionality than any sum of lower-level assertions, and therefore, once proved, provide greater proof of correctness
High-level requirements are similar to assertions and are compatible with assertion-based verification (ABV), but they work at a higher level of abstraction, enabling greater design coverage and higher proof of correctness
, independent of the implementation.
From the proof of correctness
of the algorithm, we can discard the variable j and all subsets which contain it in S', and this new configuration C(S") on an index set of size N - 1 is reachable if and only if C(S) is reachable.
If one now claims that a proof of correctness
can raise confidence, even though it is not perfect or that an incomplete proof can help one locate errors, that that claim must be verified
Floyd's proof of correctness
uses the loop invariant that after i times through the iteration, J = N -- M + i and S can be any permutation of i distinct integers in 1.