Inducci ´on y recursi ´on

Texto completo

(1)

Borrador

Inducci ´on y

recursi ´on

5

5.1. Introducci ´on

Existen muchos universos o dominios que contienen un n´umero ilimitado de elementos que sin embargo pueden ser contados. Por ejemplo, el universo de n´umeros naturales, el dominio de expresiones l´ogicas (tomadas con las variables proposicionales de un alfabeto), el dominio de programas escritos en ciertos lenguajes de programaci´on y en general todas las estructuras comunes en computaci´on como son las listas o los ´arboles, conocidas como estructuras discretas. Estos universos se conocen como conjuntos infinitos numerables y son de gran utilidad en Ciencias de la Computaci´on y Matem´aticas Discretas. Numerable en este caso significa que se pueden contar en el sentido de que dado un elemento del conjunto, es posible determinar cu´al es el elemento siguiente. Sin embargo, por ser infinitos, no es posible describirlos elemento por elemento pues nunca terminar´ıamos, ni tampoco podemos probar alguna propiedad acerca de ellos tratando de mostrarla para cada elemento particular. En este cap´ıtulo tratamos dos t´ecnicas muy relacionadas entre s´ı, la inducci´on y la recursi´on, las cuales sirven para probar y definir propiedades sobre dominios infinitos numerables.

(2)

ocupare-Borrador

mos de las definiciones recursivas de conjuntos y funciones en un ´ambito m´as general. Estas definiciones recursivas son generalizaciones de las utilizadas en n´umeros naturales a cualquier dominio infinito numerable y que adem´as est´e bien fundado1. En la ´ultima sec-ci´on nos ocupamos en generalizar el principio de inducsec-ci´on matem´atica mediante la llama-da inducci´on estructural en algunas estructuras discretas muy necesarias en programaci´on como son ´arboles y cadenas o listas finitas.

5.2. Los n ´umeros naturales

El conjunto de n´umeros naturales2 N ✏ t0,1,2, . . .es quiz´as el ejemplo m´as senci-llo de un conjunto infinito numerable. Pero siendo infinito, ¿c´omo podemos justificar su construcci´on y manejo en computaci´on?

Empecemos con su construcci´on. En la vida diaria utilizamos los s´ımbolos 0, . . . ,9 para representar los primeros diez n´umeros naturales, llamados d´ıgitos, mientras que los siguientes n´umeros se definen a partir de los d´ıgitos mediante ciertas reglas. Formalmente s´olo utilizaremos el d´ıgito0ya que los dem´as n´umeros se construir´an utilizando la funci´on sucesor. El sucesor de un n´umeron, escritos♣nq, es simplemente el n´umero que le sigue a n en la sucesi´on de n´umeros naturales o, equivalentemente, s♣nq ✏ n 1, pero como a´un no definimos la suma evitaremos su uso. Obs´ervese que la funci´on sucesor es general y no depende del dominio de los n´umeros naturales; por ejemplo los d´ıas y meses tienen sucesor.

La definici´on de n´umeros naturales ser´a nuestro primer ejemplo de definici´on recursiva.

✧ 0es un n´umero natural.

Sin es un n´umero natural, entonces el sucesor den, denotadosnq, es un n´umero natural.

✧ ´Estos y s´olo ´estos son n´umeros naturales.

Esta definici´on es recursiva pues en la segunda cl´ausula se est´a usando an, que supo-nemos es un natural, para poder concluir ques♣nqtambi´en lo es, es decir, estamos usando lo definido en la misma definici´on; en la siguiente secci´on trataremos con detalle este tipo de definiciones. La tercera cl´ausula puede parecer extra˜na y con frecuencia se omite en las definiciones. Sin embargo es necesaria para garantizar que un objeto es un n´umero natural ´unicamente si fue construido usando las cl´ausulas anteriores. Esto es imprescindible para que funcionen los principios de inducci´on.

1dominio bien fundadose refiere, en t´erminos muy generales, a un conjunto tal que cualquiera de sus

subconjuntos tiene un primer elemento.

2La inclusi´on del0en los naturales no es aceptada universalmente, especialmente por matem´aticos; sin

(3)

Borrador

Seg´un la definici´on anterior el conjunto de n´umeros naturales es

N✏ t0, s♣0q, ss♣0qq, . . .

De esta manera hemos construido un conjunto infinito en el sentido de que siempre podremos construir cualquier n´umero de sus elementos y en particular cualquier elemento.

Diferencia entre sintaxis y sem ´antica

Estructuralmente es claro que el conjunto de n´umeros naturales reci´en definido es in-finito; sin embargo, si le damos cierto significado a la funci´on sucesor pudiera darse el caso de que los elementos s♣s♣. . . s♣nq. . .qq no sean todos distintos. Por ejemplo, si hablamos de los d´ıas de la semana,

s♣s♣s♣s♣s♣s♣s♣lunesqqqqqqq ✏lunes.

Para indicar que el conjunto es infinito es necesario postular dos propiedades m´as que garanticen que todos los naturales son distintos.

• ❅n♣s♣nq ✘0q.

• ❅n❅m♣s♣nq ✏s♣mq Ñn ✏mq.

Estas dos propiedades aseguran que el0no es sucesor de nadie y que la funci´on sucesor es inyectiva.

A continuaci´on nos gustar´ıa definir las operaciones b´asicas suma y producto; esto se har´a nuevamente usando recursi´on. Para la suma tenemos la siguiente definici´on:

• ❅n♣n 0✏nq.

• ❅n❅m♣m s♣nq ✏s♣m nqq.

La importancia de una definici´on recursiva es que podemos extraer de ella un programa para calcular dicha funci´on; veamos un ejemplo sencillo:

3 2 ✏ sss♣0qqq ss♣0qq

✏ s s♣s♣s♣0qqq s♣0q✟

✏ s s s♣s♣s♣0qqq 0✟✟

✏ s s s♣s♣s♣0qqq✟✟

✏ 5

Finalmente, el producto de dos naturales se define recursivamente como sigue:

• ❅n♣n✂0✏0q.

• ❅n❅m♣n✂s♣mq ✏n✂m nq.

(4)

Borrador

5.2.1.

Axiomas de Peano

Las f´ormulas l´ogicas definidas a continuaci´on constituyen los llamados axiomas de Peano; ´estos fueron propuestos por el matem´atico italiano Giuseppe Peano en 1889 y con-forman una definici´on abstracta del conjunto de los n´umeros naturales. A continuaci´on los resumimos.

•0es un n´umero natural. (P-1)

• Sines un n´umero natural entoncess♣nqes un n´umero natural. (P-2)

•❅n♣s♣nq ✘0q. (P-3)

•❅m❅n

s♣nq ✏ s♣mq✟Ñ n ✏m✟✠. (P-4)

Tambi´en contamos, en este mismo formato, con las definiciones recursivas de las opera-ciones de suma y producto de los n´umeros naturales reci´en discutidas y que recapitulamos a continuaci´on:

•❅m♣m 0✏mq. (D-1)

•❅m❅n m s♣nq ✏s♣m nq✟. (D-2)

•❅m♣m✂0✏0q. (D-3)

•❅m❅n m✂s♣nq ✏m✂n m✟. (D-4)

El ´ultimo axioma de Peano es el llamado axioma de inducci´on y nos dice que para cualquier predicadoP la siguiente expresi´on es v´alida:

•P♣0q ❫ ❅n

P♣nq Ñ P s♣nq✟✠Ñ ❅n P♣nq✟. (P-5)

Esta expresi´on formaliza el principio de inducci´on para n´umeros naturales. Este prin-cipio es muy conocido y de gran importancia en matem´aticas discretas y ciencias de la computaci´on y, en general, en todas las matem´aticas. A continuaci´on discutimos su validez y desarrollamos algunos ejemplos de su uso.

5.3. Inducci ´on en los n ´umeros naturales

(5)

Borrador

naturaln0 una derivaci´on deP♣n0qconstruida como sigue (usando1,2,3, . . . en lugar de

s♣0q, ss♣0qq, sss♣0qqq, . . .) :

1. P♣0q Hip´otesis.

2. ❅n♣P♣nq Ñ P♣s♣nqqq Hip´otesis.

3. P♣0q Ñ P♣1q Instanciaci´onn :✏0en2.

4. P♣1q Modus Ponens1,3.

5. P♣1q Ñ P♣2q Instanciaci´onn :✏1en2.

6. P♣2q Modus Ponens4,5.

7. P♣2q Ñ P♣3q Instanciaci´onn :✏2en2.

