Bitácora · Lógica · Guía 9

Para probar que no es término, contá o leé de afuera

Ejercicios 3 a 8 de la Guía 9 · tres inducciones con el mismo molde, dos resultados que salen del menú, y cinco palabras que no son términos

Los enunciados, textuales, de la página 3 de la Guía 9:

Y el de la página 4: «Ejercicio 8. Sea τ=({cero,1},{suma,glp},∅,a), con a(suma)=2, a(glp)=1. Probar que las siguientes palabras no son términos de tipo τ:

Son dos trabajos distintos. Del 3 al 7 se prueba que todo término cumple algo; en el 8 se usa eso para probar que cinco palabras no son términos. Lo que los une es que un término de tipo τ es una palabra, armada por niveles, y que sólo hay dos maneras de decir algo de todas: inducción en el nivel, o mirar cómo es por afuera.

01 · Antes de probar: qué se sabe de un término

La definición, de la página 1 de la guía: T0τ=Var∪𝒞, y

Tk+1τ=Tkτ∪{f(t1,…,tn):f∈ℱn,n≥1 y t1,…,tn∈Tkτ}.

Un término es un elemento de Tτ=⋃k≥0Tkτ, y cada uno está en algún Tkτ. La palabra f(t1,…,tn) es la concatenación de f, «(», t1, «,», …, «,», tn y «)», así que tiene longitud |f|+|t1|+⋯+|tn|+(n−1)+2, con n−1 comas. Las variables son palabras concretas: X seguida de numerales itálicos, el último negrita.

Lo que dice el tipo. En τ=(𝒞,ℱ,ℛ,a) los nombres de constante son palabras de un alfabeto Σ1 y los de función de otro, Σ2, disjuntos, y ninguno de los dos tiene la X, los numerales itálicos o negritas, los paréntesis ni la coma. Casi todo lo que sigue sale de esa frase: ni las variables ni los nombres tienen paréntesis ni comas. Los únicos paréntesis y las únicas comas de un término son los que pone f(…).

La notación. |α|σ es la cantidad de veces que aparece el símbolo σ en la palabra α, y [α]i es su i-ésimo símbolo, contando desde 1.

