Regla de consecuencia de Hoare

Definición

Regla que permite reemplazar la precondición de una terna por una condición más fuerte y su postcondición por una más débil.

Intuición

Si un programa funciona para un conjunto de entradas, funciona para cualquier subconjunto. Si garantiza una salida precisa, también garantiza cualquier consecuencia menos exigente.

Formulación

Ejemplo mínimo

y = 4 implica y != 0
{y != 0} x := 1/y {x = 1/y}
--------------------------------
{y = 4}  x := 1/y {x = 1/y}

También, de , se pasa de la postcondición exacta a la más débil.

Contraejemplo o límites

Las direcciones importan: debilitar la precondición o fortalecer la postcondición exige una demostración adicional y no se obtiene con esta regla.

Regla mnemotécnica

  • Antes: se permite pedir más al estado inicial: .
  • Después: se permite prometer menos: .

En una prueba completa, estas implicaciones se convierten en condiciones de verificación. Véase el procedimiento paso a paso.

Relaciones

Procedencia

  • Clase: Ternas de Hoare y demostración formal.
  • Fuente: Programación Avanzada Notas 4 2027, diapositivas 16–19 (láminas 70–73).
  • Fuente complementaria: /Users/diegovillalba/Downloads/AllLectures.pdf, páginas PDF 21–23.