Bitácora · Lógica · Lista del parcial 3

Dos nombres para la misma función

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 (∅,{F1,F2},∅,{(F1,2),(F2,2)}). Sea t∈Tτ y sea t′ el resultado de reemplazar cada ocurrencia de la palabra F1 en t por la palabra F2. (a) Pruebe que t′∈Tτ. (b) Pruebe que si 𝐀=(A,i) es una estructura de tipo τ tal que i(F1)=i(F2), entonces para cualquier asignación a→∈A𝐍 se tiene que t′𝐀[a→]=t𝐀[a→]». No viene de las guías. Va sin notación declaratoria, con asignaciones infinitas.

01 · Qué dice, con un ejemplo

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: F1 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 F1(t1,t2) y F2(t1,t2).

En t=F1(X1,F2(X2,F1(X1,X3))), de 23 símbolos, la palabra F1 ocurre a partir de 1 y a partir de 13. Reemplazar las dos da t′=F2(X1,F2(X2,F2(X1,X3))), que es término y tiene el mismo nivel, 3. Con A={0,1,2,3,4}, i(F1) e i(F2) los dos el máximo, y a→=(1,3,2,2,…), los dos términos valen 3. Si en cambio i(F2) es el mínimo, t′ vale min(1,min(3,min(1,2)))=1, y t, que también tiene un F2, vale max(1,min(3,max(1,2)))=2.

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 F1 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 F2. En este tipo es cierto, y es lo primero que hay que probar.

02 · Las herramientas

Las variables (Guía 9, p. 1): son las palabras Xα 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 T0τ=Var, y Tk+1τ=Tkτ∪{f(t1,t2):f∈{F1,F2} y t1,t2∈Tkτ}. La palabra f(t1,t2) es la concatenación de f, «(», t1, «,», t2 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): xm𝐀[a→]=am, y f(t1,t2)𝐀[a→]=i(f)(t1𝐀[a→],t2𝐀[a→]) si t1,t2∈Tτ. 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 f(t1,t2) con únicos f, t1 y t2.

El hecho de la palabra F1. Es propio de este tipo y no está en ninguna guía, así que se enuncia y se prueba. Sea t∈Tτ:

De (iii) y (iv) sale lo que se usa en las dos inducciones: si t=f(t1,t2), entonces t′=F2(t1′,t2′), donde t1′ y t2′ son los resultados de reemplazar cada ocurrencia de F1 en t1 y en t2 por F2. Sea f el que sea, la cabeza de t′ es F2: si era F1, la ocurrencia de la posición 1 se reemplazó, y si era F2, ya estaba.

03 · La mariposa: dos inducciones con el mismo paso

Las dos metas piden mirar t′ por dentro: para que sea término, hay que ver que es de la forma F2(t1′,t2′) 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 t′=F2(t1′,t2′), y las dos se prueban por inducción en el nivel de t, porque el nivel baja de t a t1 y t2.

En (a), conviene pedir más. El Enuk natural sería «si t∈Tkτ, entonces t′∈Tτ». Anda, pero en el paso da t1′∈Tm1τ y t2′∈Tm2τ con niveles distintos, y hay que subir los dos al máximo. Pidiendo t′∈Tkτ, el mismo nivel que t, el paso es inmediato: t1′,t2′∈Tkτ y entonces F2(t1′,t2′)∈Tk+1τ. 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 f=F1. La cuenta es t′𝐀[a→]=i(F2)(t1′𝐀[a→],t2′𝐀[a→]), la hipótesis inductiva cambia los argumentos por los de t, y i(F2)=i(F1) cambia la cabeza. Si f=F2 no hace falta. Y (b) usa (a) dos veces: para que t′𝐀[a→] tenga sentido, y para aplicar la cláusula a F2(t1′,t2′), que pide t1′,t2′∈Tτ.

El Enuk 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.

Simulación Cambiar el nombre y comparar — arranca con i(F2) igual a i(F1), el máximo en {0,…,4}. Mirá dónde ocurre F1, después cambiá i(F2) por el mínimo y contá en cuántas asignaciones se sigue igualando. Podés escribir tu propio término.
F1 ocurre desde — nivel de t, t′ — tᴬ[a→] — t′ᴬ[a→] — iguales en —

Con i(F2)=i(F1) el conteo da las 125 asignaciones de (a1,a2,a3) en {0,…,4}3, 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, F1(F1(X1,X2),X3), en 5: la hipótesis no es necesaria para que dos valores coincidan alguna vez, es lo que hace que coincidan siempre.

04 · El escarabajo: la prueba escrita

Prueba del hecho de la palabra F1.

La descomposición. Si t=f(t1,t2), por (iii) las ocurrencias de F1 en t son la de la cabeza, si f=F1, y las de t1 y t2. Reemplazar cada una por F2 deja la cabeza en F2, los paréntesis y la coma donde estaban, y adentro de cada argumento hace lo mismo que reemplazar cada ocurrencia de F1 en t1 y en t2. Luego t′=F2(t1′,t2′).

(a) Prueba. Usaremos la Regla de Inducción desde 0. Para cada k∈ω sea Enuk el enunciado:

Enuk: Si t∈Tkτ y t′ es el resultado de reemplazar cada ocurrencia de la palabra F1 en t por la palabra F2, entonces t′∈Tkτ.

Por la Regla de Inducción desde 0, Enuk vale para todo k∈ω. Dado t∈Tτ, hay k con t∈Tkτ, y entonces t′∈Tkτ⊆Tτ. ∎

(b) Prueba. Usaremos la Regla de Inducción desde 0. Para cada k∈ω sea Enuk el enunciado:

Enuk: Si t∈Tkτ y t′ es el resultado de reemplazar cada ocurrencia de la palabra F1 en t por la palabra F2, entonces para cualquier estructura 𝐀=(A,i) de tipo τ tal que i(F1)=i(F2) y cualquier asignación a→∈A𝐍, se tiene que t′𝐀[a→]=t𝐀[a→].

Por (a), t′∈Tτ, así que t′𝐀[a→] está definido.

Por la Regla de Inducción desde 0, Enuk vale para todo k∈ω, y como todo t∈Tτ está en algún Tkτ, vale (b). ∎

05 · Lo que hace perder puntos y lo que se lleva

Lo que hace perder puntos. Escribir «t′=F2(t1′,t2′)» sin justificar dónde ocurre la palabra F1: es la única parte del ejercicio que no es una cuenta, y la consigna habla de palabras, no de nodos. Olvidar el caso f=F2, donde la cabeza no cambia y la hipótesis no se usa. En (b), calcular t′𝐀[a→] sin citar (a). Y escribir un solo Enuk 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.

Para tener a mano

  1. La palabra F1 sólo ocurre como cabeza: las variables no tienen la letra F, y un término nunca termina en F, así que una ocurrencia que empieza en un argumento no se sale de él.
  2. Si t=f(t1,t2), entonces t′=F2(t1′,t2′), sea f el que sea.
  3. (a) con Enuk: si t∈Tkτ, entonces t′∈Tkτ. Pedir el mismo nivel ahorra subir dos niveles al máximo.
  4. (b) con Enuk cuantificando 𝐀 con i(F1)=i(F2) y a→; la hipótesis se usa sólo en la cabeza, cuando f=F1; (a) se cita para que t′𝐀[a→] tenga sentido.
← Anterior Siguiente → Inicio
Relacionados El valor de un término en una estructura Variables y términos de tipo τ Lo que vale lo mismo se puede cambiar Dos nombres para la misma relación