Qué es verdadero y qué no alcanza. Los enunciados del 3 al 7 son todos verdaderos. Lo que no vale es la vuelta, y eso decide cómo se hace el 8: los tres hechos que prueban el 3, el 6 y el 7 —tantos «(» como «)»; después de un «)», una coma o un «)»; nunca «(,»— son cosas que todo término cumple, pero no alcanzan para ser término. Medido sobre las cinco palabras del 8: (b), (c) y (d) cumplen los tres, y no son términos. Sólo (a) y (e) caen por uno de ellos, el conteo: (a) tiene 2 paréntesis que abren y 1 que cierra; (e), 6 y 7. Para las otras tres hay que leer la palabra.

02 · Las herramientas: el menú y el molde

El Lema 1 (Menú para términos), como lo da la guía en la página 3: «Supongamos t∈Tk+1τ, con k≥0. Entonces se da alguna de las siguientes: (a) t∈Var∪𝒞; (b) t=f(t1,…,tn), con f∈ℱn, n≥1 y t1,…,tn∈Tkτ.» Dice cómo es un término por afuera, y lo dice sin mirar adentro de los tj.

La Regla de Inducción desde 0. Si para cada k∈ω hay un enunciado Enuk, y se prueba Enu0 y que Enuk implica Enuk+1, entonces vale Enuk para todo k. Para probar que todo término cumple una propiedad P, el molde es siempre el mismo:

La pregunta antes de cada ejercicio es si hace falta. Una propiedad que habla sólo de la forma de afuera —qué símbolo va primero, si el término es compuesto, cuánto mide como mínimo— sale del menú sin inducción. Una que habla de lo que pasa en cualquier posición de la palabra tiene que bajar hasta los tj, y para eso necesita la hipótesis inductiva.

03 · Ejercicio 3: tantos paréntesis que abren como que cierran

La mariposa. La propiedad habla de toda la palabra, así que va con el molde. En la base no hay nada que contar: cero y cero. En el paso, f(t1,…,tn) agrega exactamente un «(» y un «)» por fuera de los tj —el nombre y las comas no aportan ninguno—, y adentro de cada tj la hipótesis dice que están parejos. Es una suma.

El escarabajo. Prueba. Por la Regla de Inducción desde 0. Para cada k∈ω sea

Enuk:para todo t∈Tkτ,|t|(=|t|).

Enu0. Si t∈T0τ=Var∪𝒞: una variable sólo tiene la X y numerales, y un nombre de constante sólo símbolos de Σ1, que no tiene paréntesis. En los dos casos |t|(=0=|t|).

Enuk⇒Enuk+1. Supongamos Enuk y sea t∈Tk+1τ. Si t∈Tkτ, vale por Enuk. Si no, t=f(t1,…,tn) con f∈ℱn, n≥1 y t1,…,tn∈Tkτ. La palabra t es la concatenación de f, «(», t1, «,», …, «,», tn, «)». El nombre f y las comas no tienen paréntesis, así que

|t|(=1+∑j=1n|tj|(=1+∑j=1n|tj|)=|t|),

donde la igualdad del medio es Enuk aplicado a cada tj. Luego vale Enuk para todo k, y como todo t∈Tτ está en algún Tkτ, vale para todo término. ∎

04 · Ejercicio 4: un término compuesto mide al menos cuatro

La mariposa. Un término que no está en Var∪𝒞 tiene que ser f(t1,…,tn): eso lo dice el menú, sin inducción. Y una palabra de esa forma tiene, como mínimo, un símbolo de nombre, los dos paréntesis y un argumento que no es vacío. Lo único que hay que asegurar aparte es eso último: que ningún término es la palabra vacía.

El escarabajo. Prueba. Primero, todo término tiene longitud al menos 1: las variables tienen longitud al menos 2, los nombres de constante son palabras no vacías de Σ1, y un f(t1,…,tn) tiene por lo menos sus dos paréntesis.

Sea t∈Tτ−(Var∪𝒞). Entonces t∈Tkτ para algún k, y k≥1 porque T0τ=Var∪𝒞. Por el Lema 1 aplicado a t∈T(k−1)+1τ, y como t∉Var∪𝒞, es t=f(t1,…,tn) con f∈ℱn, n≥1 y tj∈Tk−1τ. Entonces

|t|=|f|+|t1|+⋯+|tn|+(n−1)+2≥1+1+0+2=4,

usando |f|≥1, porque f es una palabra no vacía de Σ2; |t1|≥1, por lo de recién; los demás |tj|≥0, y n−1≥0. ∎

La cota es justa. En el tipo ({0,1},{↑},∅,{(↑,1)}), el término ↑(0) está en T1τ y tiene longitud 4: un símbolo de nombre, dos paréntesis y un símbolo de constante. No se puede pedir 5.

05 · Ejercicio 5: si aparece un «)», el término es compuesto

La mariposa. Otra vez una propiedad de la forma de afuera, y otra vez sin inducción. El menú deja dos posibilidades, y una de ellas no tiene paréntesis. El trabajo es el mismo del 4: separar el caso k=0, donde el menú no se aplica porque pide Tk+1τ.

El escarabajo. Prueba. Sea t∈Tτ tal que en t ocurre «)», y sea k tal que t∈Tkτ. Si k=0, t∈Var∪𝒞, y ni las variables ni los nombres de constante tienen paréntesis: contradice que «)» ocurre en t. Luego k≥1, y por el Lema 1 aplicado a t∈T(k−1)+1τ, o t∈Var∪𝒞 —imposible por lo mismo— o t=f(t1,…,tn) con f∈ℱn, n≥1 y tj∈Tk−1τ⊆Tτ. ∎