8. P♣3q Modus Ponens6,7.

.. .

k. P♣n0q

Estas derivaciones generan la siguiente regla de inferencia, la cual tambi´en se deriva del axioma (P-5):

P♣0q

❅n P♣nq ÑP♣s♣nqq✟

❅n♣P♣nqq

dondeP es un predicado acerca de n´umeros naturales. Veamos algunos ejemplos de su uso.

Ejemplo 5.1. Mostrar que0es identidad por la izquierda de la suma; esto es

❅n♣0 nnq.

Demostraci ´on.

Base: DemostrarP♣0q:♣0 0q ✏ 0. Esto se cumple por (P-2).

Hip ´otesis de inducci ´on: SuponemosP♣nq:0 nn.

Paso inductivo: DemostrarP♣s♣nqq:0 snq ✏snq.

0 snq ✏s♣0 nq (D-2)

✏s♣nq (hip´otesis de inducci´on)

(6)

Borrador

❅m♣❅n♣n m✏m nqq.

Demostraci ´on. Demostrarn mm n.

En este caso hay dos variablesm, ny podr´ıamos hacer inducci´on sobre cualquiera de ellas. Sin embargo, es necesario escoger una sola para la inducci´on, dejando a la otra como un par´ametro fijo durante toda la prueba, ya que no debemos hacer inducci´on sobre ambas variables. Aqu´ı elegimos hacer inducci´on sobrem.

Base: DemostrarP♣0q:0 nn 0.

0 nn (ejemplo (5.1))

✏n 0 (D-1)

Hip ´otesis de inducci ´on: SuponemosP♣mq:m n✏n m.

Paso inductivo: DemostrarP s♣mq✟:s♣mq n ✏n s♣mq. Tomando el lado derecho:

n s♣mq ✏ s♣n mq (D-2)

✏s♣m nq (hip´otesis de inducci´on) Quisi´eramos que el siguiente paso fuera

s♣m nq ✏ s♣mq n. (5.1)

Pero esto no es consecuencia de los axiomas ni de resultados anteriores. Por lo tanto, lo tenemos que demostrar. Lo haremos usando inducci´on natural, ahora sobren.

La propiedad a probar es:

❅m❅n s♣m nq ✏ s♣mq n✟

Base: DemostrarP♣0q:0 smq ✏ smq 0.

Esto se cumple porque ambos lados son iguales as♣mq.

Hip ´otesis de inducci ´on: SuponemosP♣nq:s♣m nq ✏ s♣mq n.

Paso inductivo: DemostrarP s♣nq✟:s♣m s♣nqq ✏s♣mq s♣nq.

s♣m s♣nqq ✏s♣s♣m nqq (D-2)

✏s♣s♣mq nq (hip´otesis de inducci´on)

✏s♣mq s♣nq (D-2)

Generalizaci ´on Universal: ❅n♣s♣m s♣nqq ✏ s♣mq s♣nq

Generalizaci ´on universal sobrem: ❅m❅n♣m n ✏n mq.

Ejemplo 5.3. SeaHn ✏0paran ✏ 0, y Hn 1 ✏1 2Hnparan → 0. Demostrar que❅n Hn ✏

2n✁1.

(7)

Borrador

Base: Demostrar, usando la definici´on dada,P♣0q:H0 ✏0✏20 1

.

H0 ✏0 (por la definici´on deHnconn ✏0)

✏1✁1 (por aritm´etica)

✏20✁1 ❵

Hip ´otesis de inducci ´on: SuponemosP♣nq:Hn ✏2n✁1.

Paso inductivo: Verificar queHn 1 ✏2n 1✁1.

Hn 1 ✏1 2Hn (definici´on deHn 1)

✏1 2♣2n✁1q (hip´otesis de inducci´on)

✏1 2☎2n✁2☎1 (aritm´etica)

✏1 2n 1✁2 (aritm´etica)

✏2n 11

(aritm´etica) ❵

Ejemplo 5.4. Muestra que para todan,2♣n 2q ↕ ♣n 2q2

.

Demostraci ´on.

Base: Paran✏0,

2♣0 2q ✏2♣2q ✏ 4↕4✏22 ✏ ♣0 2q2

Hip ´otesis de inducci ´on: SuponemosP♣nq:2♣n 2q ↕ ♣n 2q2

.

Paso inductivo: Corroborar que se cumpleP♣n 1q:

2♣♣n 1q 2q ✏2n 2 4 (definici´on y aritm´etica)

✏2♣n 2q 2 (aritm´etica)

↕ ♣n 2q2 2 (hip´otesis de inducci´on)

✏n2 4

n 4 2 (aritm´etica)

➔n2 4n 4 2n 5 n→0(por lo que al agregarlo se mantiene la desigualdad)

✏n2 6n 9 (aritm´etica)

✏ ♣n 3q2 (aritm´etica)

✏ ♣♣n 1q 2q2 ❵

Ejemplo 5.5. Demuestra quen3 2

nes divisible entre3.

Demostraci ´on.

Quen3 2

nsea divisible entre 3 quiere decir que se puede expresar comon3 2

(8)

Borrador

Base: Paran✏0,03 200 0030

, por lo que03 20q

es divisible por3.

Hip ´otesis de inducci ´on: SuponemosP♣nq:n3 2

n✏3☎k para algunak.

Paso inductivo: Tomemosn 1y veamos c´omo se expresan 1q3 2

n 1q.

♣n 1q3 2♣n 1q ✏n3 3n2 3n 1 2n 2 (´algebra)

✏ ♣n3 2nq 3n2 3n 3 (asociatividad y conmutatividad)

✏3☎k 3♣n2 n 1q (hip´otesis de inducci´on)

✏3☎k(conk✶ ✏k n2 n 1)

Conclusi ´on: De esto,❅n♣n3 2

nes divisible entre 3q.

5.3.1.

Cambio de la base de la inducci ´on

En algunos casos la base de la inducci´on no es necesariamente el cero o el uno; esto no es una falla en el m´etodo de inducci´on, sino que la propiedad utilizada es v´alida a partir de cierto numero n0, lo cual genera un principio similar, presentado aqu´ı como regla de

inferencia:

P♣n0q

❅n

n➙n0 ÑP♣nq ÑP s♣nq

✟✠ ❅n n➙n0 ÑP♣nq

Ejemplo 5.6. Mostrar que2nn!, paran4.

Demostraci ´on.

Base: P♣4q:24 16244!

.

Hip ´otesis de inducci ´on: SuponerP♣nq:2nn!.

Paso inductivo: DemostrarP♣n 1q:2n 1 ➔ ♣

n 1q!.

2n 1 ✏2✂2n (aritm´etica)

➔2✂n! (hip´otesis de inducci´on)

➔ ♣n 1q ✂n! 2➔n 1, (puesn ➙4)

✏ ♣n 1q! (definici´on den 1q!)

(9)

Borrador

Demostraci ´on.

Base: P♣4q:4✏2☎2de manera que $4puede pagarse con dos monedas de $2.

Hip ´otesis de inducci ´on: P♣nq: Suponemos que $n pueden pagarse con monedas de $2 y $5.

Paso inductivo: P♣n 1q: Demostrar que $n 1qpueden pagarse con monedas de $2y $5.

Por la hip´otesis de inducci´on tenemos que $n ✏k☎2 m☎5. Es decir, $nse pagan conkmonedas de $2ymmonedas de $5. Tenemos dos casos:

• m✏0. Es decir, $nse pagaron solamente con monedas de $2. En este caso,

n 1✏k☎2 1✏ ♣k✁2q ☎2 2☎2 1✏ ♣k✁2q ☎2 5.

de donde si $n se pagaron con k monedas de $2, tenemos que $n 1q se pagan conk✁2monedas de $2y una moneda de $5. Obs´ervese que estamos separando dos monedas de $2para completar $5; esto puede hacerse debido a quek ➙2ya quen ➙4.

• m→0. Es decir, $nse pagaron con al menos una moneda de $5.

n 1✏k☎2 m☎5 1✏k☎2 ♣m✁1q ☎5 5 1✏ ♣k 3q ☎2 ♣m✁1q ☎5 de donde $♣n 1qse pagan conk 3monedas de $2ym✁1monedas de $5. Obs´ervese que separamos una moneda de $5para obtener $6que se pagan con tres monedas de $2; esto puede hacerse puesm➙1.

De los ejemplos anteriores podemos obtener un esquema general para una prueba por inducci´on:

1. Enunciar el uso del principio de inducci´on. De esta manera el lector comprender´a de qu´e tipo de prueba se trata.

