Estoy tomando una clase en la Universidad que implica que demuestra la corrección de los programas de ordenador y estoy muy mal que una de las pruebas, no lo entiendo en absoluto.
¿Alguien puede decirme si mi prueba de realidad tiene sentido, con frecuencia tengo he escrito una prueba, pero por lo general me ha demostrado nada.
Dada esta (T1 es una función que toma a otra función (F) como uno de sus parámetros):
T1(F,x,y) == if y = 0 then x else F(x−1,y−1)
Tuve que sugieren un punto fijo de la solución, me sugirió:
f1(x,y) == x - y
Debido a que T1 es una función recursiva que implementa la resta. Y a continuación tuve que demostrar mi sugerencia fue la correcta.
To show T1(f1) = f1
T1(f1, x, y) == if y = 0 then x else f1(x−1,y−1)
if y = 0 then x
else (x-1) - (y-1)
if y = 0 then x
else x - y - 2
x - y - 2 = f1(x-1,y-1)
x - y = f1(x,y)
¿Mi prueba tiene algunas obvio agujero en lo que no estoy viendo o hay algún error que no puedo ver, creo que funciona, pero no estoy realmente seguro de por qué se demuestra algo?