06 · Ejercicio 6: el índice va adentro del enunciado

La mariposa. Ésta sí pide inducción: habla de lo que viene después de cualquier «)», y un «)» puede estar enterrado en un tj. La pregunta del paso es de dónde sale el «)» de la posición i: no de f, no de una coma, y no del «)» final, porque i<|t|. Sale de algún tj. Y ahí hay dos casos: o hay otro símbolo de tj después —y la hipótesis se encarga—, o es el último símbolo de tj, y lo que sigue es una frontera: la coma que lo separa de tj+1, o el «)» del final.

El detalle que decide si la prueba se puede escribir es dónde va el índice. Medido en t=suma(glp(glp(X1)),1), de longitud 20 y en T3τ con el tipo del Ejercicio 8: los «)» están en las posiciones 16, 17 y 20. Para el de la posición 16 hay que mirar t1=glp(glp(X1)), que empieza en la posición 6 de t, y en t1 ese mismo «)» está en la posición 11. Si Enuk dijera «para este i», la hipótesis pediría la posición 16 de t1, que mide 12, y lo que hace falta es la 11. Por eso el enunciado es «para todo t∈Tkτ y todo i»: la hipótesis tiene que valer en la posición que le toque al tj. El «)» de la posición 17 es el otro caso: es el último de t1, el 12, y lo sigue la coma.

El escarabajo. Prueba. Por la Regla de Inducción desde 0, con

Enuk:para todo t∈Tkτ y todo i∈{1,…,|t|−1}, si [t]i=) entonces [t]i+1 es «,» o «)».

Enu0. En Var∪𝒞 no ocurre «)»: vale vacuamente.

Enuk⇒Enuk+1. Supongamos Enuk. Sea t∈Tk+1τ e i<|t| con [t]i=). Si t∈Tkτ, vale por Enuk. Si no, t=f(t1,…,tn) con tj∈Tkτ. Ese «)» no es de f, que no tiene paréntesis, ni una coma, ni el «)» final, que está en la posición |t|. Entonces es un símbolo de algún tj, en una posición p de tj con [tj]p=).

En todos los casos [t]i+1 es «,» o «)». Luego vale Enuk para todo k, y con eso para todo t∈Tτ. ∎