2. Definir un predicado apropiadoP♣nq, de manera que la meta a probar sea❅nP♣nq. Con frecuencia este predicado puede extraerse de la afirmaci´on matem´atica o en espa˜nol que se desea probar.

3. Mostrar que la base de la inducci´onP♣0q(oPn0q) es cierta. 4. Enunciar la hip´otesis de inducci´onP♣nq.

5. Probar la implicaci´onP♣nq ÑP♣n 1q; esto se conoce como paso inductivo. 6. Invocar el principio de inducci´on y concluir que❅nP♣nq.

(10)

Borrador

5.3.2.

Inducci ´on completa

Si pensamos en una prueba por inducci´on de acuerdo al principio original (P-5) y a la derivaci´on l´ogica dada en la p´agina 217 para justificar el m´etodo, al probarP♣mqpara un n´umero cualquieramtuvimos que probar antesP♣0q, P♣1q, . . . , Pm✁1q, es decir, la propiedadP tuvo que verificarse para todos los n´umeros anteriores am. Esta informaci´on podr´ıa ser ´util y necesaria para probarP♣m 1q, ya que en algunos casos no basta con la informaci´on inmediata anteriorP♣mq. Esta observaci´on da lugar alprincipio de inducci´on fuerteocompletaque enunciamos aqu´ı como regla de inferencia.

❅n

❅m m➔nÑP♣mq✟ÑP♣nq

✠ ❅n P♣nq✟

Obs´ervese que en este caso no hay una base expl´ıcita de la inducci´on. Si instanciamos

n ✏ 0 entonces la premisa de la regla resulta equivalente a P♣0q, puesto que la f´ormu-la ❅m♣m ➔ 0 Ñ Pmqq es cierta al tratarse de una implicaci´on con antecedente falso (m➔0) con mPN. Al probar el paso inductivo para n ✏ 0no hay hip´otesis disponible para usarse, por lo queP♣0qdebe ser probado como en casos anteriores. Sin embargo, esto no es necesario en la mayor´ıa de los casos.

Este principio permite partir la prueba del paso inductivo en dos o m´as casos m´as peque˜nos, cualesquiera que ´estos sean.

Ejemplo 5.8. Sea del cero del operador binario✆, es decir❅x♣x✆d ✏d✆x ✏ dq. Mostrar que cualquier expresi´onede la formae✏e1✆e2✆. . .✆ekque contenga una o m´as presencias deddebe ser igual ad.

SeaP♣nqla proposici´on de que cualquier expresi´on connpresencias de✆y al menos una presencia dedes igual ad.

Base: Veamos cuales son las posibles expresiones de la forma requerida con una presencia de✆y al menos una presencia ded:

♣aq x✆d ♣bq d✆x.

Por la definici´on del operador✆tenemos

❅x♣x✆d✏d✆x✏dq.

por lo queP♣1qse cumple.

(11)

Borrador

Paso inductivo: Seaxuna expresi´on de la forma requerida con n → 0operadoresque contiene al menos una presencia ded; entoncesx ✏ x1 ✆x2 donde x1, x2 son

ex-presiones con menos den operadores ✆ y alguna dex1, x2 contiene una presencia

ded, digamos que esx1. En tal caso, por la hip´otesis de inducci´on se tienex1 ✏d,

de donde tenemos x ✏ x1 ✆x2 ✏ d✆x2 ✏ d, lo cual completa el paso inductivo.

Obs´ervese que la prueba es totalmente an´aloga si esx2 quien contiene una presencia

ded.

Ejemplo 5.9. Demostrar que cualquiern ➙2es primo o es producto de primos.

SeaP♣nqla proposici´on:nes primo o producto de primos. Queremos probar que

❅n♣n ➙2ÑPnqq.

Base: P♣2q: Paran ✏2tenemos que2es primo, por lo que se cumpleP♣2q.

Hip ´otesis de inducci ´on: Supongamos P♣mq para m ➔ n. Es decir, cualquier n´umero

m➔nes primo o producto de primos.

Paso inductivo: Si n es primo hemos terminado. Si no lo es,n se puede escribir como

n ✏m☎q con 1➔m, qn y por la hip´otesis de inducci´on, ambos,myq, son pri-mos o producto de pripri-mos, de donden✏m☎qtambi´en lo es.

Obs´ervese que en este ejemplo se combinan la inducci´on completa y el cambio de base al iniciar enn ✏2.

Ejercicios

5.3.1.- Demuestra, usando las definiciones de suma y producto dadas al inicio de esta sec-ci´on, ques♣0qes la identidad para la multiplicaci´on; esto es

❅m m✂s♣0q ✏ m

5.3.2.- Demuestra las siguientes propiedades de la suma y el producto:

• Asociatividad de la suma:❅m❅n❅k m ♣n kq ✏ ♣m nq k✟. • Asociatividad del producto:❅m❅n❅k m✂ ♣n✂kq ✏ ♣m✂nq ✂k✟. • Neutro izquierdo del producto:❅n 0✂n✏0✟.

(12)

Borrador

5.3.3.- Demuestra, usando las definiciones de suma y producto dadas al inicio de esta

sec-ci´on, que

❅m❅n s♣mq ✂s♣nq ✏ m✂n s♣mq n✟

5.3.4.- Demuestra que para todan,

n

k✏1

k ✏ n♣n 1q

2 .

5.3.5.- Demuestra que para todan,

n

k✏1

k3 ✏

n♣n 1q 2

✡2

.

5.3.6.- Demuestra que para todan, 5 8 11 ☎ ☎ ☎ ♣3n 2q ✏ 1 2 3n

2 7

n✟.

5.3.7.- Usa inducci´on as´ı como las leyes de conmutatividad y asociatividad para demostrar que

a1 ♣a2 ♣a3 . . . ♣an✁1 anq. . .qq ✏an ♣an✁1 ♣. . . ♣a2 a1q. . .qq

5.3.8.- Sea n → 3un n´umero natural. Sea m el entero mayor que es menor o igual que

♣n 2q④2 es decir,m✏ t♣n 2q④2✉✟. Veamos una peque˜na tabla con los valores de

nym:

n ♣n 2q④2 m

2 2 2

5 3.5 3

6 4 4

7 4.5 4

Entonces, dados m´as dementeros en el conjuntot1,2, . . . , n, tres de los enteros en este conjunto tienen la propiedad de que alguno de los tres es la suma de los otros dos.

5.3.9.- Demuestra que para todan➙0,

n

k✏0

9☎10k✏10n 1✁1.

5.3.10.- Usa inducci´on matem´atica para demostrar que para todo enteron,n ➔2n.

(13)

Borrador

divisible entre otro enteroq, denotadop⑤q, quiere decir que al dividir pentre q, el residuo es0, o dicho de otra manera:

Dadosp, q PZ , pqÑ ❉m PZ tal quepqm Veamos algunos ejemplos de la proposici´on:

n Entero connd´ıgitos p✏q☎m P♣1q 5 5✏511q

P♣2q 75 75✏523q ✏253

P♣3q 375 375 ✏53♣3q ✏1253

P♣4q 9375 5415q ✏62515

5.3.12.- Demuestra que para todo enteron➙0yz ✘1,

n

k✏0

zk ✏ z

n 11

z✁1 5.3.13.- Demostrar que para todo enteron→6,3n n!.

5.3.14.- Para todo naturaln, n

k✏1

k♣k!q ✏ ♣n 1q!✁1

5.3.15.- Los aut´omatas finitos son un modelo muy ´util para dispositivos en software o hard-ware. Un aut´omata finito es un dispositivo que se puede encontrar, en un momento dado, en un n´umero finito deestados. El objetivo de los estados esrecordaruna por-ci´on relevante de la historia del sistema. Como s´olo hay un n´umero finito de estados, la historia completa no puede ser registrada, por lo que se deber´a dise˜nar con cuidado para recordar los aspectos relevantes.

En cada estado, el aut´omata recibe posibles se˜nales, que lo pueden hacer cambiar de estado. El aut´omata inicia siempre en un estado designado comoinicial, y dependi-endo del estado en el que est´a, puede emitir una se˜nal.

(14)

Borrador

el resultado de oprimir el apagador, que corresponde a unatransici´on, se representa con una flecha que va de un estado al otro. El estado inicial es al que llega la flecha identificada coninicio.

Figura 5.1. Aut ´omata correspondiente a un apagador

A P

oprimir

oprimir inicio

Debemos demostrar que los siguientes enunciados para describir el comportamiento del aut´omata se cumplen:

