Notas sobre inducción y recursión Pablo Báez Echevarría [email protected] Lógica - Facultad de Ingeniería - Udelar Julio de 2013 UNIVERSIDAD DE LA REPUBLICA URUGUAY Índice 1. Introducción 3 2. Definiciones inductivas 3 2.1. Forma general de una definición inductiva . . . . . . . . . . . . . . . 3 2.2. Interpretación de las reglas . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.1. Interpretación constructiva . . . . . . . . . . . . . . . . . . . . 5 2.2.2. Interpretación declarativa . . . . . . . . . . . . . . . . . . . . 6 2.2.3. Equivalencia de las interpretaciones constructiva y declarativa 6 2.3. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Principio de Inducción Primitiva (PIP) 3.1. Enunciado formal y demostración . . . . . . . . . . . . . . . . . . . . 3.2. Ejemplo de aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Pertenencia a un conjunto definido inductivamente . . . . . . . . . . 10 10 11 12 4. Esquema de Recursión Primitiva (ERP) 4.1. Definición inductiva libre . . . . . . . . . . . . . . . 4.2. Esquema de recursión primitiva para X . . . . . . 4.3. Ejemplo de aplicación . . . . . . . . . . . . . . . . . 4.4. Ejercicio 1 del Examen de Lógica de Julio de 2013 13 13 18 20 21 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. Introducción El objetivo de estas notas es brindar a los estudiantes de Lógica un material de apoyo para los primeros temas del curso (inducción y recursión) para los cuales no hay un libro de cabecera en donde aclararse las dudas e interrogantes que a uno le surgen leyendo las diapositivas. Ojalá estos apuntes sirvan para dicho propósito. 2. Definiciones inductivas 2.1. Forma general de una definición inductiva Para definir inductivamente un conjunto, llámese X, se sigue el siguiente procedimiento: se especifica un conjunto U llamado Universo conocido de antemano, y se dan ciertas reglas (tambíen llamadas cláusulas) que pueden ser de dos tipos: p Base: dicen que ciertos elementos del Universo pertenecen al conjunto X. Son de la forma: α ∈ X. p Inductivas: dicen que si ciertos elementos del Universo pertenecen a X entonces otro elemento, formado de alguna manera a partir de los anteriores, también pertenece a X. Son de la forma: Si α1 , . . . , αn ∈ X entonces F (α1 , . . . , αn ) ∈ X. De esta manera, de aquí en más, trabajaremos con una definición inductiva genérica, que es la siguiente: Forma general de de una definición inductiva Sea U ≠ ∅ el conjunto Universo y X ⊆ U definido inductivamente por 1) ⋮ r) r+1) ⋮ r+t) β1 ∈ X βr ∈ X Si α1 , . . . , αa1 ∈ X entonces F1 (α1 , . . . , αa1 ) ∈ X Si α1 , . . . , αat ∈ X entonces Ft (α1 , . . . , αat ) ∈ X donde βi ≠ βj , ∀i ≠ j y Fk ∶ U ak → U son funciones, ak ∈ Z+ , ∀k = 1, . . . , t. En la definición precedente hay r reglas base y t reglas inductivas. Observar que 3 cada regla base introduce un único elemento del Universo al conjunto X. Eso podría llegar a ser una limitación: por ejemplo, considérese la siguiente definición inductiva de N × N (como subconjunto de R2 ): i ii Si n ∈ N entonces (n, 0) ∈ N × N Si (n, m) ∈ N × N entonces (n, m + 1) ∈ N × N La cláusula i es una cláusula base (o un conjunto de cláusulas base) y no inductiva porque no supone que tenemos elementos de N × N sino de otro conjunto definido previamente (el de los números naturales). De esta manera, la regla i, siendo una regla base, está introduciendo al conjunto que queremos definir, que es N × N, tantos elementos como tiene N (en vez de uno solo). Naturalmente, para ajustarla a la definición general que acabamos de dar, uno podría sustituirla por: i ii iii ⋮ (0, 0) ∈ N × N (1, 0) ∈ N × N (2, 0) ∈ N × N ⋮ pero en tal caso, hemos dejado de tener un número finito de reglas base. Para evitar este inconveniente, se puede sustituir el conjunto de reglas base por una única regla que sea: B0 ⊂ X donde B0 (finito o no) es el conjunto de elementos del Universo que queremos tener en X como punto de partida. 2.2. Interpretación de las reglas Iniciaremos este tema con una Definición 1. Dada una definición inductiva como en la sección anterior y un elemento α ∈ U, se llama secuencia de formación para α a una secuencia φ1 , . . . , φn de elementos del Universo tales que φn = α y cada elemento de la secuencia, o bien resulta de una regla base, o bien de aplicarle una regla inductiva a elementos anteriores en la secuencia. Dos observaciones (que aparentemente no tienen conexión entre sí): No todos los elementos del Universo tienen asociada una secuencia de formación. 4 Las reglas pueden ser interpretadas como condiciones o requisitos que debe reunir el conjunto X que se está definiendo. En tal sentido, algunos subconjuntos del Universo verificarán las reglas y habrá otros que no. Ocurrirá frecuentemente que haya más de un subconjunto del Universo que verifique las reglas. Si hay muchos subconjuntos que cumplen con las reglas, es menester preguntarse cuál de todos ellos es el que se está definiendo. Pues bien, en relación a la pregunta ¿cuál es exactamente el conjunto que definen las reglas? hay dos puntos de vista (los cuales probaremos que son equivalentes entre sí) llamados: Interpretación Constructiva e Interpretación Declarativa. 2.2.1. Interpretación constructiva Se llama conjunto XC definido inductivamente por las reglas, al conjunto de los elementos del Universo que tienen una secuencia de formación. La idea es partir de un subconjunto B0 ⊂ U (el cual se especifica mediante la reglas base) e ir “agrandándolo” sucesivamente mediante la aplicación de las reglas inductivas hasta llegar a un conjunto que bien podríamos llamar “límite” en un sentido que explicitaremos a continuación. U B0 B1 B2 B3 Figura 1: Sucesión de conjuntos {Bn }. 5 Definiendo t Bn+1 = Bn ∪ ⋃ Fi (Bnai ) i=1 se cumple que {Bn }n≥0 es una sucesión monótona creciente B0 ⊆ B1 ⊆ ⋯ ⊆ Bn ⊆ Bn+1 ⊆ ⋯ y por lo tanto XC = lı́m Bn n→∞ (Notar que Bi es el conjunto de elementos del Universo para los cuales existe una secuencia de formación de longitud ≤ i + 1). 2.2.2. Interpretación declarativa Se llama conjunto XD definido inductivamente por las reglas, a la intersección de todos los subconjuntos del Universo que las verifican. En símbolos, si P(U) representa el conjunto de partes de U (o conjunto potencia) y si se llama R a la familia de subconjuntos de U que satisface las reglas, la afirmación en cursiva sería: XD = ⋂ R R∈R Algunas observaciones: El Universo siempre cumple con las reglas, por tanto R ≠ ∅. No es difícil probar que XD , definido de esta manera, cumple con las reglas (se deja como un ejercicio para el lector). Todo subconjunto Y del Universo que verifique las reglas contiene a XD , esto es, XD ⊆ Y . En efecto, si Y cumple con las reglas entonces Y ∈ R luego XD = Y ∩ (⋂R∈R−{Y } R) luego α ∈ XD implica α ∈ Y . Como XD verifica las reglas y cualquier otro subconjunto Y del Universo que verifica las reglas cumple XD ⊆ Y (esto no es más que la conjunción de las dos observaciones anteriores), podemos afirmar que XD es el mínimo conjunto que las verifica. 2.2.3. Equivalencia de las interpretaciones constructiva y declarativa Es momento de presentar el principal resultado de esta sección: Teorema 1. La interpretación constructiva y la interpretación declarativa definen el mismo conjunto, es decir, son equivalentes. 6 Demostración. La prueba consiste en probar, mediante la doble inclusión, que XC = XD . * XD ⊆ XC Si XC satisface las reglas, como XD es el mínimo conjunto que las satisface, se tendría XD ⊆ XC . Luego basta probar que XC cumple con las reglas. / Consideremos una regla base, de la forma: α ∈ X. La secuencia que sólo está formada por α es una secuencia de formación para α, luego α ∈ XC . / Consideremos ahora una regla inductiva, de la forma: Si α1 , . . . , αn ∈ X entonces F (α1 , . . . , αn ) ∈ X. Si α1 , . . . , αn ∈ XC entonces existe una secuencia de formación para cada uno de estos elementos. Concatenando las n secuencias de formación, cada una terminando en αi para i = 1, . . . , n y agregando de último F (α1 , . . . , αn ) hemos construido una secuencia de formación para F (α1 , . . . , αn ), luego F (α1 , . . . , αn ) ∈ XC . * XC ⊆ XD Considérese la siguiente propiedad (concerniente a los números naturales): P (n) ∶= (α ∈ U admite una secuencia de formación de longitud n ⇒ α ∈ XD ) Probar que P (n) es cierta para cualquier n ≥ 1 demuestra la inclusión XC ⊆ XD porque cualquier elemento α ∈ XC tendrá una secuencia de formación de algún largo ≥ 1. Se hará por inducción fuerte en n. / Paso base. Probemos P (1). Si α ∈ U admite una secuencia de formación de largo 1, entonces α necesariamente resulta de aplicar una regla base (pues no hay elementos anteriores en la secuencia). Si R ∈ R entonces R satisface las reglas, en particular las reglas base. Así α ∈ R, ∀R ∈ R luego α ∈ ⋂R∈R R = XD . / Paso inductivo. Sea n un número natural arbitrario y supongamos que se cumple P (m) para todo m < n. Nuestro objetivo es probar P (n). Tomemos α ∈ U tal que α admite una secuencia de formación de longitud n. Tenemos que probar que α ∈ XD = ⋂R∈R R. Para ello tomamos R ∈ R y probaremos que α ∈ R. Por definición de secuencia de formación, se distinguen dos casos: o bien α resulta de una regla base (1) o bien se obtiene aplicando una 7 regla inductiva a elementos anteriores en la secuencia (2). El caso (1) es inmediato. En el caso (2), cada uno de esos elementos anteriores admite una secuencia de formación de longitud < n luego por hipótesis de inducción están en XD luego en R, puesto que XD ⊆ R. Hemos llegado a que α se obtiene aplicando una regla inductiva a elementos de R, pero como R satisface las reglas (en particular las inductivas), α también ha de pertencer a R. 2.3. Ejemplos En esta sección presentaremos algunos ejemplos útiles que utilizaremos a lo largo del texto. Ejemplo 2.1 (Conjunto de los números naturales). Muchos libros de cálculo, como por ejemplo el Calculus de Apostol o el de Spivak, no introducen a los números reales de forma constructiva (esto es, empezando primero con los números naturales a partir de los axiomas de Peano, luego siguiendo con los enteros negativos, después con los racionales y por último los irracionales) sino que suponen que existen ciertos objetos, llamados números reales, que satisfacen una lista de 10 axiomas agrupados en tres grandes grupos: 6 axiomas de cuerpo, 3 axiomas de orden más el axioma del supremo o del extremo superior. Una vez caracterizado R mediante axiomas, presentan al conjunto N de los números naturales como subconjunto de R mediante la siguiente definición inductiva: i ii 0∈N Si n ∈ N entonces (n + 1) ∈ N Observar que aquí el Universo es R, que es un conjunto conocido de antemano. En caso contrario la definición anterior carecería de sentido pues naturalmente, supone definidos el cero, el uno y la suma. Es decir, tal definición es válida siempre que se suponga definido un conjunto mayor como R o Z. Si no, no. Ejemplo 2.2 (Lenguajes definidos sobre un alfabeto). Un alfabeto es un conjunto finito (no vacío) de símbolos. Denotamos un alfabeto arbitrario con la letra Σ. Una palabra (también llamada tira o cadena) sobre un alfabeto Σ es cualquier secuencia finita de elementos de Σ. Asimismo admitimos la existencia de una única palabra que no tiene símbolos, la cual se denomina palabra vacía y se denota con ϵ. Por 8 ejemplo, si Σ = {a, b}, las siguientes son palabras sobre Σ: aba ababaaa aaaab ϵ Notar que ϵ es una palabra y no un símbolo del alfabeto. El conjunto de todas las palabras sobre un alfabeto Σ (incluyendo la palabra vacía), se denota por Σ∗ . Por ejemplo, si Σ = {a, b, c} entonces Σ∗ = {ϵ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, . . . } Un lenguaje L sobre un alfabeto Σ es cualquier subconjunto de Σ∗ (casos extremos: L = ∅ y L = Σ∗ ). Dicho de otra manera, un lenguaje es un conjunto de palabras. Algunos lenguajes pueden definirse inductivamente. Por ejemplo, sea Σ = {a, b, c} y Γ ⊆ Σ∗ definido por i ii iii ϵ∈Γ a∈Γ Si α ∈ Γ y β ∈ Γ entonces bαcβb ∈ Γ Notar que de la misma manera en que, en la definición de los naturales se daba por definido el cero como neutro de la suma, en esta definición se da por definida la palabra vacía ϵ como neutro de la concatenación de dos cadenas. Ejemplo 2.3 (Una posible definición de Z). Supongamos que se desea definir el conjunto de los números enteros Z, como subconjunto de R, mediante reglas. Podría hacerse así: i 0∈Z ii Si k ∈ Z entonces k + 1 ∈ Z iii Si k ∈ Z entonces k − 1 ∈ Z Notar que, a diferencia de las definiciones inductivas de los ejemplos anteriores, no hay una única forma de “construir” un número entero. Por ejemplo, para llegar a 2, puede hacerse así: i ii ii Ð→ 0 Ð→ 1 Ð→ 2 O también: i iii iii ii ii ii ii Ð→ 0 Ð→ −1 Ð→ −2 Ð→ −1 Ð→ 0 Ð→ 1 Ð→ 2 El hecho de que el “proceso de formación” de un elemento no esté unívocamente determinado, acarrea algunos problemas que veremos más adelante. 9 3. Principio de Inducción Primitiva (PIP) 3.1. Enunciado formal y demostración El Principio de Inducción Primitiva es un teorema que se enuncia para cada conjunto con una definición inductiva como la que se presentó en la sección 2.1. Teorema 2. Dado X como en la sección 2.1, sea P (α) una propiedad referida a un elemento α de X. Si (1) ⋮ (r) (r+1) ⋮ (r+t) P (β1 ) se cumple P (βr ) se cumple Si P (α1 ), . . . , P (αa1 ) se cumple, P (F1 (α1 , . . . , αa1 )) se cumple Si P (α1 ), . . . , P (αat ) se cumple, P (Ft (α1 , . . . , αat )) se cumple entonces se cumple P (α) para todo α ∈ X. A la verificación de (1), . . . , (r) se le llama paso base y a la verificación de (r+1), . . . , (r+t) paso inductivo. Demostración. Sea S = {x ∈ U ∶ x ∈ X ∧ P (x) se cumple}. Verifiquemos que S cumple con las reglas. 3 βi ∈ S, i = 1, . . . , r puesto que βi ∈ X por la regla base i) y P (βi ) se cumple por hipótesis (i). 3 Si α1 , . . . , αaj ∈ S entonces Fj (α1 , . . . , αaj ) ∈ S, j = 1, . . . , t. En efecto, α1 , . . . , α aj ⎧ ⎪ ⎪ ⎪ α1 , . . . , αaj ∈ X ⎪ ⎪ ⎪ ⎪ ⎪ ∈S⇒⎨ ⎪ ⎪ ⎪ P (α1 ), . . . , P (αaj ) ⎪ ⎪ ⎪ ⎪ ⎪ se cumple ⎩ regla r+j) ⇒ Fj (α1 , . . . , αaj ) ∈ X hipótesis (r+j) P (Fj (α1 , . . . , αaj )) se cumple ⇒ Como Fj (α1 , . . . , αaj ) ∈ X y P (Fj (α1 , . . . , αaj )) se cumple, se tiene que Fj (α1 , . . . , αaj ) ∈ S. Hemos probado que S satisface las reglas. Como X es el menor conjunto que satisface las reglas, X ⊆ S. Luego P (α) se cumple para todo α ∈ X. 10 3.2. Ejemplo de aplicación Primero que nada, enunciemos el PIP para el caso particular en que X = N con la definición del ejemplo 2.1. Notar que, dado que se ha demostrado ya el caso general, éste no es más que un corolario. Corolario 3.1 (Principio de inducción primitiva para N). Sea P (n) una propiedad referida a un número natural n. Si i. P (0) se cumple ii. Si P (n) se cumple, P (n + 1) se cumple entonces se cumple P (n) para todo n ∈ N. Este principio, como ya es sabido de los cursos de matemática, se puede usar para probar propiedades concernientes a los números naturales. Ejemplo 3.1. Probar que la suma de los primeros n números naturales impares es igual a n2 . Demostración. Elegimos como propiedad P (n) n ∶= ∑ (2k − 1) = n 2 k=1 Que P (0) es cierta es trivial, pues la identidad resulta ∑0k=1 (2k − 1) = 02 (notar que la sumatoria es vacía1 ). Supongamos ahora que se cumple P (n) y demostremos P (n + 1). Se tiene que n+1 n k=1 k=1 2 ∑ (2k − 1) = ∑ (2k − 1) + (2(n + 1) − 1) (1) = n + (2n + 2 − 1) (2) = n + 2n + 1 (3) = (n + 1) (4) 2 2 donde en (2) se aplicó la hipótesis inductiva y en (4) la fórmula del cuadrado de un binomio. 1 En un grupo abeliano aditivo (o multiplicativo), una sumatoria (resp. productoria) que no tiene términos se llama vacía y suele reducirse al neutro del grupo (en el caso de R con la suma, el cero). 11 3.3. Pertenencia a un conjunto definido inductivamente Trataremos en esta sección algunas cuestiones prácticas al momento de resolver ejercicios. ñ Para demostrar que un elemento pertenece a un conjunto inductivo normalmente se construye una secuencia de formación. ñ Para demostrar que un elemento NO pertenece a un conjunto inductivo se pueden seguir tres estrategias: 1. Suponer que el elemento tiene una secuencia de formación y llegar a un absurdo. Ejemplo 3.2. Considere la definición inductiva del ejemplo 2.2. Demuestre que bcbb ∈/ Γ. Demostración. Por absurdo, supongamos que existe una secuencia de formación para bcbb. Como bcbb no es ϵ ni a, sólo puede resultar de aplicar la regla iii. Luego bcbb = bαcβb para ciertos elementos α, β ∈ Γ que aparecerán antes en la secuencia. Por comparación de las cadenas bcbb y bαcβb no cabe otra posibilidad que α = ϵ y β = b. Pero ninguna regla permite introducir una b en Γ (basta ver que no está entre las reglas base y la única regla inductiva introduce palabras con al menos una c), contradicción. 2. Probar (por inducción primitiva) que todo elemento del conjunto satisface una propiedad y notar que el elemento considerado no la cumple. Ejemplo 3.3. Sea Σ = {a, b} y Γ ⊆ Σ∗ definido por i ii ϵ∈Γ Si w ∈ Γ entonces wab ∈ Γ Demuestre que bab ∈/ Γ. Demostración. Una manera posible puede ser probar por inducción en Γ que todas sus palabras tienen la misma cantidad de letras a que de letras b, o que tienen largo par. Como bab no cumple ninguna de estas propiedades, se concluye que bab ∈/ Γ. 3. Mostrar que el conjunto resultante de quitar dicho elemento sigue satisfaciendo las reglas. 12 Ejemplo 3.4. Sea ΣP ROP el alfabeto conformado por símbolos de proposición p0 , p1 , . . . conectivos ∧, ∨, →, ¬, ↔, y paréntesis (, ). Se define el lenguaje de la lógica proposicional P ROP ⊆ (ΣP ROP )∗ de la siguiente manera: (i) (ii) (iii) (iv) (v) (vi) pi ∈ P ROP (∀i ∈ N), ∈ P ROP Si φ, ψ ∈ P ROP entonces (φ ∧ ψ) ∈ P ROP Si φ, ψ ∈ P ROP entonces (φ ∨ ψ) ∈ P ROP Si φ, ψ ∈ P ROP entonces (φ → ψ) ∈ P ROP Si φ, ψ ∈ P ROP entonces (φ ↔ ψ) ∈ P ROP Si φ ∈ X entonces (¬φ) ∈ P ROP Demuestre que ¬¬ ∈/ P ROP . Este ejemplo fue extraído del libro “Logic and Structure” (tercera edición) del matemático Dirk van Dalen (pág. 8). Demostración. Supongamos que ¬¬ ∈ P ROP . Nuestro objetivo será probar que Y = P ROP − {¬¬} también satisface (i), (ii), . . . , (vi). • Es claro que como pi , ∈ P ROP también , pi ∈ Y . • Sean φ, ψ ∈ Y . Luego φ, ψ ∈ P ROP y como P ROP satisface (ii), (iii), (iv), (v) entonces (φ□ψ) ∈ Y ya que por las formas de las expresiones (φ□ψ) ≠ ¬¬ (mirar, por ejemplo, en los paréntesis). En lo anterior usamos □ para denotar cualquiera de los símbolos ∧, ∨, →, ↔. • Análogamente se prueba que Y cumple (vi). Como Y satisface todas las reglas, se tiene que P ROP no es el menor conjunto que las satisface, absurdo. ñ Para demostrar que dos conjuntos dados por reglas son iguales, lo más sencillo es probar por inducción que cada conjunto verifica las reglas del otro (véase Ej. 9 del Práctico 1). 4. 4.1. Esquema de Recursión Primitiva (ERP) Definición inductiva libre El Esquema de Recursión Primitiva, al igual que el Principio de Inducción Primitiva, es un teorema que se formula para cada conjunto inductivo. Pero antes de enunciarlo, debemos introducir la siguiente 13 Definición 2. Una definición inductiva como la de la sección 2.1 se dice que es libre si verifica las siguientes condiciones: [1]. La restricción de Fj a X aj ⊆ U aj es inyectiva para todo j = 1, . . . , , t. O sea, dados α1 , . . . , αaj , α1′ , . . . , αa′ j ∈ X: Fj (α1 , . . . , αaj ) = Fj (α1′ , . . . , αa′ j ) ⇒ α1 = α1′ , . . . , αaj = αa′ j Si un elemento es obtenido a partir de una regla inductiva, los elementos a los que se aplica dicha regla para producirlo, son únicos. [2]. Fi (X ai ) ∩ Fj (X aj ) = ∅, ∀i ≠ j No hay dos reglas inductivas distintas que permitan generar el mismo elemento. [3]. B0 es realmente básico, o sea, si α1 , . . . , αaj ∈ X se tiene que Fj (α1 , . . . , αaj ) ∈/ B0 , ∀j = 1, . . . , t Un elemento de una regla base no puede ser obtenido mediante la aplicación de una regla inductiva. Si la definición inductiva de X es libre, existe para X otro teorema llamado Esquema de Recursión Primitiva (ERP), el cual brinda un mecanismo para definir funciones que tengan a X como dominio. Básicamente, para definir una función f ∶ X → B la idea es: p Asignar un valor a cada elemento dado por una regla base2 . p Para cada cláusula inductiva de la forma: “Si α1 , . . . , αn ∈ X entonces F (α1 , . . . , αn ) ∈ X”, dar un método para calcular f (F (α1 , . . . , αn )) a partir de f (α1 ), . . . , f (αn ) y eventualmente, α1 , . . . , αn . Esta idea se recoge en el Teorema 3. Veamos ahora algunos ejemplos pensados para convencerse de que las tres condiciones exigidas en la definición anterior son necesarias para que dicho teorema sea válido. Las dos últimas pueden resumirse en una sola: para todo elemento del conjunto hay una única regla que permite formarlo. 2 Observar que asignar un valor a cada elemento dado por una regla base no es otra cosa que definir por extensión una función h ∶ B0 → B, donde B0 es el conjunto dado por las reglas base. Si B0 fuera infinito, en vez de definir individualmente la imagen de cada elemento de B0 , lo que se hace es dar una fórmula general para h para luego hacer que f ∣B0 = h. 14 Ejemplo 4.1 (Definición inductiva que satisface [1] y [2] pero no [3]). Supongamos que Σ = {a, b} y ∆ ⊆ Σ∗ está definido por i ii iii iv v vi ϵ∈∆ a∈∆ b∈∆ aa ∈ ∆ Si w ∈ ∆ entonces awa ∈ ∆ Si w ∈ ∆ entonces bwb ∈ ∆ Es claro que ∆ es el conjunto de los palíndromos, es decir las palabras que resultan iguales leídas de adelante hacia atrás que de atrás hacia adelante. Pero hay un detalle: el conjunto B0 = {ϵ, a, b, aa} no es realmente básico, pues aa puede obtenerse aplicando la regla v a w = ϵ. ¿Qué problema acarrea esto? Imaginemos que se tienen las siguientes ecuaciones recursivas: f (ϵ) = 0 f (a) = 0 f (b) = 0 f (aa) = 0 f (awa) = 1 + f (w) f (bwb) = 1 + f (w) La idea es que f (w) represente el mínimo n tal que w ∈ Bn siendo Bn el definido en la sección 2.2.1 (intuitivamente, el número de pasos inductivos necesarios para obtener w). Pero estas ecuaciones no definen una función, pues por un lado f (aa) = 0 y por otro f (aa) = f (aϵa) = 1 + f (ϵ) =1+0 =1 Notar, sin embargo, que la definición inductiva de ∆ cumple con [1] porque si w, w′ ∈ ∆ entonces awa = aw′ a implica necesariamente w = w′ , y de la misma manera, bwb = bw′ b implica w = w′ . Y también cumple con [2] pues las palabras de ∆ que resultan de aplicar la cláusula v empiezan (y terminan) con a mientras 15 que las que resultan de aplicar la cláusula vi empiezan (y terminan) con b. Si se eliminara la cláusula iv entonces la definición sí sería libre. Si ϵ no se considera palíndromo entonces se podría eliminar la cláusula i y agregar en su lugar una que diga que bb ∈ ∆. Ejemplo 4.2 (Definición inductiva que satisface [1] y [3] pero no [2]). Sea Σ = {a, b} y Γ ⊆ Σ∗ dado por i ϵ∈Γ ii Si w ∈ Γ entonces aw ∈ Γ iii Si w ∈ Γ entonces wb ∈ Γ Aquí el problema radica en que, por ejemplo, ab puede obtenerse aplicando ii a w = b o aplicando iii a w = a. Entonces, por ejemplo, estas ecuaciones recursivas f (ϵ) = 1 f (aw) = f (w)2 f (wb) = 2f (w)2 no definen una función pues se tendría que, por un lado f (ab) = f (b)2 = f (ϵb)2 2 = (2f (ϵ)2 ) = (2 ⋅ 12 ) 2 =4 y por otro f (ab) = 2f (a)2 = 2f (aϵ)2 = 2f (ϵ)2 = 2 ⋅ 12 =2 Ejemplo 4.3 (Definición inductiva que satisface [2] y [3] pero no [1]). Sea A ⊆ R dado por: i −2 ∈ A ii 2∈A iii Si a ∈ A entonces a2 ∈ A 16 n Resulta evidente que A = {−2, 2, 4, 16, 256, . . . } = {−2, 2} ∪ {22 ∶ n ≥ 1}. Esta definición cumple [2] (pues hay una única regla inductiva) y también [3]. En efecto, para cualquier elemento de A se cumple que hay una única regla que permite formarlo, ya que si no es 2 ni −2 sólo puede provenir de aplicar la regla iii. Y si es 2 proviene de aplicar ii y si es −2 proviene de aplicar i, no hay más posibilidades. El problema con esta definción radica en que 4 = (−2)2 y también 4 = 22 , es decir, no hay único elemento al que aplicar una regla inductiva para obtener 4. Esto no significa que no se pueda definir una función por recursión. Por ejemplo, supóngase que se desea definir la función identidad. La forma natural de hacerlo sería: Id(−2) = −2 Id(2) = 2 Id (a2 ) = Id(a)2 , a ≠ −2, 2 Observar que estas ecuaciones recursivas sí definen una función puesto que, ya sea que se calcule Id(4) como Id(4) = Id (22 ) = Id(2)2 = 22 =4 o por medio de Id(4) = Id ((−2)2 ) = Id(−2)2 = (−2)2 =4 se obtiene 4, que es el resultado esperado. Sin embargo, es muy fácil dar ecuaciones recursivas siguiendo este mismo esquema que no definan una función. Por ejemplo, f (−2) = −2 f (2) = 2 f (a2 ) = 2f (a), a ≠ −2, 2 Ahora sí se suscita un problema al momento de computar f (4) ya que no se sabe si ha de ser f (4) = 2f (2) = 4 o bien f (4) = 2f (−2) = −4. Y esta indeterminación ocurre para cualquier elemento de A, ya que su imagen quedará dependiendo de f (4) en último término. 17 4.2. Esquema de recursión primitiva para X Teorema 3. Sea X con una definición inductiva libre, B ≠ ∅ un conjunto arbitrario y ● bi ∈ B, ∀i = 1, . . . , r ● gj ∶ X aj × B aj → B función, ∀j = 1, . . . , t entonces existe, y es única, una función f ∶ X → B, tal que ● f (βi ) = bi , ∀i = 1, . . . , r ● f (Fj (α1 , . . . , αaj )) = gj (α1 , . . . , αaj , f (α1 ), . . . , f (αaj )), ∀j = 1, . . . , t Demostración. La demostración está dividida en dos partes, existencia y unicidad. ⊕ →Existencia Definamos f como un conjunto f ∗ ⊆ X × B de pares ordenados, de la siguiente manera: i ii (βi , bi ) ∈ f ∗ , ∀i = 1, . . . , r Si (α1 , c1 ), . . . , (αaj , caj ) ∈ f ∗ entonces (Fj (α1 , . . . , αaj ), gj (α1 , . . . , αaj , c1 , . . . , caj )) ∈ f ∗ , ∀j = 1, . . . , t Probemos ahora, por inducción en X, la siguiente propiedad: P (x) ∶= (∃b ∈ B)((x, b) ∈ f ∗ ) ∧ (∀b, b′ ∈ B)((x, b) ∈ f ∗ ∧ (x, b′ ) ∈ f ∗ ⇒ b = b′ ) Observar que este predicado se compone de dos partes, por un lado (∃b ∈ B)((x, b) ∈ f ∗ ) que podríamos llamar existencia de la imagen de x, y por otro (∀b, b′ ∈ B)((x, b) ∈ f ∗ ∧ (x, b′ ) ∈ f ∗ ⇒ b = b′ ) que podríamos llamar unicidad de la imagen de x. / Paso base. Sea i ∈ {1, . . . , r}. Hay que probar P (βi ). 3 Existencia de la imagen: (∃b ∈ B)((βi , b) ∈ f ∗ ) Por definición de f ∗ , basta tomar b = bi . 18 3 Unicidad de la imagen: (∀b, b′ ∈ B)((βi , b) ∈ f ∗ ∧ (βi , b′ ) ∈ f ∗ ⇒ b = b′ ) Por [3] de la definición 2, cualesquiera sean α1 , . . . , αaj ∈ X se tiene que βi ≠ Fj (α1 , . . . , αaj ), ∀j luego (βi , b) y (βi , b′ ) sólo pueden resultar de una regla base. Como hay una única regla base que introduce un par con βi como primer componente, no cabe otra posibilidad que b = b′ = bi . / Paso inductivo. Sea j ∈ {1, . . . , t}. Supongamos P (α1 ), . . . , P (αaj ) y hay que probar P (Fj (α1 , . . . , αaj )). 3 Existencia de la imagen: (∃b ∈ B) ((Fj (α1 , . . . , αaj ), b) ∈ f ∗ ) Por hipótesis inductiva, sabemos que (∃c1 ∈ B)((α1 , c1 ) ∈ f ∗ ) (∃c2 ∈ B)((α2 , c2 ) ∈ f ∗ ) ⋮ (∃caj ∈ B)((αaj , caj ) ∈ f ∗ ) luego por definición de f ∗ , (Fj (α1 , . . . , αaj ), gj (α1 , . . . , αaj , c1 , . . . , caj )) ∈ f ∗ En consecuencia, basta tomar b = gj (α1 , . . . , αaj , c1 , . . . , caj ) ∈ B. 3 Unicidad de la imagen: (∀b, b′ ∈ B) ((Fj (α1 , . . . , αaj ), b) ∈ f ∗ ∧ (Fj (α1 , . . . , αaj ), b′ ) ∈ f ∗ ⇒ b = b′ ) Sea γ = Fj (α1 , . . . , αaj ). Como γ ∈ X se tiene alguna de estas posibilidades: a. γ = βi para algún i b. γ = Fk (α1′ , . . . , αa′ k ), k ∈ {1, . . . , t} para ciertos α1′ , . . . , αa′ k ∈ X El caso a) no puede ocurrir por [3] de la definición 2. En cuanto al caso b), si k ≠ j imposible, pues se tendría entonces que γ ∈ Fj (X aj )∩Fk (X ak ), pero Fj (X aj )∩Fk (X ak ) = ∅ por la condición [2] de la definición 2. Ahora bien, si k = j la condición [1] de la definición 2 implica α1 = α1′ , . . . , αaj = αa′ j . 19 Esto muestra que (γ, b), (γ, b′ ) fueron obtenidos a partir de pares que tenían a α1 , . . . , αaj como primeras componentes. Supongamos que (γ, b) fue obtenido a partir de (α1 , c1 ), . . . , (αaj , caj ) y que (γ, b′ ) fue obtenido a partir de (α1 , c′1 ), . . . , (αaj , c′aj ). Por hipótesis de inducción, (αi , ci ) ∈ f ∗ ∧ (αi , c′i ) ∈ f ∗ ⇒ ci = c′i y esto para todo i = 1, . . . , aj . Luego, b = b′ = gj (α1 , . . . , αaj , c1 , . . . , caj ) ⊕ →Unicidad Supóngase que existen dos funciones, f y fˆ, satisfaciendo las ecuaciones recursivas. Se deja como ejercicio probar, por inducción en X, la siguiente propiedad: P (x) ∶= (f (x) = fˆ(x)) 4.3. Ejemplo de aplicación Al igual que hicimos con el PIP, enunciaremos el ERP para el caso particular en que X = N con la definición inductiva del ejemplo 2.1. Corolario 4.1 (Esquema de recursión primitiva para N). Sea B ≠ ∅ un conjunto arbitrario y ● f0 ∈ B ● fs ∶ N × B → B una función entonces existe, y es única, una función F ∶ N → B, tal que3 ● F (0) = f0 ● F (S(n)) = fs (n, F (n)) ¿Cuál es el sentido de este teorema? Simplemente nos dice que, para definir una función en los naturales, es suficiente especificar su comportamiento en 0 y para n ≥ 1, dar una regla que nos permita deducir el valor de la función en S(n) a partir de su valor en el antecesor n. El Teorema de Recursión Primitiva para N asegura que cualesquiera sean el elemento f0 y la función fs , existe una única F definida por recursión primitiva a partir de ellos. 3 S(n) es la función sucesor que dado n devuelve (n + 1). 20 Ejemplo 4.4. Supongamos que queremos definir una función exp2 ∶ N → N tal que 0 ⋰1⋅2 (n−1)⋅2 n⋅2 exp2 (n) = 2 Para fijar ideas, calculemos exp2 (n) para valores bajos de n: exp2 (0) = 20 = 1 0 exp2 (1) = 21⋅2 = 21⋅1 = 2 1⋅20 exp2 (2) = 22⋅2 1⋅20 3⋅22⋅2 exp2 (3) = 2 = 22⋅2 = 16 = 23⋅16 = 281474976710656 ⋮ Si pretendemos ser formales, dar una fórmula para esta función en el lenguaje de la aritmética con suma, producto y exponenciación, puede ser una tarea compleja. Ahora bien, si tomamos f0 = 1 y fs ∶ N × N → N dada por fs (n, m) = 2S(n)⋅m planteando exp2 (0) = f0 exp2 (S(n)) = fs (n, exp2 (n)) el teorema nos dice que existe una función exp2 definida a partir de estas ecuaciones por recursión primitiva, y es fácil ver que exp2 ≡ exp2 . Así sabemos que exp2 es una función que existe, y tiene sentido definirla. 4.4. Ejercicio 1 del Examen de Lógica de Julio de 2013 Para cerrar estas notas, veamos un ejercicio que requiera poner en práctica todos los conocimientos que hemos adquirido. Ejemplo 4.5. Considere el alfabeto Σ = {0, 1}, el lenguaje Σ∗ , y la función #0 ∶ Σ∗ → N tal que #0 (ϵ) ∶= 0 #0 (0w) ∶= 1 + #0 (w) #0 (1w) ∶= #0 (w) a. Defina la función QUITA1 ∶ Σ∗ → Σ∗ que elimina todos los unos con los que empieza el argumento. Por ejemplo, QUITA1 (1111110111) = 0111, QUITA1 (0111) = 0111. 21 b. Demuestre que la cantidad de ceros que aparecen en w y en QUITA1 (w) es la misma. c. Defina la función COMPACTA ∶ Σ∗ → Σ∗ que sustituye las apariciones de unos adyacentes por un único uno. Por ejemplo, COMPACTA(1110111110001) = 1010001 Use la función QUITA1 . d. Demuestre que la cantidad de ceros que aparecen en w y en COMPACTA(w) es la misma. Resolución. Antes de pasar a la resolución de cada uno de los apartados, enunciemos el PIP y el ERP para Σ∗ , el cual implícitamente, aparece definido en el ejercicio como: i ϵ ∈ Σ∗ ii Si w ∈ Σ∗ entonces 0w ∈ Σ∗ iii Si w ∈ Σ∗ entonces 1w ∈ Σ∗ ⊕ →Principio de inducción primitiva para Σ∗ Sea P (w) una propiedad referida a una cadena w ∈ Σ∗ . Si i. P (ϵ) se cumple ii. Si P (w) se cumple, P (0w) se cumple iii. Si P (w) se cumple, P (1w) se cumple entonces se cumple P (w) para todo w ∈ Σ∗ . ⊕ →Esquema de recursión primitiva para Σ∗ Sea B ≠ ∅ un conjunto arbitrario y ● fϵ ∈ B ● f0 ∶ Σ∗ × B → B ● f1 ∶ Σ∗ × B → B entonces existe, y es única, una función F ∶ Σ∗ → B, tal que ● F (ϵ) = fϵ ● F (0w) = f0 (w, F (w)) ● F (1w) = f1 (w, F (w)) 22 a. Aplicando el ERP para Σ∗ con fϵ = ϵ y f0 , f1 ∶ Σ∗ × Σ∗ → Σ∗ tales que f0 (w1 , w2 ) = 0w1 y f1 (w1 , w2 ) = w2 , obtenemos QU IT A1 (ϵ) ∶= ϵ QU IT A1 (0w) ∶= 0w QU IT A1 (1w) ∶= QU IT A1 (w) b. Consideramos como propiedad P (w) ∶= #0 (w) = #0 (QU IT A1 (w)) P (ϵ) es verdadera pues QU IT A1 (ϵ) = ϵ (por definición de QU IT A1 ). Supongamos P (w) y probemos P (0w). De nuevo, por definición de QU IT A1 , se tiene que QU IT A1 (0w) = 0w luego aplicando #0 a ambos miembros, #0 (QU IT A1 (0w)) = #0 (0w) Notar que en este paso no fue necesario hacer uso de la hipóteis inductiva. Supongamos P (w) y probemos P (1w). Se tiene que: #0 (QU IT A1 (1w)) = #0 (QU IT A1 (w)) definición de QU IT A1 = #0 (w) hipótesis inductiva = #0 (1w) definición de #0 c. Aplicando el ERP para Σ∗ con fϵ = ϵ y f0 , f1 ∶ Σ∗ × Σ∗ → Σ∗ tales que f0 (w1 , w2 ) = 0w2 y f1 (w1 , w2 ) = 1QU IT A1 (w2 ), resulta COM P ACT A(ϵ) ∶= ϵ COM P ACT A(0w) ∶= 0COM P ACT A(w) COM P ACT A(1w) ∶= 1QU IT A1 (COM P ACT A(w)) d. Elegimos como propiedad P (w) ∶= #0 (w) = #0 (COM P ACT A(w)) P (ϵ) es verdadera pues COM P ACT A(ϵ) = ϵ (por definición de COM P ACT A). Supongamos P (w) y probemos P (0w). Se tiene que: #0 (COM P ACT A(0w)) = #0 (0COM P ACT A(w)) definición de COM P ACT A = 1 + #0 (COM P ACT A(w)) definición de #0 = 1 + #0 (w) hipótesis inductiva = #0 (0w) definición de #0 23 Supongamos P (w) y probemos P (1w). Se tiene que: #0 (COM P ACT A(1w)) = #0 (1QU IT A1 (COM P ACT A(w))) definición de COM P ACT A = #0 (QU IT A1 (COM P ACT A(w))) definición de #0 = #0 (COM P ACT A(w)) apartado b. = #0 (w) hipótesis inductiva = #0 (1w) definición de #0 Por último, y aunque no lo pida el ejercicio, computemos (sólo para ver cómo “funciona” la recursión) COM P ACT A(111010), usando la definición recursiva del apartado c. COM P ACT A(111010) = 1QU IT A1 (COM P ACT A(11010)) = 1QU IT A1 (1QU IT A1 (COM P ACT A(1010))) = 1QU IT A1 (1QU IT A1 (1QU IT A1 (COM P ACT A(010)))) = 1QU IT A1 (1QU IT A1 (1QU IT A1 (0COM P ACT A(10)))) = 1QU IT A1 (1QU IT A1 (1QU IT A1 (01QU IT A1 (COM P ACT A(0))))) = 1QU IT A1 (1QU IT A1 (1QU IT A1 (01QU IT A1 (0COM P ACT A(ϵ))))) = 1QU IT A1 (1QU IT A1 (1QU IT A1 (01QU IT A1 (0)))) = 1QU IT A1 (1QU IT A1 (1QU IT A1 (010))) = 1QU IT A1 (1QU IT A1 (1010)) = 1QU IT A1 (1010) = 1010 24