07 · Ejercicio 7: la palabra «(,» no ocurre

La mariposa. El mismo molde que el 6, y la misma pregunta: de dónde sale el «(» de una supuesta ocurrencia de «(,». Adentro de un tj lo resuelve la hipótesis. Lo que no resuelve son las dos fronteras: el «(» que pone f, seguido del primer símbolo de t1, y un «(» que fuera el último símbolo de un tj, seguido de la coma que pone f. Para cerrarlas hacen falta dos hechos sobre los bordes de un término, y ésos salen del menú sin inducción:

Las dos se ven igual que el 5: si t∈T0τ es variable o constante, y si t∈Tk+1τ el menú da las mismas dos formas. Es el caso que el molde avisa: la propiedad falla, si falla, justo donde se pegan las piezas.

El escarabajo. Prueba. Por la Regla de Inducción desde 0, con

Enuk:para todo t∈Tkτ, la palabra «(,» no ocurre en t.

Enu0. En Var∪𝒞 no hay «(».

Enuk⇒Enuk+1. Supongamos Enuk y sea t∈Tk+1τ. Si t∈Tkτ, vale por Enuk. Si no, t=f(t1,…,tn) con tj∈Tkτ. Supongamos que «(,» ocurre en t a partir de i. Como f no tiene paréntesis, el «(» de la posición i es el que sigue a f o es un símbolo de algún tj.

Luego «(,» no ocurre en t, vale Enuk para todo k, y con eso para todo término. ∎

El mismo molde, tres veces. El 3, el 6 y el 7 tienen la misma base —en Var∪𝒞 no hay paréntesis— y el mismo paso: el caso t∈Tkτ es la hipótesis, y en f(t1,…,tn) se mira cada pieza. Lo que cambia es cuánto trabajo dan las fronteras: ninguno en el 3, que sólo suma; dos casos en el 6; dos casos y dos hechos auxiliares en el 7. El 4 y el 5, en cambio, no tienen nada que buscar adentro de los tj, y por eso alcanza con el menú.

08 · Ejercicio 8: contar, o leer de afuera

Primero, que τ es un tipo. Los nombres de constante usan Σ1={c,e,r,o,1} y los de función Σ2={s,u,m,a,g,l,p}: son disjuntos, no tienen ningún símbolo prohibido, y ningún nombre es subpalabra propia de otro del mismo conjunto.

La mariposa. Para probar que una palabra no es término, mirarla y decir que está mal escrita no es una prueba. Hay dos estrategias, y conviene probar primero la barata:

Medido en la sección 01: (a) y (e) caen contando paréntesis, y (b), (c) y (d) pasan los tres invariantes. Para esas tres hay que leer. Y para leer hacen falta dos herramientas, las dos sacadas del menú:

Eso último es lo que hay que cuidar: entre los argumentos puede haber más comas que las separadoras, porque un argumento puede tener comas adentro. La prueba no puede elegir la coma que le conviene. Tiene que decir «la separadora es alguna de éstas» y llegar al absurdo con cada una.

Abajo están las cinco palabras. Arranca en (d) contando, que es donde contar no decide nada: pasá a leerla de afuera y elegí vos la coma.

Lectura Las cinco palabras del Ejercicio 8, contadas o leídas de afuera — elegí una palabra y una estrategia. Leyendo de afuera, «Siguiente paso» aplica el menú; cuando hay que cortar los argumentos, elegís vos cuál coma es la separadora, y la prueba no termina hasta que todas las comas posibles llegan al absurdo. En rojo, dónde se rompe.
La palabra
La estrategia

paréntesis que abren — paréntesis que cierran —

El escarabajo, ítem por ítem.

(a) La palabra glp((X133) tiene dos «(» y un «)». Por el Ejercicio 3, todo término tiene tantos de uno como del otro. Luego no es término. ∎

Es la prueba de la guía, en la página 4, y es la que hay que dar: leyéndola de afuera también se llega —glp tiene aridad 1, el argumento sería (X133, y por (P) ningún término empieza con «(»—, pero eso pide (P), que hay que probar, y el conteo ya está probado.

(b) Supongamos que suma(g,cero)∈Tτ. Por la lectura de afuera, f=suma, n=2, y suma(g,cero)=suma(t1,t2) con t1,t2∈Tτ. Sacando «suma(» y el «)» final, g,cero=t1,t2. La palabra de la izquierda tiene una sola coma, y la separadora del lado derecho es una de ellas, así que t1 y t2 no tienen comas: t1=g. Pero g∉Var∪𝒞 y |g|=1<4, así que por el Ejercicio 4, g∉Tτ. Absurdo. ∎

El argumento corto que tienta es «la letra g no está en el alfabeto del tipo», y es falso: g∈Σ2, es la primera letra de glp. Lo que falla no es el símbolo: es que la palabra g no es un término.

(c) Supongamos que glp(0)∈Tτ. Por la lectura de afuera, f=glp, n=1 y t1=0. El símbolo 0 no es un nombre de constante, porque 𝒞={cero,1}; no es una variable, porque no empieza con X, y tiene longitud 1<4. Por el Ejercicio 4, 0∉Tτ. Absurdo. ∎

(d) Supongamos que es término. Por la lectura de afuera, f=suma, n=2, y

X1232,X2,1=t1,t2

con t1,t2∈Tτ. La palabra de la izquierda tiene dos comas, y la separadora es una de ellas.

En los dos casos se llega a un absurdo, así que la palabra no es término. ∎

La versión de la guía. La página 4 resuelve el mismo ítem en otro orden: en vez de repartir por la coma, corta primero t1. De X1232,X2,1=t1,t2 saca que t1 empieza con X —porque t1 no puede ser ε, y ése es el «justifique» que deja: todo término mide al menos 1—, por (∗) t1 es una variable, y como una variable termina en su único negrita, t1=X1232. Queda X2,1=t2, y aplicando (∗) otra vez, X2,1 tendría que ser una variable. Absurdo. Las dos usan (∗); la de la guía lo usa para ubicar la coma, y la de arriba prueba todas.

(e) Contando: hay cinco «suma(» y un «glp(», o sea 6 paréntesis que abren. Los que cierran son uno después de cada uno de los cuatro «,1», uno después de «cero» y dos más al final: 7. Como 6≠7, por el Ejercicio 3 no es término. ∎

Leerla de afuera también termina, y se ve en la simulación de arriba: la palabra de adentro tiene cinco comas. Con cada una de las cuatro primeras, t1 tiene 4 paréntesis que abren y 0, 1, 2 o 3 que cierran; con la quinta, t1 sí es término, y el que falla es t2=glp(cero)), con 1 que abre y 2 que cierran. Las cinco ramas terminan contando paréntesis, y ésa es la razón para contar desde el principio.

09 · Lo que se lleva a otros ejercicios

Antes de una inducción, preguntá si la propiedad mira adentro. Si sólo habla de la forma de afuera, el menú alcanza y la inducción es ruido; si habla de cualquier posición, hace falta, y los parámetros van cuantificados adentro de Enuk. Es el mismo criterio con fórmulas, en el Ejercicio 14.

El conteo de paréntesis tiene más usos que el 8. El 2(h) lo necesita para ver que s(X1 no es término: tiene un «(» y ningún «)». Está en Antes de decidir, preguntá qué clase de objeto es.

Elegir la coma es el problema de la lectura única. En el 8 la palabra no es término y toda coma lleva al absurdo. Cuando la palabra sí es término, hay exactamente una coma buena, y saber cuál es lo que resuelven el Ejercicio 11 y el ensayo Un corte equivocado rompe las dos piezas.

Lo que hace perder puntos. Escribir Enuk con el índice afuera, en el 6. Olvidar las fronteras en el 7, sobre todo el «(» que es último símbolo de un tj. Probar el 4 sin asegurar que |t1|≥1. En el 8, decir que g no está en el alfabeto, cortar por la coma que conviene sin descartar las otras, o confundir 0 con su negrita. Y citar el 3 o el 4 sin haberlos probado: la regla de la cátedra es que un resultado de una guía que se usa se enuncia y se prueba.

Para tener a mano

  1. El molde: Enuk es «para todo t∈Tkτ (y todo parámetro), P(t)»; base en Var∪𝒞, sin paréntesis ni comas; paso con t∈Tkτ o t=f(t1,…,tn), revisando cada pieza y cada frontera.
  2. 3, 6 y 7 van con el molde. 4 y 5 salen del menú, con el caso k=0 aparte.
  3. Ningún término es vacío; uno compuesto mide al menos 4, y ↑(0) muestra que la cota es justa.
  4. (P) y (U): un término empieza con X o con un símbolo de nombre, y termina en un negrita, un símbolo de constante o «)». Y (∗): si empieza con X, es una variable.
  5. Para probar que no es término: primero contar ((a): 2 y 1; (e): 6 y 7). Si el conteo pasa, leer de afuera: f es lo que está antes del primer «(», n=a(f), y el absurdo tiene que salir con cada coma que podría ser la separadora.
← Anterior Siguiente → Inicio
Relacionados Inducción en la construcción Probar que una palabra no es término ni fórmula Variables y términos de tipo τ Contar paréntesis no alcanza