S1♣nq: El aut´omata est´a en el estadoA(deapagado) despu´es de haber oprimido

el bot´onnveces, si y s´olo sines par.

S2♣nq: El aut´omata est´a en el estadoP(deprendido) si y s´olo sines impar.

Se tiene que hacer una demostraci´on doble de inducci´on, ya que hay que hacer in-ducci´on sobre los dos casos posibles de la definici´on.

5.3.16.- Unpoliomin´o es una pieza formada por cuadrados iguales unidos entre s´ı por al menos una l´ınea (se excluyen los que est´en unidos s´olo por un v´ertice). Los po-liomin´os se clasifican seg´un el n´umero de cuadrados que los forman; as´ı, tenemos los monomin´os son aqu´ellos formados por un cuadrado, los domin´os por dos cuadra-dos, trimin´os por tres, tetramin´os por cuatro, pentamin´os con cinco, los hexamin´os con seis, los heptamin´os con siete, . . . . En ciencias de la computaci´on a este tipo de uniones donde se requiere que cuadrados adyacentes compartan un lado se conoce tambi´en como 4-conectividad.

(15)

Borrador

Tabla 5.1. Poliomin ´os libres de orden1a5

Nombre N ´umero Figuras

monomin´o 1

(16)

Borrador

Tabla 5.1. Poliomin ´os libres de orden1a5 (Contin ´ua. . . )

Nombre N ´umero Figuras

domin´os 1

trimin´os 2

tetramin´os 5

pentamin´os 12

(17)

Borrador

5.4. Definiciones recursivas

Una definici´on recursiva es aquella en la cual el concepto definido figura en la definici´on misma. Esto puede parecer problem´atico y de hecho introduce problemas matem´aticos profundos si dicho uso o autoreferencia se utiliza sin cuidado. Sin embargo, usado bajo ciertas restricciones, este m´etodo de definici´on, al que llamaremos en adelante recursi´on, proporciona una herramienta sumamente ´util tanto en matem´aticas como en ciencias de la computaci´on. En particular, la gran mayor´ıa de los tipos de datos usuales en programaci´on como listas o ´arboles, as´ı como diversas funciones sobre los mismos, pueden definirse recursivamente.

Para que una definici´on recursiva sea v´alida, en el sentido de que genere tipos de datos o funciones que no causen ciclos infinitos de evaluaci´on, debe constar de dos partes:

• Un conjunto de casos base, los cuales son casos simples donde la definici´on se da directamente, es decir, sin usar autoreferencia.

• Un conjunto de reglas recursivas donde se define un nuevo elemento de la definici´on en t´erminos de anteriores ya definidos.

Adem´as de estas dos partes, la definici´on debe constar de una cl´ausula que asegure que las dos anteriores son las ´unicas formas de obtener el concepto, objeto o funci´on definida. Esta cl´ausula puede omitirse en el entendido de que siempre est´a presente.

La definici´on en los casos base nos da un punto de partida al proporcionar una definici´on directa, mientras que las reglas recursivas nos permiten construir nuevos casos a partir de los b´asicos de una manera iterativa.

Es muy importante observar que las ´unicas definiciones recursivas que consideramos v´alidas son aquellas donde las reglas recursivas se definen en t´erminos de elementos ante-riores. Por ejemplo, la siguiente definici´on de una funci´on

f♣0q ✏ 1

f♣n 1q ✏ fn 2q

no es v´alida, puesto que la definici´on enn 1est´a dada en t´erminos de un elemento posterior a n 1, a saber n 2. En particular, f resulta indefinida en cualquier valor distinto de cero. Definiciones como la anterior se llaman recursivas generales y por lo general causan ciclos infinitos en programaci´on.

Ya hemos visto definiciones recursivas del conjunto de n´umeros naturales, as´ı como de algunas funciones sobre este mismo tipo de datos como la suma o el producto. Veamos algunos ejemplos m´as

(18)

Borrador

I. Siyes hijo dexentoncesyes descendiente dex.

II. Siyes descendiente dexyzes hijo deyentoncesz es descendiente dex.

III. Nadie m´as es descendiente dex.

Ejemplo 5.11. Dados dos n´umeros naturales n y m, la relaci´on n es menor que m, denotada

n➔m, se define como sigue:

I. 0➔skq.

II. s♣nq ➔ s♣kq, sin➔k

III. Ning´un otro par de n´umeros est´a en la relaci´on➔.

Obs´ervese que en el ejemplo anterior la recursi´on se hace sobre el n´umerondejando a

mfijo y declar´andolo expl´ıcitamente como un n´umero sucesors♣kq, puesto que la relaci´on

n➔0no sucede nunca.

Ejemplo 5.12. El conjunto de f´ormulas bien construidas de la l´ogica proposicional se define como sigue:

I. Una variable proposicional es una f´ormula bien construida. II. Las constantes l´ogicastrueyfalseson f´ormulas bien construidas.

III. Si A y B son f´ormulas bien construidas, entonces ♣✥ Aq, ♣A ❴Bq, ♣A ❫Bq y

♣AÑBqson f´ormulas bien construidas.

IV. Ninguna expresi´on que no sea construida con estas reglas es una f´ormula bien

con-struida.

Ejemplo 5.13. El conjunto de expresiones aritm´eticas se define como sigue:

I. Todos los enteros y todos los nombres de variables son expresiones aritm´eticas.

II. SiAyB son expresiones aritm´eticas entonces♣✁Aq,♣A Bq,♣A✁Bq,♣A✂Bqy

♣A④Bqson expresiones aritm´eticas.

III. S´olo ´estas son expresiones aritm´eticas.

Ejemplo 5.14. El tipo de datos de listas finitasra1, . . . , anscon elementosai en un conjuntoAse define de la siguiente forma:

I. La lista vac´ıa es una lista y se denota conr sonil.

II. SiaP Ayℓes una lista entoncescons♣a, ℓqes una lista. Aase le llama la cabeza y aℓla cola de la lista.

III. S´olo ´estas son listas.

Frecuentemente se usa la notaci´on ♣a : q para consa, ℓq. Por ejemplo, si consideramos al conjunto A ✏ t1,3,6,10,15,21,28✉, la listar10,6,1,6s que contiene a los elementos 10,6,1,6en ese orden, se representa de la siguiente manera:

(19)

Borrador

Es conveniente notar que en las listas se admiten repeticiones e importa el orden, a difer-encia de lo que sucede con los conjuntos. Por lo tanto, una lista formada con elementos de un conjunto finito puede ser infinita.

Tenemos varias opciones para representar a una lista con un ´unico elemento.cons♣a,r sq

corresponde a una lista con un primer elementoay donde la cola de la lista es la lista vac´ıa. Tambi´en podemos denotar a una lista con un solo elemento, de manera abreviada, comoras, lo que haremos m´as adelante.

Ejemplo 5.15.El tipo de datos de ´arboles binarios con todos los nodos etiquetados por elementos de un conjuntoAse define como sigue:

I. Un ´arbol vac´ıo es un ´arbol binario y se denota porvoid.

II. SiT1 yT2 son ´arboles binarios y aes un elemento deA, entoncestree♣T1, c, T2qes

un ´arbol binario, dondeT1 es elsub´arbol izquierdoyT2 es elsub´arbol derecho. Al

nodo etiquetado concse le llama lara´ızdel ´arbol.

III. Nada m´as es un ´arbol binario.

Por ejemplo, la expresi´ontree♣T1, c, T2qcorresponde a la siguiente figura

c

T1 T2

¿A qu´e expresi´on corresponde cada uno de los siguientes ´arboles?

c

d f

e

a

b

d e

c

f

(20)

Borrador

5.4.1.

Definici ´on de funciones recursivas

La definici´on recursiva de tipos de datos permite definir funciones sobre los mismos utilizando la t´ecnica decasamiento o apareamiento de patrones3: cada cl´ausula de la defini-ci´on del tipo de datos introduce un patr´on, el cual es un esquema sint´actico bien definido que se utiliza para definir un caso de la funci´on en cuesti´on. Listamos a continuaci´on los patrones b´asicos de cada tipo de datos definido previamente:

• N´umeros naturales:0, snq.

• Expresiones l´ogicas:p,true,false,A, AB, AB, AÑB

• Expresiones aritm´eticas:n, x,♣✁Aq,♣A Bq,♣A✁Bq,♣A✂Bqy♣A④Bq

• Listas:r s,♣a:q

• ´Arboles binarios:void,treeT1, c, T2q

