Aserción de programa

Definición

Predicado lógico sobre las variables de un programa que puede ser verdadero o falso en un estado determinado.

Intuición

Una aserción selecciona estados: admite exactamente aquellos donde x es positivo. Antes de un código funciona como precondición; después, como postcondición.

Formulación

Si es el conjunto de estados, una aserción puede verse como:

La aserción —escrita { } en las diapositivas— es verdadera para todo estado; no es satisfecha por ninguno.

Ejemplo mínimo

P = lambda estado: estado["x"] >= 0
Q = lambda estado: estado["r"] >= 0 and estado["r"]**2 == estado["x"]

Contraejemplo o límites

{ } no representa una condición falsa ni un conjunto de estados sin elementos: en la notación de las diapositivas representa , ausencia de restricciones.

Relaciones

Procedencia