Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Demostración de códigos, Apuntes de Lógica

Demostración de códigos mediante Hoare

Tipo: Apuntes

2022/2023

Subido el 14/06/2024

1 / 1

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Demostración Formal de Correctitud de Programas
Problema:
Dados los programas S1 que calcula la función f de A a B, y S2 que calcula la función g de A a
B, demostrar que S1 es correcto si S2 es correcto, cuando f=g, es decir, f(x) = g(x) para todo
x en A.
Definiciones
1. Correctitud de un programa: Un programa S que calcula una función h de A a B es
correcto si para todo x en A, la ejecución de S con entrada x devuelve h(x).
Solución
1. Suposición de Correctitud de S2: Suponemos que S2 es correcto. Por lo tanto, para todo x
en A, S2(x) es igual a g(x).
2. Equivalencia de Funciones f y g: Dado que f = g, entonces para todo x en A, f(x) es igual a
g(x).
3. Transitividad de la Correctitud: Debido a que S2 es correcto y f = g, cualquier salida
producida por S2 también será una salida válida de f. Esto implica que si S1 está diseñado
para calcular f, debe producir la misma salida que S2 dado que f(x) es igual a g(x). Así, si S1
produce f(x) para todo x en A (lo cual es equivalente a g(x) por la igualdad de funciones),
entonces S1 debe ser correcto.
4. Reciprocidad: Si S1 es correcto, es decir, para todo x en A, S1(x) es igual a f(x) y sabiendo
que f(x) es igual a g(x), entonces S1 calcula g(x) correctamente. Esto significa que S1 está
realizando la misma computación que S2, confirmándose así la correctitud de S2 si S1 es
correcto.
5. Conclusión: Por lo tanto, se deduce que S1 es correcto si S2 es correcto cuando f = g y f(x)
= g(x) para todo x en A.

Vista previa parcial del texto

¡Descarga Demostración de códigos y más Apuntes en PDF de Lógica solo en Docsity!

Demostración Formal de Correctitud de Programas

Problema:

Dados los programas S1 que calcula la función f de A a B, y S2 que calcula la función g de A a B, demostrar que S1 es correcto si S2 es correcto, cuando f=g, es decir, f(x) = g(x) para todo x en A.

Definiciones

  1. Correctitud de un programa: Un programa S que calcula una función h de A a B es correcto si para todo x en A, la ejecución de S con entrada x devuelve h(x).

Solución

  1. Suposición de Correctitud de S2: Suponemos que S2 es correcto. Por lo tanto, para todo x en A, S2(x) es igual a g(x).
  2. Equivalencia de Funciones f y g: Dado que f = g, entonces para todo x en A, f(x) es igual a g(x).
  3. Transitividad de la Correctitud: Debido a que S2 es correcto y f = g, cualquier salida producida por S2 también será una salida válida de f. Esto implica que si S1 está diseñado para calcular f, debe producir la misma salida que S2 dado que f(x) es igual a g(x). Así, si S produce f(x) para todo x en A (lo cual es equivalente a g(x) por la igualdad de funciones), entonces S1 debe ser correcto.
  4. Reciprocidad: Si S1 es correcto, es decir, para todo x en A, S1(x) es igual a f(x) y sabiendo que f(x) es igual a g(x), entonces S1 calcula g(x) correctamente. Esto significa que S1 está realizando la misma computación que S2, confirmándose así la correctitud de S2 si S1 es correcto.
  5. Conclusión: Por lo tanto, se deduce que S1 es correcto si S2 es correcto cuando f = g y f(x) = g(x) para todo x en A.