Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MP 2015 03 16 g01B T3 Enu Pri 2023 02 27
MP 2015 03 16 g01B T3 Enu Pri 2023 02 27
Metodologı́a de la Programación
Grado en Ingenierı́a Informática de Gestión y Sistemas de Información
Escuela de Ingenierı́a de Bilbao (UPV/EHU)
Departamento de Lenguajes y Sistemas Informáticos
Curso: 1o
Curso académico: 2014-2015
Grupo 01 – Examen B
Tema 3: Verificación formal de programas
2 puntos
16-03-2015
Enunciado
Índice
1 Verificación formal de un programa iterativo (2 puntos) 1
Lista de figuras
1 Programa a verificar, definiciones de ϕ, IN V , E y ψ y definiciones de los predicados utilizados. 3
2 Propiedad que cumplen dos elementos x e y cualesquiera que pertenecen al conjunto {0, 1}. 3
Lista de tablas
1 Abreviaciones que se recomienda utilizar. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Denominaciones de las letras griegas utilizadas en el enunciado. . . . . . . . . . . . . . . . 4
3 Puntuación por apartados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
****************************************
Durante el proceso de verificación, al analizar el punto (IV ) de la regla del While, es necesario utilizar
la propiedad matemática (P rop) de la figura 2 (página 3), que dice que, si se tienen dos valores enteros x
Metodologı́a de la Programación – 16-03-2015 – g01B – Tema 3: Verificación formal de programas – Enunciado 2
e y donde tanto x como y solo pueden ser o cero o uno, entonces la suma de x e y será 1 si y solo si x e y
son distintos, es decir, que el que la suma de x e y sea 1 es equivalente a decir que x e y son distintos. Por
ejemplo, si x = 1 e y = 0, tenemos que son distintos y la suma es 1. Si x = 1 e y = 1, tenemos que son
iguales y la suma no es 1. Si x = 0 e y = 0, tenemos que son iguales y la suma no es 1. Por último, si x = 0
e y = 1, tenemos que son distintos y la suma es 1.
En la tabla 1 (página 3) se recogen las abreviaciones que se recomienda utilizar durante el proceso de
verificación. En la tabla 2 (página 4) se recopilan las denominaciones de las letras griegas utilizadas en este
enunciado. Finalmente, en la tabla 3 (página 4) se muestra la puntuación de los distintos pasos o apartados
que han de ser considerados en el proceso de verificación.
Teniendo en cuenta las abreviaciones de la tabla 1, la propiedad (P rop) de la figura 2 expresa que cada
expresión lógica γ(`) tiene el mismo valor que la correspondiente expresión lógica σ(`), siempre que se
garantice que A(`) y B(`) pertenecen al conjunto {0, 1}.
Ejemplo 1.1. (Para el programa de la figura 1 de la página 3) Sean los siguientes vectores A(1.. 8) y
B(1.. 8):
A(1..8) 1 0 0 0 1 0 1 0
1 2 3 4 5 6 7 8
B(1..8) 0 1 1 1 0 1 0 1
1 2 3 4 5 6 7 8
Para esos valores de A(1.. 8) y B(1.. 8), el programa de la figura 1 devolverı́a el valor booleano T rue
en w, porque cada elemento de A(1.. 8) es distinto al elemento que ocupa la misma posición de B(1.. 8).
A(1..8) 1 0 0 0 1 0 1 0
1 2 3 4 5 6 7 8
B(1..8) 0 1 0 1 1 0 0 1
1 2 3 4 5 6 7 8
el programa de la figura 1 devolverı́a el valor booleano F alse en w, porque al menos un elemento de
A(1.. 8) es igual al elemento que ocupa la misma posición de B(1.. 8). En concreto, se cumple para A(3),
A(5) y A(6). Es decir, A(3) = B(3), A(5) = B(5) y A(6) = B(6).
Metodologı́a de la Programación – 16-03-2015 – g01B – Tema 3: Verificación formal de programas – Enunciado 3
Programa:
{ϕ}
w := True;
while {IN V } {E} i 6= n + 1 and w loop
w := (A(i) + B(i) = 1);
i := i + 1;
end loop;
{ψ}
Definición de ϕ, IN V , E y ψ:
ϕ ≡ n ≥ 1 ∧ bits(A(1..n)) ∧ bits(B(1..n)) ∧ i = 1
IN V ≡ n ≥ 1 ∧ bits(A(1..n)) ∧ bits(B(1..n)) ∧ (1 ≤ i ≤ n + 1) ∧
(w ↔ todas las sumas uno(A(1..n), B(1..n), i − 1))
E= n+1−i
todas las sumas uno(F (1..r), G(1..r), pos) ≡ ∀k(1 ≤ k ≤ pos → F (k) + G(k) = 1)
Propiedad (P rop):
Figura 2: Propiedad que cumplen dos elementos x e y cualesquiera que pertenecen al conjunto {0, 1}.
Abreviaciones recomendadas:
λ ≡ n ≥ 1 ∧ bits(A(1..n)) ∧ bits(B(1..n))
B ≡ i 6= n + 1 and w
Puntuación:
Cuando no se explique por qué se cumple una implicación, se contará cero. Es decir,
indicar que una implicación sı́ se cumple sin razonar por qué se cumple cuenta 0.
Para aprobar el ejercicio es obligatorio obtener al menos la mitad de la puntuación
tanto del apartado (e) como del apartado (f) (puntos (III) y (IV ) de la regla del while).