|  | 
  
 
 
 
   
    |  | 
         
          |  |  |  |  |   
          |  |  |  |   
          |  |  A versatile concept for the analysis of loops
 
  |  |  
          |  |  |  |   
          |  |  
  |  |  
          |  |  |  |   
          |  |  
 | The Journal of Logic and Algebraic Programming | 
  |  |  
          |  |  |  |   
          |  |  Ever since their introduction by Hoare in 1969, invariant assertions have, justifiably, played a key role in the analysis of while loops. In this paper, we discuss a distinct but related concept, viz. invariant relations, and showhowthese can be used to answer many questions pertaining to the analysis of loops, including: how to compute the function of the loop; how to compute an invariant assertion of the loop; howto compute aweakest precondition of the loop; howtocompute a strongest postcondition of the loop; howtocompute the termination condition of a loop; howto verify whether the loop computes a given function; howto verify whether the loop is correctwith respect to a given specification; and finally howto compute an invariant function for the loop. Using a tool we have developed at the University of Tunis to derive invariant relations, we show how all these tasks can be automated by means of a computer algebra system, viz. Mathematica (©Wolfram Research). Whenever applicable, we compare the performance of our tool against the performance of others.
 
  |  |  
          |  |  |  |   
          |  |  
  |  |  
          |  |  |  |   
          |  |  Invariant relation, Invariant assertion, Invariant function, Weakest precondition, Strongest postcondition, While loop, Termination condition, Loop functions, Loop semantics
 
  |  |  |  |   
    |  |  |  |  |  |  |  |  |  |  |  | 
 |