A Comparative Study of Invariant Assertions, Invariant Relations, and Invariant Functions

Invariant assertions play an important role in the analysis and documentation of while loops of imperative programs. Invariant functions and invariant relations are alternative analysis tools that are distinct from invariant assertions but are related to them. In this paper we discuss these three concepts and analyze their relationships. The study of invariant functions and invariant relations is interesting not only because it provides alternative means to analyze loops, but also because it gives us insights into the structure of invariant assertions, and may help us enhance techniques for generating invariant assertions.

[1]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[2]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[3]  N. Falconer Structured Programming , 1973, Nature.

[4]  Jules Desharnais,et al.  Strongest invariant functions: Their use in the systematic analysis of while statements , 2004, Acta Informatica.

[5]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[6]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[7]  Jules Desharnais,et al.  Relational heuristics for the design of deterministic programs , 2004, Acta Informatica.

[8]  Ali Mili,et al.  On the lattice of specifications: Applications to a specification methodology , 2005, Formal Aspects of Computing.

[9]  Lamia Labed Jilani,et al.  Reflexive transitive invariant relations: A basis for computing loop functions , 2010, J. Symb. Comput..

[10]  Ali Mili,et al.  Mathematics for reasoning about loop functions , 2009, Sci. Comput. Program..

[11]  Jayadev Misra,et al.  Proving loop programs , 1975, IEEE Transactions on Software Engineering.

[12]  Harlan D. Mills,et al.  Trace: Tennessee Research and CreativeExchange , 2022 .

[13]  John McCarthy,et al.  Mathematical Theory of Computation , 1991 .