De esta manera, para definir, por ejemplo, una funci´onfsobre las listas, es suficiente definir los casos paraf♣r sqy paraf♣♣a:qq.

Veamos a continuaci´on algunos ejemplos de funciones definidas sobre los tipos de datos reci´en presentados y cuyas implementaciones se dan mediante apareamiento de pa-trones. En cada caso se da primero una especificaci´on que proporciona una definici´on di-recta, seguida de una implementaci´on mediante una funci´on recursivaf definida mediante patrones. En algunos ejemplos nos puede resultar claro que la definici´on recursiva de f

cumple con la especificaci´on dada en cada caso. Sin embargo, debemos mostrar esto for-malmente para cada ejemplo, proceso que discutiremos en la siguiente secci´on.

Ejemplo 5.16. Exponenciaci´on de n´umeros naturales.

Especificaci ´on: pot♣n, mq ✏nm

Implementaci ´on recursiva:

• f♣n,0q ✏1

• f♣n, s♣mqq ✏f♣n, mq ☎n

Ejemplo 5.17.Factorial de un n´umero natural.

Especificaci ´on: f ac♣nq ✏n☎ ♣n✁1q ☎. . .☎2☎1, donde adem´asf ac♣0q ✏ 1.

Implementaci ´on recursiva:

• f♣0q ✏1

• f♣s♣nqq ✏s♣nq ☎f♣nq

(21)

Borrador

Ejemplo 5.18.

Especificaci ´on: suma de los elementos de una lista de n´umeros.

suml♣ ra1, . . . , ans q ✏ a1 a2 . . . an

Implementaci ´on recursiva:

• f♣r sq ✏0

• f♣♣a:qq ✏a fq

Ejemplo 5.19.

Especificaci ´on: producto de los elementos de una lista de n´umeros.

prodl♣ ra1, . . . , ans q ✏ a1☎a2☎. . .☎an

Implementaci ´on recursiva:

• f♣r sq ✏1

• f♣♣a:qq ✏afq

Ejemplo 5.20.

Especificaci ´on: longitud de una lista.

long♣ra1, . . . , ansq ✏n

Implementaci ´on recursiva:

• f♣r sq ✏0

• f♣♣a:qq ✏1 fq

Ejemplo 5.21.

Especificaci ´on: el operador binario❭devuelve la concatenaci´on de dos listas.

ra1, . . . , aks ❭ rb1, . . . , bjs ✏ ra1, . . . , ak, b1, . . . , bjs

Implementaci ´on recursiva:

• f♣r s, ℓ2q ✏ ℓ2

• f♣♣a:1q, ℓ2q ✏ a:f1, ℓ2q✟

Ejemplo 5.22.

Especificaci ´on: reversa de una lista.

(22)

Borrador

Implementaci ´on recursiva:

• f♣r sq ✏ r s

• f♣♣a:qq ✏fq ❭ ras

En algunos casos, la especificaci´on de una funci´on no puede darse de forma directa mediante una ecuaci´on como en los casos anteriores, sino que tiene que darse con palabras como en los siguientes ejemplos.

Ejemplo 5.23.

Especificaci ´on: nces la funci´on que calcula el n´umero de conectivos en una f´ormula de la l´ogica proposicional. Por ejemplonc♣pÑ ✥q❴rq ✏3.

Implementaci ´on recursiva:

• f♣pq ✏0

• f♣trueq ✏f♣falseq ✏ 0 • f♣✥Aq ✏1 fAq

• f♣A❫Bq ✏1 fAq fBq • f♣A❴Bq ✏1 fAq fBq • f♣AÑBq ✏1 fAq fBq

Ejemplo 5.24.

Especificaci ´on: ccd es la funci´on que recibe una f´ormula proposicional A y devuelve la f´ormula obtenida a partir deAal intercambiar los conectivos❫y❴enA. Por ejemplo

ccd♣✥p❴qÑr❫sq ✏ ✥p❫qÑr❴s.

Implementaci ´on recursiva:

• f♣pq ✏p

• f♣trueq ✏true • f♣falseq ✏ false • f♣✥Aq ✏ ✥f♣Aq

• f♣A❫Bq ✏f♣Aq ❴f♣Bq

• f♣A❴Bq ✏f♣Aq ❫f♣Bq

• f♣AÑBq ✏f♣Aq Ñf♣Bq

Ejemplo 5.25.

Especificaci ´on: ates la funci´on que calcula el n´umero de presencias de f´ormulas at´omicas que figuran en una f´ormula. Por ejemplo,at♣q❫ ✥p Ñr❴pq ✏ 4,atq❫ ♣true❴

(23)

Borrador

Implementaci ´on recursiva:

• f♣pq ✏1

• f♣trueq ✏f♣falseq ✏ 1 • f♣✥Aq ✏f♣Aq

• f♣A❫Bq ✏f♣Aq f♣Bq

• f♣A❴Bq ✏f♣Aq f♣Bq

• f♣AÑBq ✏f♣Aq f♣Bq

El ejemplo que sigue involucra a dos tipos de datos, el de las f´ormulas proposicionales y el de listas de f´ormulas.

Ejemplo 5.26.

Especificaci ´on: sfes la funci´on que devuelve la lista de subf´ormulas de una f´ormula proposi-cionalA. Por ejemplo,

sf♣✥♣pÑqq ❫rq ✏ r✥♣pÑqq ❫r,✥♣pÑqq, pÑq, p, q, rs. sf♣p❴ ✥♣pÑsqq ✏ rp❴ ✥♣pÑsq, p,✥♣pÑsq, pÑs, p, ss

Implementaci ´on recursiva:

• f♣pq ✏ rps

• f♣trueq ✏ rtrues • f♣falseq ✏ rfalses • f♣✥Aq ✏ ♣✥A:fAqq

• f♣A❫Bq ✏ ♣A❫Bq:♣fAq ❭fBq✟ • f♣A❴Bq ✏ ♣A❴Bq:♣fAq ❭fBq✟ • f♣AÑBq ✏ ♣AÑBq:♣fAq ❭fBq✟

Ejemplo 5.27.

Especificaci ´on: nnes la funci´on que recibe un ´arbol binarioty calcula el n´umero de nodos que hay ent.

Implementaci ´on recursiva:

• f♣voidq ✏0

• f♣tree♣T1, c, T2qq ✏1 f♣T1q f♣T2q

Ejemplo 5.28.

(24)

Borrador

Implementaci ´on recursiva:

• f♣voidq ✏0

• f♣tree♣T1, c, T2qq ✏1 m´axtf♣T1q, f♣T2q✉

Como ya mencionamos, en cada caso debemos cerciorarnos formalmente que la defini-ci´on recursiva dada por f realmente cumple con la especificaci´on dada. Para el caso de funciones que involucren a los n´umeros naturales esto puede lograrse mediante el principio de inducci´on matem´atica. Como ejemplo, veamos que la definici´on recursiva del factorial en verdad cumple la especificaci´on.

Ejemplo 5.29. La definici´on recursiva de f en el ejemplo 5.17 calcula a la funci´on factorial. Es decir, para todo n´umero naturaln, se cumplef♣nq ✏ f ac♣nq.

Base: n✏0. Tenemosf♣0q ✏1✏f ac♣0q.

Hip ´otesis de inducci ´on: f♣nq ✏f ac♣nq.

Paso inductivo: queremos demostrar quef♣s♣nqq ✏f ac♣s♣nqq.

f♣s♣nqq ✏s♣nq ☎f♣nq (definici´on def)

✏s♣nq ☎f ac♣nq (hip´otesis de inducci´on)

✏ ♣n 1q ☎n☎ ♣n✁1q ☎. . .☎2☎1 (definici´on def acnq)

✏f ac♣s♣nqq (definici´on def ac♣s♣nqq) En conclusi´onf♣nq ✏ f ac♣nqpara todo n´umero naturaln.

Ahora bien, para el caso de funciones definidas sobre otro tipo de datos, ¿c´omo pode-mos probar que la especificaci´on se satisface con la implementaci´on recursiva?

De las definiciones y pruebas por inducci´on de las operaciones de suma y producto, as´ı como de la prueba del ejemplo anterior, se observa una fuerte relaci´on entre el prin-cipio de inducci´on matem´atica y las definiciones recursivas que involucran n´umeros natu-rales. Cada propiedad de la definici´on recursiva, como cumplir con una especificaci´on da-da, puede mostrarse mediante el principio de inducci´on. Esta relaci´on puede generalizarse a distintas estructuras o tipos de datos definidos recursivamente, lo que haremos a contin-uaci´on.

