Corrección estructural: cómo los grafos de tipos unifican validación y comportamiento

Fuentes: Structural Correctness

La corrección estructural es un enfoque que modela un dominio como un grafo de nodos y aristas tipadas, donde la estructura que describe el sistema es el propio sistema. Sistemas de tipos, herramientas de construcción como Bazel, lenguajes de descripción de interfaces y bases de datos con claves foráneas comparten esa filosofía: cada uno define su propio vocabulario de nodos y aristas, y las relaciones declaradas cumplen una doble función, pues especifican el comportamiento y a la vez sirven como invariantes verificables. En Bazel, por ejemplo, una dependencia es una arista explícita que el propio sistema valida; sin arista no hay capacidad.

El artículo señala que las bases de datos cubren el qué almacenar (esquemas, claves foráneas, restricciones) pero dejan las transiciones de estado válidas a la capa de aplicación, donde es frecuente que se produzcan errores por coordinación incompleta entre puntos de servicio. Las redes de Petri coloreadas (CPN) resuelven esta laguna al añadir transiciones estrictas entre lugares: el estado solo cambia mediante disparos que consumen, mutan y producen tokens, haciendo que la conservación de recursos y los ciclos de vida sean hechos topológicos del grafo, no propiedades a probar.

El texto ilustra la idea con un web scraper que arrienda proxies y respeta límites por dominio: reclamación, arrendamiento y creación de sesión ocurren en una única transición, eliminando estrategias de bloqueo y pruebas de conservación. Como en los sistemas de tipos, el autor reconoce costes y curvas de aprendizaje, pero considera que unificar estado y transición en una sola descripción estructural abre una vía prometedora para construir software verificable de forma más sistemática.