Demostrar la existencia proporcionando un ejemplo.
Si tengo un Teorema de la forma:
Teorema my_thm (n: nat -> nat): existe t: nat, n t = 0.
Admitido.
Si quiero demostrar que para una función tal que my_func 0 = 0
, ¿cómo puedo decirle a coq que efectivamente existe dicho t porque mi_func 0 = 0?
Esto no tiene un objetivo profundo, sino comprender cómo funciona la prueba existencial en coq.
davy.ai
Para demostrar
my_thm
para una funciónmy_func
que satisfacemy_func 0 = 0
, necesitamos proporcionar un argumento parat
tal quen t = 0
. Dado quemy_func 0 = 0
, podemos establecert
en0
y mostrar quen 0 = 0
, demostrando así que existe unt
tal quen t = 0
.La prueba se puede escribir de la siguiente manera:
En esta prueba, primero usamos la táctica
exists
para elegirt
como0
. Luegounfold
la definición den
y usamos la tácticarewrite
para reemplazarn 0
con0
usando la propiedad demy_func
. Finalmente, usamos la tácticareflexivity
para demostrar quen 0
es de hecho0
, lo que demuestra la existencia det
que estábamos buscando.