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 Q2Para 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
- Combinan: ternas de Hoare.
- Su resultado puede simplificarse con: Regla de consecuencia de Hoare.
- Utilizan conectivos entre: aserciones.
Procedencia
- Clase: Ternas de Hoare y demostración formal.
- Fuente: Programación Avanzada Notas 4 2027, diapositivas 20–22 (láminas 74–76).