Issue No. 06 - June (1994 vol. 20)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/32.295891
<p>Correctness of the execution of sorting programs can be checked by two assertions: the order assertion and the permutation assertion. The order assertion checks if the sorted data is in ascending or descending order. The permutation assertion checks if the output data produced by sorting is a permutation of the original input data. Permutation and order assertions are sufficient for the detection of errors in the execution of sorting programs; however, in terms of execution time these assertions cost the same as sorting programs. An assertion, called the order-sum assertion, that has lower execution cost than sorting programs is derived from permutation and order assertions. The reduction in cost is achieved at the expense of incomplete checking. Some metrics are derived to quantify the effectiveness of order-sum assertion under various error models. A natural connection between the effectiveness of the order-sum assertion and the partition theory of numbers is shown. Asymptotic formulae for partition functions are derived.</p>
sorting; program debugging; program diagnostics; program verification; programming theory; linear complexity assertions; sorting programs; programs correctness checking; program execution; order assertion; permutation assertion; sorted data; descending order; ascending order; output data; input data; error detection; execution time; order-sum assertion; partition theory; partition functions; error checking; watchdog checker
N. Saxena and E. McCluskey, "Linear Complexity Assertions for Sorting," in IEEE Transactions on Software Engineering, vol. 20, no. , pp. 424-431, 1994.