Reflexive transitive invariant relations: A basis for computing loop functions

Invariant assertions play an important role in the analysis and verification of iterative programs. In this paper, we introduce a related but distinct concept, namely that of invariant relation. While invariant assertions are useful to prove the correctness of a loop with respect to a specification (represented by a precondition/ postcondition pair) in Hoare's logic, invariant relations are useful to derive the function of the loop in Mills' logic.

[1]  Ali Mili,et al.  Science and engineering for software development: a recognition of Harlan D. Mills' legacy , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

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

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

[4]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

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

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

[7]  Enric Rodríguez-Carbonell,et al.  Program Verification Using Automatic Generation of Invariants , 2004, ICTAC.

[8]  Barbara G. Ryder,et al.  Properties of data flow frameworks , 1990, Acta Informatica.

[9]  Ewen Denney,et al.  A generic annotation inference algorithm for the safety certification of automatically generated code , 2006, GPCE '06.

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

[11]  K. Mani Chandy,et al.  Current trends in programming methodology , 1977 .

[12]  Neil D. Jones,et al.  Program Flow Analysis: Theory and Application , 1981 .

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

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

[15]  Michael Karr,et al.  Affine relationships among variables of a program , 1976, Acta Informatica.

[16]  Mark Harman,et al.  Loop squashing transformations for amorphous slicing , 2004, 11th Working Conference on Reverse Engineering.

[17]  Ryszard Janicki,et al.  Computing Properties of Numerical Imperative Programs by Symbolic Computation , 2008, Fundam. Informaticae.

[18]  Alfred Tarski,et al.  Relational selves as self-affirmational resources , 2008 .

[19]  Alan R. Hevner,et al.  Next-Generation Software Engineering: Function Extraction for Computation of Software Behavior , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

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

[21]  James H. Morris,et al.  Subgoal induction , 1977, CACM.

[22]  Alan R. Hevner,et al.  Principles of Information Systems Analysis and Design , 1986 .

[23]  Stephen McCamant,et al.  The Daikon system for dynamic detection of likely invariants , 2007, Sci. Comput. Program..

[24]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[25]  Richard C. Linger,et al.  Structured programming , 1979 .

[26]  Victor R. Basili,et al.  A Heuristic for Deriving Loop Functions , 1984, IEEE Transactions on Software Engineering.

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

[28]  Laura Kovács,et al.  An algorithm for automated generation of invariants for loops with conditionals , 2005, Seventh International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC'05).

[29]  Henny B. Sipma,et al.  Linear Invariant Generation Using Non-linear Constraint Solving , 2003, CAV.

[30]  Alan R. Hevner,et al.  The CERT Function Extraction Experiment: Quantifying FX Impact on Software Comprehension and Verification , 2005 .

[31]  Henny B. Sipma,et al.  Non-linear loop invariant generation using Gröbner bases , 2004, POPL.

[32]  Thomas Fahringer,et al.  Advanced Symbolic Analysis for Compilers , 2003, Lecture Notes in Computer Science.

[33]  Thomas E. Cheatham,et al.  Symbolic evaluation of programs: a look at loop analysis , 1976, SYMSAC '76.

[34]  Harlan D. Mills,et al.  Cleanroom Software Engineering , 1987, IEEE Software.

[35]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[36]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.