Ejercicio 8 de la lista del parcial 3 · la palabra F1 sólo aparece como nombre de función, así que cambiarla por F2 es cambiar la cabeza de cada nodo, y dos inducciones lo terminan
La consigna, textual: «Sea el tipo . Sea y sea el resultado de reemplazar cada ocurrencia de la palabra en por la palabra . (a) Pruebe que . (b) Pruebe que si es una estructura de tipo tal que , entonces para cualquier asignación se tiene que ». No viene de las guías. Va sin notación declaratoria, con asignaciones infinitas.
El tipo no tiene constantes ni relaciones: sólo dos nombres de función binarios. Cada nombre es una palabra de dos símbolos, la letra F y un numeral normal: no es «F sub 1», es la palabra que tiene una F y después un 1. Los términos son las variables y las palabras y .
En , de 23 símbolos, la palabra ocurre a partir de 1 y a partir de 13. Reemplazar las dos da , que es término y tiene el mismo nivel, 3. Con , e los dos el máximo, y , los dos términos valen 3. Si en cambio es el mínimo, vale , y , que también tiene un , vale .
El enunciado parece obvio, y la mitad que no lo es está escondida en «reemplazar cada ocurrencia de la palabra». El reemplazo es ciego: busca los dos símbolos F1 seguidos donde estén, sin saber nada de términos. Para que el resultado sea «cambiarle el nombre a cada nodo» hay que saber que la palabra sólo aparece como nombre de función: que no hay un F1 armado con el final de una cosa y el principio de otra, ni escondido adentro de una variable o de . En este tipo es cierto, y es lo primero que hay que probar.
Las variables (Guía 9, p. 1): son las palabras donde es la escritura decimal de un natural con el último numeral en negrita y los demás en itálica. No tienen ni la letra F ni numerales normales.
Los niveles (Guía 9, p. 1). Acá , así que , y . La palabra es la concatenación de , «(», , «,», y «)». La Regla de Inducción desde 0 se usa dos veces, una por inciso.
El valor de un término (Guía 10, p. 1): , y si . Y la lectura única de términos, que la lista deja usar sin enunciar: un término de este tipo es una variable o es con únicos , y .
El hecho de la palabra . Es propio de este tipo y no está en ninguna guía, así que se enuncia y se prueba. Sea :
De (iii) y (iv) sale lo que se usa en las dos inducciones: si , entonces , donde y son los resultados de reemplazar cada ocurrencia de en y en por . Sea el que sea, la cabeza de es : si era , la ocurrencia de la posición 1 se reemplazó, y si era , ya estaba.
Las dos metas piden mirar por dentro: para que sea término, hay que ver que es de la forma con piezas que ya son términos; para calcular su valor, la cláusula del valor necesita esa misma forma. Las dos se apoyan en la descomposición , y las dos se prueban por inducción en el nivel de , porque el nivel baja de a y .
En (a), conviene pedir más. El natural sería «si , entonces ». Anda, pero en el paso da y con niveles distintos, y hay que subir los dos al máximo. Pidiendo , el mismo nivel que , el paso es inmediato: y entonces . Es verdad porque el reemplazo cambia un nombre por otro de la misma aridad y no toca la forma del árbol.
En (b), la hipótesis trabaja en un solo lugar: en la cabeza, cuando . La cuenta es , la hipótesis inductiva cambia los argumentos por los de , y cambia la cabeza. Si no hace falta. Y (b) usa (a) dos veces: para que tenga sentido, y para aplicar la cláusula a , que pide .
El de (b) lleva adentro la estructura y la asignación. Como en el Ejercicio 7, ninguna cláusula del valor de un término cambia la asignación, así que se podrían fijar afuera; adentro es el molde de la lista y no cuesta nada.
Con el conteo da las 125 asignaciones de en , para cualquier término de esas tres variables. Con el mínimo, el primer término se iguala en 25 de las 125 y el tercero, , en 5: la hipótesis no es necesaria para que dos valores coincidan alguna vez, es lo que hace que coincidan siempre.
Prueba del hecho de la palabra .
La descomposición. Si , por (iii) las ocurrencias de en son la de la cabeza, si , y las de y . Reemplazar cada una por deja la cabeza en , los paréntesis y la coma donde estaban, y adentro de cada argumento hace lo mismo que reemplazar cada ocurrencia de en y en . Luego .
(a) Prueba. Usaremos la Regla de Inducción desde 0. Para cada sea el enunciado:
: Si y es el resultado de reemplazar cada ocurrencia de la palabra en por la palabra , entonces .
Por la Regla de Inducción desde 0, vale para todo . Dado , hay con , y entonces . ∎
(b) Prueba. Usaremos la Regla de Inducción desde 0. Para cada sea el enunciado:
: Si y es el resultado de reemplazar cada ocurrencia de la palabra en por la palabra , entonces para cualquier estructura de tipo tal que y cualquier asignación , se tiene que .
Por (a), , así que está definido.
Por la Regla de Inducción desde 0, vale para todo , y como todo está en algún , vale (b). ∎
Lo que hace perder puntos. Escribir «» sin justificar dónde ocurre la palabra : es la única parte del ejercicio que no es una cuenta, y la consigna habla de palabras, no de nodos. Olvidar el caso , donde la cabeza no cambia y la hipótesis no se usa. En (b), calcular sin citar (a). Y escribir un solo para los dos incisos sin decir cuál se prueba primero: (b) necesita (a) ya probado.
Lo que se lleva. El hecho (iii) es, para un nombre, lo que el Lema 4 de la Guía 9 dice de los subtérminos: una ocurrencia que empieza adentro de un argumento no se sale de él. Con subtérminos es la pieza central del Ejercicio 7: allí se reemplazan ocurrencias de un término que vale lo mismo, acá un nombre que se interpreta igual, y el paso de la inducción es el mismo. La versión con relaciones y fórmulas es el Ejercicio 26, ya dentro de la notación declaratoria.