5.5. Inducci ´on estructural

(25)

Borrador

las medidas que podemos mencionar est´an la longitud de una lista, la profundidad de un ´arbol o el n´umero de conectivos en una f´ormula proposicional. Esto es posible debido a que las reglas recursivas de la definici´on en cuesti´on se dan en t´erminos de elementos estructuralmente m´as simples, por lo que su medida ser´a menor y la hip´otesis de inducci´on podr´a emplearse. Sin embargo, en la mayor´ıa de los casos, el uso de una medida complica las pruebas, adem´as de que la elecci´on de una medida incorrecta podr´ıa resultar en una prueba fallida. Otra posibilidad es generalizar el principio de inducci´on completa mediante la definici´on de un orden en los tipos de datos, el cual debe ser bien fundado, es decir, no debe contener sucesiones descendentes infinitas. Sin embargo, el problema de decidir si una estructura particular es bien fundada no siempre es f´acil de resolver.

En lugar de las alternativas anteriores es posible utilizar los llamados principios de inducci´on estructural, basados en las reglas base y recursivas de la definici´on de un tipo de datos, as´ı como en el an´alisis de los patrones b´asicos introducidos por ´estas.

El esquema general del principio de inducci´on estructural es el siguiente: Sean A un conjunto o tipo de datos definido recursivamente yP una propiedad acerca de los elementos deA. Para probar queP♣xqes v´alida para todo elemento deAdeben seguirse los siguientes pasos:

• Base de la inducci ´on: Si a es un elemento de A generado por una regla b´asica, entonces debemos probar directamente la validez deP♣aq.

• Si x es un elemento de A construido mediante alguna regla recursiva a partir de elementos anteriores4x

1, . . . , xn, entonces procedemos como sigue:

Hip ´otesis de inducci ´on: SuponerP♣x1q, . . . , P♣xnq.

Paso inductivo: ProbarP♣xq.

• En este caso, el principio de inducci´on estructural permite concluir que❅xP♣xq. La validez de este principio se sigue de un principio m´as general de la teor´ıa de los conjuntos llamado de B-F-inducci´on cuya discusi´on cae fuera de los objetivos de este libro.

En nuestro caso el principio de inducci´on estructural debe adaptarse a cada conjunto o tipo de datos particular. En las siguientes secciones lo ejemplificamos para los casos de listas, ´arboles y f´ormulas proposicionales.

5.5.1.

Inducci ´on en listas

El tipo de datos lista es uno de los m´as comunes en ciencias de la computaci´on. Este tipo de datos se defini´o recursivamente en el ejemplo 5.14, y genera el siguiente principio de inducci´on estructural:

(26)

Borrador

SeaP una propiedad acerca de listas; si se desea probarP♣xsqpara toda listaxs, basta proceder como sigue:

Base de la inducci ´on: ProbarP♣r sqdirectamente.

Hip ´otesis de inducci ´on: SuponerP♣xsq.

Paso inductivo: ProbarP♣♣a:xsqqpara cualquiera.

Si este es el caso, el principio de inducci´on para listas permite concluir P♣xsq

para cualquier listaxs.

Para ilustrar el uso de la inducci´on en listas probamos enseguida algunas propiedades de las operaciones en listas.

Proposici´on 5.1 La funci´on recursiva f dada en el ejemplo 5.21 calcula la concatenaci´on de dos listas. Es decir, para cualesquiera listasxs, ys,f♣xs, ysq ✏ xs❭ys.

Demostraci ´on. Inducci´on sobrexs.

Base de la inducci ´on: xs✏ r s. Tenemosf♣r s, ysq ✏ys ✏ r s ❭ys.

Hip ´otesis de inducci ´on: f♣xs, ysq ✏ xs❭ys.

Paso inductivo: Debemos mostrar que para cualquiera,

f♣♣a:xsq, ysq ✏ ♣a:xsq ❭ys

f♣♣a:xsq, ysq ✏ a:fxs, ysq✟ (definici´on recursiva def)

✏ a:♣xsysq✟ (hip´otesis de inducci´on)

✏ ♣a:xsq ❭ys (especificaci´on de) En conclusi´onf♣xs, ysq ✏ xs❭yspara cualesquiera listasxs, ys.

De manera similar podemos probar la correctud de todas las definiciones recursivas de listas dadas en los ejemplos de la secci´on 5.4.1.

Como ya probamos que la implementaci´on de la concatenaci´on❭es correcta, podemos usarla de ahora en adelante, como en el caso de la siguiente proposici´on.

Proposici´on 5.2 La operaci´on de concatenaci´on❭en listas cumple las siguientes propiedades: • Asociatividad:xs❭ ♣ys❭zsq ✏ ♣xs❭ysq ❭zs

• Longitud:long♣xs❭ysq ✏long♣xsq long♣ysq

Demostraci ´on. Probamos la asociatividad mediante inducci´on sobre la listaxs.

(27)

Borrador

Base de la inducci ´on: xs✏ r s, debemos mostrar que

r s ❭ ♣ys❭zsq ✏ ♣r s ❭ysq ❭zs.

r s ❭ ♣ys❭zsq ✏ys❭zs (definici´on recursiva de❭)

✏ ♣r s ❭ysq ❭zs (definici´on recursiva de❭, ys ✏ r s ❭ys) Hip´otesis de inducci´on:xs❭ ♣ys❭zsq ✏ ♣xs❭ysq ❭zs.

Paso inductivo: Seaaun elemento deA; debemos mostrar que

♣a :xsq ❭ yszs✟✏ ♣a:xsq ❭ys✟❭zs.

♣a:xsq ❭ yszs✟✏a: xs❭ ♣yszsq✟ (definici´on recursiva de)

✏a: ♣xsysq ❭zs(hip´otesis de inducci´on)

✏ a:♣xsysq✟❭zs (definici´on recursiva de)

✏ ♣a:xsq ❭ys✟❭zs (definici´on recursiva de) As´ı que por el principio de inducci´on para listas, concluimos que la operaci´on❭es asociativa.

La propiedad de longitud se demuestra similarmente.

Proposici´on 5.3 La operaci´on reversareven listas cumple las siguientes propiedades: • Longitud:long♣rev♣xsqq ✏ long♣xsq

• Concatenaci´on:rev♣xs❭ysq ✏rev♣ysq ❭rev♣xsq

• Idempotencia:rev♣rev♣xsqq ✏xs

Demostraci ´on. Mostramos la propiedad de idempotencia mediante inducci´on sobre la listaxs, dejando las restantes como ejercicio.

Base de la inducci ´on: xs✏ r s. Comorev♣r sq ✏ r sentonces

rev♣rev♣r sqq ✏rev♣r sq ✏ r s.

Hip ´otesis de inducci ´on: rev♣rev♣xsqq ✏ xs

Paso inductivo: Seaaun elemento deA; mostraremos que

rev♣rev♣♣a :xsqqq ✏ ♣a:xsq.

rev♣rev♣♣a:xsqqq ✏rev revxsq ❭ ras✟ (definici´on recursiva derev)

✏rev♣rasq ❭rev♣rev♣xsq (propiedad de concatenaci´on derev)

✏rev♣rasq ❭xs (hip´otesis de inducci´on)

✏ ras ❭xs (rev♣rasq ✏ ras)

✏ ♣a:r sq ❭xs (ras ✏ ♣a :r sq)

✏a:♣r s ❭xsq (definici´on recursiva de)

(28)

Borrador

Conclusi ´on: As´ı que por el principio de inducci´on para listas se cumple

rev♣rev♣xsqq ✏ xspara toda listaxs.

Pasamos ahora a ilustrar la inducci´on estructural en f´ormulas proposicionales.

5.5.2.

Inducci ´on en f ´ormulas

El conjunto de f´ormulas de la l´ogica proposicional se defini´o ya mediante una gram´atica, as´ı como mediante la definici´on recursiva del ejemplo 5.12. Esta ´ultima forma de definirlo habilita un principio de inducci´on estructural de gran utilidad en l´ogica matem´atica.

El principio de inducci´on estructural para f´ormulas es el siguiente:

SeaP una propiedad acerca de f´ormulas proposicionales. Si se desea probarP♣Aq

para toda f´ormulaA, basta proceder como sigue:

Base de la inducci ´on: probar P♣qq directamente para cada variable proposi-cionalq; probarP♣trueqy probarP♣falseq

Hip ´otesis de inducci ´on: suponerP♣AqyP♣Bq.

Paso inductivo: probarP♣✥Aq, P♣A❫Bq, P♣A❴BqyP♣AÑBq.

