Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Strongest invariant functions: their use in the systematic analysis of while statements
Mili A. (ed), Desharnais J., Gagné J. Acta Informatica22 (1):47-66,1985.Type:Article
Date Reviewed: Aug 1 1987

This paper deals with the notion of invariant functions; these are functions that remain unchanged under applications of loop iterations. For example, in:

WHILE s < a DO s := s + c (s , a , c ∈ &ZZ; )
the function f ( s ) = s mod c yields the same value before and after each iteration; hence, f is an invariant function.

Clearly, invariant functions are related to loop invariants, which are called “increasing” predicates in this paper. Three theorems explore this relation. The proofs are trivial, using the fact that predicates are related to their characteristic functions. A notion of strength is defined for invariant functions, stronger functions being “more injective than” weaker ones. Strongest invariant functions are related to the function computed by a while statement. The terminology is unfortunate, since it is possible to have several “strongest” invariant functions. A whole section is devoted to mathematical exercises for this notion, using unnecessarily unfamiliar notation. The oddest is the use of set CRT a , b : integer; c : real SUB a < b end in place of the more familiar { ( a , b , c )∉ &ZZ; X &ZZ: X &RR; | a < b };.

The motivation for all this seems to be the generation of loop invariants from strongest invariant functions, which are to be synthesized from the while statement. However, the only cases considered are loop bodies with assignments of the form s := s op c, with op being taken from the usual arithmetic operators. These hardly constitute a representative sample of while statements, much less a “systematic analysis.”

“Paradoxically (and ironically),” the authors state, the study of strongest invariant functions has “shown us how little we really understand” while statements. The little we really understand was formulated by Floyd, Hoare, and Dijkstra more than a decade ago.

Reviewer:  K. Lodaya Review #: CR111377
Bookmark and Share
 
Invariants (F.3.1 ... )
 
 
Control Primitives (F.3.3 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Invariants": Date
Sometime=always+recursionalways on the equivalence of the intermittent and invariant assertions methods for proving properties of programs
Cousot P., Cousot R. Acta Informatica 24(1): 1-31, 1987. Type: Article
Nov 1 1988
On the mechanical derivation of loop invariants
Chadha R., Plaisted D. Journal of Symbolic Computation 15(5-6): 705-744, 1993. Type: Article
Mar 1 1995
Variant construction from theoretical foundation to applications
Zheng J., Springer International Publishing, New York, NY, 2019.  409, Type: Book
Nov 11 2019

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy