en coq:¿Por qué la demostración está completa después de demostrar sólo una inducción cuando tenemos más de una variable?
Pregunta
Entonces estoy aprendiendo coq.Y además me encontré con la prueba de asociatividad. forall (a b c : nat)
Aparentemente cuando lo hagamos induction a.
después intros a b c.
, crea 2 subobjetivos
y luego simplemente necesitamos demostrar que los dos lados de ambos subobjetivos son equivalentes y la prueba está completa.
Entonces me pregunto por qué no necesitamos hacer induction b.
y induction c.
para completar la prueba?¿Por qué realizar sólo la inducción en a
es capaz de completar la prueba?
O en otras palabras, ¿cómo es que en la función que devuelve la prueba simplemente obtenemos b
y c
gratis"?Constructivamente, ¿no necesitamos algo así como una doble inducción aplicada dos veces?
Solución
Tu no tener probar cosas por inducción.Por ejemplo, puedes demostrar $\para todos n :\mathbb{N} \,.\, n = n$ sin inducción aplicando reflexividad.En su prueba, usamos inducción en $a$, pero entonces no necesitamos usar inducción en $b$ y $c$ porque podemos terminar la prueba simplemente usando otros métodos.Nosotros podría tener inducción usada en $b$ y $c$, y debería intentar hacerlo para ver cómo las aplicaciones innecesarias de la inducción hacen que su demostración sea más larga y menos clara.
PDEsto no tiene absolutamente nada que ver con la constructividad.