Conclusi ´on: En tal caso el principio de inducci´on para f´ormulas permite concluir

P♣Aqpara cualquier f´ormulaA.

En este caso, debido a nuestros conocimientos de equivalencias l´ogicas, el paso induc-tivo puede simplificarse a probarP♣✥Aqy alguno de los casos para un operador binario, el cual se elige dependiendo de la propiedadP particular.

Demostramos a continuaci´on algunas propiedades de las f´ormulas proposicionales.

Proposici´on 5.4 Seacompla siguiente funci´on recursiva:

comp♣pq ✏ ✥p (i)

comp♣trueq ✏false (ii)

comp♣falseq ✏true (iii)

comp♣✥Aq ✏ ✥comp♣Aq (iv)

comp♣A❴Bq ✏comp♣Aq ❫comp♣Bq (v)

comp♣A❫Bq ✏comp♣Aq ❴comp♣Bq (vi) Entonces, para toda f´ormulaC, se cumplecomp♣Cq ✑ ✥C.

(29)

Borrador

Base: Ces at´omica. SiC✏pentonces hay que mostrarcomp♣pq ✑ ✥p.

comp♣pq ✏ ✥p (por (i))

✑ ✥p (reflexividad de✑)

Los casos paraC ✏trueyC ✏falseson similares.

Hip ´otesis de inducci ´on Supongamos quecomp♣Aq ✑ ✥Aycomp♣Bq ✑ ✥B.

Paso inductivo: Dado nuestro conocimiento de las equivalencias l´ogicas, basta mostrar la propiedad para✥AyA❫B.

comp♣✥Aq ✏ ✥comp♣Aq (por (iv))

✑ ✥✥A (hip´otesis de inducci´on y equivalencia l´ogica)

comp♣A❫Bq ✏ comp♣Aq ❴comp♣Bq (por (vi))

✑ ✥A❴ ✥B (hip´otesis de inducci´on y equivalencia l´ogica)

✑ ✥♣A❫Bq (De Morgan)

Conclusi ´on: Por el principio de inducci´on para f´ormulas, podemos concluir que

comp♣Cq ✑ ✥C, para cualquier f´ormulaC.

Por ´ultimo demostramos una propiedad que relaciona a las funciones definidas en los ejemplos 5.20, 5.23 y 5.25.

Proposici´on 5.5 SiAes una f´ormula proposicional, entonces la longitud de la lista de subf´ormu-las deAes igual a la suma del n´umero de presencias de variables proposicionales deAcon el n´umero de conectivos que figuran enA. Es decir,

long♣sf♣Aqq ✏at♣Aq nc♣Aq

Demostraci ´on. Inducci´on sobre la f´ormulaA.

Base de la inducci ´on: SeaA✏p. Tenemos enAuna presencia de la f´ormula at´omicap

y ning´un conectivo. Por lo tanto,

long♣sf♣pqq ✏long♣rpsq ✏1✏1 0✏atpq ncpq ParaA✏trueoA✏false, la prueba es similar.

Hip ´otesis de inducci ´on: Supongamos que

long♣sf♣Aqq ✏at♣Aq nc♣Aq long♣sf♣Bqq ✏ at♣Bq nc♣Bq.

Paso inductivo: Probamos la propiedad para✥AyAÑB.

long♣sf♣✥Aqq ✏long ♣✥A:sfAqq✟ (definici´on desf)

✏1 longsfAqq (definici´on recursiva delong)

✏1 ♣atAq ncAqq (hip´otesis de inducci´on)

✏at♣Aq ♣1 ncAqq (aritm´etica)

✏at♣✥Aq ♣1 ncAqq (definici´on recursiva deat)

(30)

Borrador

long♣sf♣AÑBqq ✏long ♣♣AÑBq:sfAq ❭sfBqq✟ ♣definici´on desfq

✏1 longsfAq ❭sfBqq (definici´on recursiva delong)

✏1 longsfAqq longsfBqq (propiedad delongde)

✏1 ♣atAq ncAqq ♣atBq ncBqq (hip´otesis de inducci´on)

✏ ♣at♣Aq at♣Bqq ♣1 ncAq ncBqq (aritm´etica)

✏at♣AÑBq ♣1 ncAq ncBqq (definici´on recursiva deat)

✏at♣AÑBq nc♣AÑBq (definici´on recursiva denc)

Conclusi ´on: Por lo tanto, por el principio de inducci´on para f´ormulas, para cualquier f´ormulaAse cumple

long♣sf♣Aqq ✏at♣Aq nc♣Aq.

Para finalizar este cap´ıtulo discutimos el principio de inducci´on para ´arboles binarios.

5.5.3.

Inducci ´on en ´arboles

La definici´on recursiva del tipo de datos de ´arboles binarios dada en el ejemplo 5.15 genera la siguiente versi´on del principio de inducci´on estructural:

Sea P una propiedad acerca de ´arboles binarios. Si se desea probar P♣Tq para todo ´arbolT, basta proceder como sigue:

Base de la inducci ´on: ProbarP♣voidqdirectamente.

Hip ´otesis de inducci ´on: SuponerP♣T1qyP♣T2q.

Paso inductivo: ProbarP♣tree♣T1, c, T2qq.

Conclusi ´on: En tal caso el principio de inducci´on para ´arboles permite concluir

P♣Tqpara cualquier ´arbolT.

Veamos a continuaci´on un par de ejemplos de pruebas mediante este principio de in-ducci´on.

Proposici´on 5.6 Cualquier ´arbol binarioT connnodos contiene exactamenten 1sub´arboles vac´ıos.

Demostraci ´on. Inducci´on sobreT.

Base: T ✏ void. El n´umero de nodos de T es 0, y el n´umero de sub´arboles vac´ıos es

0 1✏1, puesT mismo es un sub´arbol binario vac´ıo.

Hip ´otesis de inducci ´on: Si los ´arboles binariosT1 yT2 tienenn1 yn2 nodos

(31)

Borrador

Paso inductivo: SeaT ✏ tree♣T1, c, T2qun ´arbol binario no vac´ıo. El n´umero de nodos

deT es1 n1 n2. Queremos demostrar queT tienen1 n2 2´arboles vac´ıos. Es claro que los sub´arboles vac´ıos deT son sub´arboles deT1 o deT2, por lo que se

tiene que el n´umero de sub´arboles vac´ıos deT es igual a la suma de los n´umeros de sub´arboles vac´ıos deT1 y deT2; pero por la hip´otesis de inducci´on dicha suma es

igual a♣n1 1q ♣n2 1q ✏n1 n2 2.

Conclusi ´on: Todos los ´arboles binarios connnodos tienenn 1sub´arboles vac´ıos.

Proposici´on 5.7 SiT es un ´arbol binario con alturan, entonces tiene a lo m´as2n1nodos. Es decir,nn♣Tq ↕2n1

Demostraci ´on. Inducci´on sobreT.

Base: T ✏void. En este caso la altura deT es0ynnTq ✏0puesT no tiene nodos; por otro lado,201110

, con lo que queda demostrada la base de la inducci´on.

Hip ´otesis de inducci ´on: Si el ´arbol Ti tiene altura ni entonces tiene a lo m´as 2ni ✁1

nodos, dondei✏1,2.

Paso inductivo: Sea T ✏ tree♣T1, c, T2q. Recordemos que la altura deT es igual a1

m´axtn1, n2, por lo que debemos demostrar que el m´aximo n´umero de nodos enT es21 m´axtn1n2✉✁1, es decir quennTq ↕21 m´axtn1n2✉✁1.

nn♣Tq ✏ nn♣T1q nn♣T2q 1 ♣definici´on recursiva dennq

↕2n1 ✁1 2n2 ✁1 1 (hip´otesis de inducci´on)

↕2m´axtn1,n2✉✁1 2m´axtn1,n2✉✁1 1 aritm´etica:2n1,2n2 ↕2m´axtn1,n2✉✟

✏2☎2m´axtn1,n2✉✁1 (aritm´etica)

✏21 m´axtn1,n2✉✁1 (leyes de exponentes)

Este resultado particular es muy utilizado en computaci´on.

Ejercicios

5.5.1.- Para cada ejemplo de la secci´on 5.4.1 demuestra mediante el principio de induc-ci´on estructural correspondiente que la funinduc-ci´on especificada cumple con la imple-mentaci´on recursiva.

5.5.2.- Considera las siguientes especificaciones de dos funcionesspar ysimp cuyo do-minio y cododo-minio son los n´umeros naturales.

(32)

Borrador

