When proving invariance properties of programs one is faced with two problems. The rst problem is related to the necessity of proving tautologies of the considered assertion language, whereas the second manifests in the need of nding suuciently strong invariants. This paper focuses on the second problem and describes techniques for the automatic generation of invariants. The rst set of these te...