This Article 
 Bibliographic References 
 Add to: 
Linear Complexity Assertions for Sorting
June 1994 (vol. 20 no. 6)
pp. 424-431

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.

[1] G. E. Andrews,The Theory of Partitions, Encyclopedia of Mathematics and Its Applications, vol. 2, Reading, MA: Addison-Wesley, 1976.
[2] P. Banerjee and J. A. Abraham, "Fault-secure algorithms for multiple processor systems," inProc. 11th Int. Symp. Comput. Architecture, June 1984, pp. 279-287.
[3] U. Gunneflo, J. Karlsson, and J. Torin, "Evaluation of error detection schemes using fault injection by heavy-ion radiation," inProc. 19th Int. Symp. Fault-Tolerant Comput. (FTCS), June 1989, pp. 340-347.
[4] J.L. Hennessy and David A. Patterson,Computer Architecture: A Quantitative Approach, Morgan Kaufmann, San Mateo, Calif., 1990.
[5] K. Huang and J. A. Abraham, "Algorithm-based fault tolerance for matrix operations,"IEEE Trans. Comput., vol. C-33, no. 6, pp. 518-528, June 1984.
[6] A. Mahmood, D. Andrews, and E. J. McCluskey, "Writing executable assertions to test flight software," Center for Reliable Comput. Tech. Rep. 84-14, Depts. of Elect. Eng. and Comput. Sci., Stanford Univ., Stanford, CA, Nov. 1984.
[7] A. Mahmood and E. J. McCluskey, "Concurrent error detection using watchdog processors--A survey,"IEEE Trans. Comput., vol. 37, no. 2, pp. 160-174, Feb. 1988.
[8] Z. Manna and R. Waldinger,The Logical Basis for Computer Programming, vol. 1,Deductive Reasoning. Reading, MA: Addison-Wesley, 1985.
[9] K. M. O'Hara, "Unimodality of Gaussian coeffictents: A constructive proof," Res. Announcement, Preprint, Univ. of Iowa., 1989.
[10] B. Randell, "System structure for software fault tolerance,"IEEE Trans. Software Eng., vol. SE-1, no. 2, pp. 220-232, June 1975.
[11] N. R. Saxena and E. J. McCluskey, "Control-flow checking using watchdog assists and extended-precision checksums,"IEEE Trans. Comput., vol. 39, no. 4, pp. 554-559, Apr. 1990.
[12] N. R. Saxena, "Analysis of checksums, extended-precision checksums, and cyclic redundancy checks,"IEEE Trans. Comput., vol. 39, no. 7, pp. 969-975, July 1990.

Index Terms:
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.R. Saxena, E.J. McCluskey, "Linear Complexity Assertions for Sorting," IEEE Transactions on Software Engineering, vol. 20, no. 6, pp. 424-431, June 1994, doi:10.1109/32.295891
Usage of this product signifies your acceptance of the Terms of Use.