b) Muestra quef♣nq ✏n♣n 1q

c) Muestra queg♣nq ✏ ♣n 1q2

.

5.5.3.- Definimos al conjunto de cadenas de la formaambamde la siguiente manera:

I. b, la cadena representada pora0

ba0, est´a en el conjunto.

II. Siwes una cadena en este conjunto, entoncesawatambi´en est´a en el conjunto. III. ´Estas son las ´unicas formas de construir cadenas que cumplan con ser de la

formaambam.

Demuestra que todas las cadenas que pertenecen a este conjunto tienen un n´umero impar de caracteres, utilizando los siguientes m´etodos:

a) Inducci´on sobre la longitud de las cadenas.

b) Definiendo y utilizando un principio de inducci´on estructural adecuado.

5.5.4.- Considera la definici´on recursiva de las expresiones aritm´eticas dada en el ejem-plo 5.13. Enuncia el principio de inducci´on estructural correspondiente y util´ızalo para demostrar que toda expresi´on aritm´etica tiene el mismo n´umero de par´entesis izquierdos que derechos.

5.5.5.- Una cadena de caracteres es pal´ındroma si es de la forma wwR, donde wR es w escrita de atr´as hacia adelante. Algunos ejemplos son 0110 y aabaabaa. Define al conjunto de las cadenas pal´ındromas en forma recursiva y demuestra mediante in-ducci´on estructural que todas las cadenas pal´ındromas de este tipo tiene un n´umero par de s´ımbolos.

5.5.6.- Demuestra mediante inducci´on para listas lo siguiente:

a) La propiedad de longitud enunciada en la proposici´on 5.2

b) Las propiedades de concatenaci´on e idempotencia para la reversa, enunciadas en la proposici´on 5.3

5.5.7.- La funci´onsnocen listas se define como sigue: snoccrx1, . . . , xns ✏ rx1, . . . , xn, cs a) Da una definici´on recursiva parasnoc.

b) Demuestra, usando la definici´on recursiva, que: snoc c♣xs❭ysq ✏xs❭ ♣snoc c ysq

c) Demuestra la siguiente propiedad que relaciona asnoccon la operaci´on reversa rev:

rev♣snoc c xsq ✏ c:♣rev xsq. 5.5.8.- Considera la siguiente funci´on misteriosamist:

mistr sys ✏ ys

mist♣x:xsqysmist xsx :ysq a) ¿Qu´e hacemist?

(33)

Borrador

5.5.9.- Este ejercicio concierne a la operaci´on de sustituci´on textual para las f´ormulas de

la l´ogica proposicional.

a) Define recursivamente la operaci´on de sustituci´on textualArp:✏Bs. b) Demuestra las siguientes propiedades mediante inducci´on para f´ormulas:

• Sipno figura enA, entoncesArp:✏Bs ✏A. • Sip✘qypno figura enC, entonces

Arp:✏Bsrq:✏Cs ✏Arq:✏Cs✏p:✏Brq :✏Cs✘. • Sip✘qypno figura enB, entonces

Arq, p:✏B, Cs ✏Arq:✏Bsrp:✏Cs.

5.5.10.- SeaAuna f´ormula de la l´ogica proposicional cuyos ´unicos conectivos son❫,❴,✥. Construimos la f´ormula dual deA, denotadaAD, intercambiando❫con❴, y reem-plazando cada variablep por su negaci´on✥p. Por ejemplo, si A ✏ ♣r ❴pq ❫ ✥q, entoncesAD ✏ ♣✥r❫ ✥pq ❴ ✥✥q.

a) Define recursivamente una funci´ondualtal quedual♣Aq ✏AD. b) Muestra que✥A✑AD mediante inducci´on sobre las f´ormulas.

5.5.11.- Define recursivamente al conjunto de t´erminos de la l´ogica de predicados y enun-cia el principio de inducci´on estructural correspondiente.

5.5.12.- Define recursivamente al conjunto de f´ormulas de la l´ogica de predicados y enun-cia el principio de inducci´on estructural correspondiente. Observa que este principio debe incluir al dado en la secci´on 5.5.2 para la l´ogica de proposiciones.

5.5.13.- Define recursivamente las siguientes funciones para t´erminos de la l´ogica de pred-icados:

a) ctes♣tqque devuelva el conjunto de constantes que figuran ent. Por ejemplo,

ctes♣f♣a, g♣x, bqq ✏ ta, b✉.

b) vars♣tqque devuelva el conjunto de variables que figuran ent. Por ejemplo,

vars♣g♣x, f♣yq, h♣bqqq ✏ tx, y✉.

c) f uncs♣tqque devuelva el conjunto de s´ımbolos de funci´on que figuran ent. Por ejemplo,

f uncs♣f♣a, g♣x, bqq ✏ tf, g✉.

5.5.14.- La operaci´on de sustituci´on textual puede extenderse a los t´erminos de la l´ogica de predicados. Sityrson t´erminos yxes una variable entoncestrx:✏rsdenota a la sustituci´on textual dexporrent. Por ejemplo

f♣a, x, g♣y, xqqrx:✏hwqs ✏fa, hwq, gy, hwqqq. Realiza lo siguiente:

a) Formula una definici´on recursiva detrx:✏rs. b) Muestra que six❘vars♣tq, entoncestrx:✏rs ✏t. c) Muestra que:

(34)

Borrador

5.5.15.- Define recursivamente las siguientes funciones para f´ormulas de la l´ogica de

pred-icados:

a) f v♣Aqque devuelva el conjunto de variables libres deA. Por ejemplo,

f v♣❅xP♣x, yq ❫ ❉wQ♣z, wqq ✏ ty, z✉

b) bv♣Aqque devuelva el conjunto de variables ligadas deA. Por ejemplo,

bv♣❅xP♣x, yq ❫ ❉wQ♣z, wqq ✏ tx, w✉

c) nq♣Aqque devuelva el n´umero de cuantificadores que figuran enA. Por ejemplo,

bv♣❅x❉yP♣x, yq ❫ ❉w❅zQ♣z, wqq ✏4

5.5.16.- Reformule la prueba de la proposici´on 5.6 definiendo y utilizando una funci´on recursivansv que calcule el n´umero de sub´arboles vac´ıos de un ´arbol dado.

5.5.17.- Reformule la prueba de la proposici´on 5.7 sirviendose de la funci´onhtdel ejemplo 5.28.

5.5.18.- Demuestra que el m´ınimo n´umero de nodos en un ´arbol de alturanesn. 5.5.19.- Demuestra que el n´umero m´aximo de hojas en un ´arbol de alturan es2n✁1

y que el m´aximo n´umero de nodos internos es2n✁11

5.5.20.- Demuestra que el siguiente recorrido en un ´arbol binario reporta a todos los nodos del ´arbol y siempre termina.

Reglas para reportar un ´arbol binario.

a) Si el ´arbol es un ´arbol vac´ıo, reportavoidy regresa.

b) Si el ´arbol estree♣A, c, Bq, dondeAyB son ´arboles binarios, entonces:

I. Reportac. II. ReportaA.

III. ReportaB.

IV. Termina.

5.5.21.- Define recursivamente una funci´onaplanaque tome un ´arbol binario y devuelva la lista de sus nodos empezando por la ra´ız y siguiendo con los nodos del sub´arbol izquierdo y derecho recursivamente.

Por ejemplo, si

T ✏tree♣tree♣hoja♣1q,6, hoja♣2qq,5, treehoja♣4q,9,voidqq, dondehoja♣nq ✏tree♣void, n,voidq, entoncesaplanaTq ✏ r5,6,1,2,9,4s. Muestra que para cualquier ´arbolt, se cumplenn♣tq ✏long ♣aplana♣tqq.

5.5.22.- Queremos representar ´arboles binarios cuyas ´unicos nodos etiquetados son las hojas. Para eso tenemos la siguiente definici´on:

SiaPA, entonceshojaaqes un ´arbol.

(35)

Borrador

Observa que en esta definici´on no existe el ´arbol vac´ıo.

a) Define funciones recursivas nh y nni que calculen el n´umero de hojas y el n´umero de nodos internos de un ´arbol (es decir los nodos que no son hojas). b) Enuncia el principio de inducci´on estructural correspondiente y util´ızalo para

mostrar que:

Figure

NombreN´umeroFigurasmonomin´o1
NombreN´umeroFigurasmonomin´o1 p.15
NombreN´umeroFigurasdomin´os1
NombreN´umeroFigurasdomin´os1 p.16

Referencias

Actualización...

Related subjects :