Estoy leyendo Coders at Work , y en él se habla mucho de invariantes. Por lo que he entendido, una invariante es una condición que tiene tanto antes como después de una expresión. Son, entre otras cosas, útiles para demostrar que ese ciclo es correcto, si recuerdo mi curso de lógica...