Kategorien: Alle - herramientas - complejidad - verificación - técnicas

von Wilintón López Vasco Vor 11 Monaten

111

VERIFICACIÓN FORMAL DE PROGRAMAS

El texto trata sobre los procesos y herramientas utilizados para la verificación de programas, asegurando su correcto funcionamiento y cumplimiento de especificaciones formales. Se detalla un proceso de verificación paso a paso, que incluye la identificación de precondiciones y poscondiciones, derivación de precondiciones más débiles, y validación de triplas.

VERIFICACIÓN FORMAL DE PROGRAMAS

Se compone de

Herramientas de Verificación

Teorema de Invarianza
Regla 5: la cota del ciclo está acotada inferiormente.
Regla 4: la cota del ciclo disminuye con cada iteración.
Regla 3: la poscondición se cumple al finalizar la ejecución del ciclo.
Regla 2: el invariante se cumple justo después de cada iteración del ciclo.
Regla1: el invariante se cumple antes del inicio del ciclo.
Cota de Ciclo
Función entera t cuyo valor disminuye con cada iteración del ciclo y está acotada inferiormente

Medir el número de iteraciones restantes del ciclo

Invariante de Ciclo
Predicado P satisfecho justo antes y después de cada iteración del ciclo.

Proveer información relevante sobre el estado del programa

Coq Asistente de pruebas para el desarrollo de especificaciones formales y pruebas de corrección.
Frama-C Plataforma para análisis y verificación de código C.
SPARK Lenguaje y herramienta de verificación para sistemas críticos.

Limitaciones y Desafíos

Automatización: herramientas de verificación automática pueden ayudar pero no reemplazan el juicio humano.
Modelado Correcto: la especificación formal debe ser precisa y completa
Complejidad: el proceso puede ser complejo y tedioso para programas grandes.

Técnicas de Verificación

Inducción Matemática: para programas con estructuras repetitivas (ciclos).
Verificación Modular: descomponer el programa en módulos y verificar cada uno por separado.
Invariantes de Ciclo: propiedades que se mantienen verdaderas en cada iteración de un ciclo.

Proceso de Verificación

Paso 4: validar la tripla {Q}S{R} demostrando que Q ⇒ wp(S, R).
Paso 3: comprobar que la precondición inicial implica la precondición más débil derivada.
Paso 2: derivar la precondición más débil para cada instrucción del programa.
Paso 1: identificar la precondición y la poscondición.

Instrucciones Básicas

Composición Secuencia: ejecución de un conjunto de instrucciones en secuencia.
Instrucción Condicional: permite la ejecución de un conjunto de instrucciones basado en una condición.
Asignación: reemplaza el valor de una variable con el resultado de una expresión.
Instrucción Vacía: instrucción que no altera el estado del programa.

Determinar la condición inicial mínima necesaria para que el programa sea correcto respecto a su especificación

La precondición más débil es la condición más general que garantiza que la poscondición se cumple después de la ejecución del programa.

El formalismo para la especificación y verificación de programas.

{Precondición} Programa {Poscondición}

Que si la precondición es verdadera antes de la ejecución del programa, entonces la poscondición será verdadera después de la ejecución del programa.

Proceso de asegurar que un programa cumple con su especificación formal.

Garantizar la corrección del programa antes de su ejecución.

Del uso de técnicas matemáticas y lógicas.
Ejemplo

Precondición Más Débil (wp)

Tripla de Hoare

VERIFICACIÓN FORMAL DE PROGRAMAS