Reglas de conjunción y disyunción de Hoare

Definición

Reglas que combinan dos ternas demostradas para el mismo código, reuniendo sus precondiciones y postcondiciones mediante conjunción o disyunción.

Intuición

La conjunción acumula garantías cuando ambas hipótesis son válidas; la disyunción reúne dos casos alternativos ya demostrados.

Formulación

Ejemplo mínimo

si se demostró {P1} C {Q1} y {P2} C {Q2}:
    bajo P1 y P2, conservar Q1 y Q2
    bajo P1 o P2, conservar Q1 o Q2

Para i := i+1, combinar la relación con la preservación de positividad permite derivar cuando .

Contraejemplo o límites

Las dos premisas deben referirse al mismo comando . Además, i=i+1 es ambigua si no se diferencia el valor anterior del posterior.

Uso paso a paso

  • Usa conjunción cuando necesitas acumular dos garantías del mismo programa.
  • Usa disyunción cuando ya probaste casos alternativos de entrada.
  • Después simplifica la salida con la regla de consecuencia.

Para ver cómo estas reglas encajan con asignaciones, secuencias y ramas, consulta la guía paso a paso.

Relaciones

Procedencia