Concepto · Guía 10 · las asignaciones, la definición recursiva de , por qué no es ambigua, y el Lema 1 con su prueba entera
Un término es una palabra: no vale nada hasta que se dice en qué estructura se lo lee y qué elemento le toca a cada variable. Con esas dos cosas, el valor se calcula de adentro hacia afuera siguiendo la forma del término, y la lectura única de términos de la Guía 9 garantiza que haya una sola manera de hacerlo. Todo lo que la Guía 10 hace con fórmulas —la relación , las equivalencias, los homomorfismos— se apoya en esta definición.
Sea una estructura de tipo . Una asignación de es un elemento de
Si es una asignación, se dice que es el valor que le asigna a la variable . La tupla es infinita porque las variables son infinitas: , y una asignación le da un valor a cada una de una vez, sin tener que saber de antemano cuáles van a aparecer en el término. El lugar de la tupla es el de la variable , la palabra seguida de la escritura decimal de : el valor de es , el lugar 554, por más que la variable tenga sólo cuatro símbolos.
En el ejemplo de la guía, tiene universo y : a cada le toca el número .
Dada una estructura de tipo , un término y una asignación , se define recursivamente:
El elemento se llama el valor de en la estructura para la asignación . La variable mira la tupla, la constante mira la estructura, y la función junta los valores de los argumentos con la operación que la estructura le da al nombre. En la cláusula (3) la asignación es la misma para todos los argumentos: un término no tiene cuantificadores, y nada adentro de él cambia lo que vale una variable.
El ejemplo de la página 1. El tipo es , y tiene universo con , , , e . Con :
En el último, recibe cuatro números y usa los dos primeros: el 3 y el 554 se calculan y se descartan. Eso va a importar en la sección 05.
Es el Ejercicio 1 de la guía. Una definición recursiva dice «si tiene tal forma, su valor es tal cosa». Para que eso defina un elemento hacen falta dos cosas: que cada término caiga en exactamente una cláusula, y que en la cláusula (3) el nombre , la cantidad y los argumentos queden determinados por . Si un término se pudiera leer como y también como con otras piezas, la cláusula (3) daría por un lado e por el otro, y nada impide que sean distintos.
El teorema de lectura única de términos de la Guía 9 dice exactamente lo que falta: todo es una variable, o un nombre de constante, o de la forma , una sola de las tres, y en el tercer caso , y los son únicos. Con eso cada término tiene una sola cláusula que le corresponde y una sola manera de aplicarla.
Para ver qué se perdería, alcanza con imaginarse términos escritos a la manera de la escuela, sin paréntesis: con vale si se lo lee como una suma y si se lo lee como un producto. La gramática de la Guía 9 —todo nombre de función seguido de sus argumentos entre paréntesis y separados por comas— está hecha para que eso no pase.
Y la recursión termina: en la cláusula (3), si , los argumentos están en . El valor queda definido primero para los términos de por (1) y (2), y si ya está definido en , la cláusula (3) lo define en . Como todo término está en algún , todo término tiene valor.
Dada una asignación y , es la asignación que resulta de reemplazar en el -ésimo elemento por :
Por ejemplo, . Es la asignación que va a aparecer en la cláusula del y del : para decidir se prueba con todos los valores posibles en el lugar , dejando los demás quietos. En términos sirve para comparar valores: vale en , y sigue valiendo 38 en .
Cuatro cuentas que se usan sin decirlo, y que salen de comparar lugar por lugar:
Lo que se ve al tocar la tupla es la mitad del Lema 1: si el lugar que cambiaste no es el de una variable que ocurre en , no cambia ningún nodo. La otra mitad no vale. ocurre en , su nodo cambia, y la raíz no se entera.
Lema 1 (Guía 10, p. 2). Sea una estructura de tipo y sea . Supongamos que son asignaciones tales que cada vez que ocurra en . Entonces .
Las dos asignaciones pueden diferir en infinitos lugares; mientras coincidan en los lugares de las variables que aparecen en , el valor es el mismo. Con , que coincide con en los lugares 1, 3 y 554, vale 38 en las dos. La guía hace la prueba por inducción y deja el caso base al lector; acá va entera.
Prueba. Usaremos la Regla de Inducción desde 0. Para cada sea el enunciado:
: Sea una estructura de tipo y sea . Supongamos que son asignaciones tales que cada vez que ocurra en . Entonces .
Prueba de que es verdadero. Sea una estructura de tipo , sea y sean asignaciones tales que cada vez que ocurra en . Hay dos casos.
Prueba de que si es verdadero, entonces lo es. Supongamos que vale . Sea una estructura de tipo , sea y sean asignaciones tales que cada vez que ocurra en . Por definición de hay dos casos.
Luego es verdadero para todo . Como todo está en algún , el lema vale para todo término. ∎
Dos cosas de la forma de la prueba. El tiene adentro la estructura y las dos asignaciones: «sea … supongamos que …». En esta prueba la hipótesis inductiva se aplica con las mismas , y que se tienen afuera, así que no se nota; en el Lema 2, que es la versión para fórmulas, el caso aplica la hipótesis con y , y si las asignaciones hubieran quedado fijas afuera del , la prueba no cerraría. Y el lema va en una sola dirección: que ocurra en no quiere decir que el valor dependa de . Lo que cuenta en la cláusula (3) es la operación , y ignora sus dos últimos argumentos.
Los Ejercicios 5 a 8 de la lista comparan el valor de un término con el de un término que sale de por un reemplazo, y todos se prueban con el molde del Lema 1: Regla de Inducción desde 0, con la estructura y las asignaciones cuantificadas adentro, caso base con y , y en el paso el caso y el caso . Lo que cambia de uno a otro es qué pasa con las ocurrencias de lo reemplazado: en el Ejercicio 5 se cambia por y se compara con ; en el 6 y el 7 se reemplaza un término por otro que vale lo mismo; en el 8, un nombre de función por otro con la misma interpretación. En los cuatro, el paso necesita saber dónde puede estar una ocurrencia de lo reemplazado adentro de : o es el término entero, o vive adentro de un único argumento.
Y en el Ejercicio 13 el resultado de términos se sube a fórmulas: el término que se cambia vive en una atómica, y ahí la cláusula de o de compara valores de términos.