Bucle invariable - en programación - una expresión lógica que es verdadera después de cada paso del cuerpo del bucle (después de la ejecución del operador fijo ) y antes del inicio del bucle, dependiendo de las variables que cambian en el cuerpo del bucle. [1] Los invariantes se utilizan en la teoría de la verificación de programas para probar la corrección del resultado obtenido por un algoritmo cíclico.
Una invariante de bucle es una expresión matemática (normalmente una igualdad) que inevitablemente incluye al menos algunas variables cuyos valores cambian de una iteración del bucle a la siguiente. El invariante se construye de tal manera que sea verdadero inmediatamente antes del inicio de la ejecución del bucle (antes de entrar en la primera iteración) y después de cada una de sus iteraciones. Además, si el invariante incluye variables definidas solo dentro del ciclo (por ejemplo, el contador de ciclos foren Pascal o Ada ), entonces para ingresar al ciclo se toman en cuenta con los valores que recibirán en el momento de la inicialización.
El procedimiento para probar la operatividad del ciclo con la ayuda de un invariante es el siguiente:
Los invariantes también se utilizan en el diseño y optimización de algoritmos cíclicos . Por ejemplo, para asegurarse de que el bucle optimizado sigue siendo correcto, basta con demostrar que no se viola la invariante del bucle y que se puede lograr la condición de terminación del bucle.