Apunte Introductorio sobre Inducción y Recursión Cátedra de Paradigmas de Lenguajes de Programación 17 de agosto de 2005 El presente apunte sirve a modo de guı́a a los temas de Inducción y Recursión que serán tratados en la materia. Cabe destacarse que no pretende ser un texto exhaustivo, sino más bien un “ı́ndice” temático. Para información adicional el lector puede consultar la bibliografı́a que se anexa. Los principios de inducción presentados en el apunte se resumen en la Figura 1 Índice 1. Inducción sobre los números naturales 1.1. Esquema de inducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Otros principios de inducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Teorema de Recursión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Conjuntos definidos inductivamente e inducción 2.1. Esquema de definición de conjuntos . . . . . . . . 2.2. Esquema de inducción . . . . . . . . . . . . . . . 2.3. Teorema de recursión . . . . . . . . . . . . . . . . 3. Inducción por reglas [Acz77] 3.1. Esquema de definición de conjuntos . . . 3.2. Esquema de inducción . . . . . . . . . . 3.3. Teorema de recursión . . . . . . . . . . . 3.4. Relación con la presentación informal de 2 3 4 6 estructural 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Induccion Estructural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12 12 13 14 4. Inducción transfinita 14 4.1. Esquema de inducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2. Teorema de recursión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5. Inducción bien fundada (“Well-founded Induction”) 5.1. Esquema de inducción . . . . . . . . . . . . . . . . . . 5.2. Relación con otros principios de inducción . . . . . . . 5.2.1. Inducción transfinita . . . . . . . . . . . . . . . 5.2.2. Inducción por reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 16 17 17 18 6. Definiciones inductivas como punto fijo de operadores 6.1. Esquema de definición de conjuntos . . . . . . . . . . . . 6.2. Relación con inducción por reglas . . . . . . . . . . . . . 6.3. Esquema de inducción . . . . . . . . . . . . . . . . . . . 6.4. Teorema de recursión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 21 22 22 7. Conclusiones 22 A. Definiciones varias sobre conjuntos ordenados 22 1 Axioma de Inducción ks de Peano KS +3 Principio de Buen Ordenamiento de IN fn TTTT TTT TTTTT TTT &. Principio de Principio de Inducción Conjunto de los naturales (IN) Inducción Básica fn UU Fuerte j 08 UUUU jjjj j UUUUU j j UUUUU jjj &. px jjj Principio de Inducción Completa KS Inducción Transfinita (hasta un ordinal α) KS Conjuntos bien ordenados Conjuntos bien fundados Inducción 08 Bien Fundada nf TTT T hhhh h T h T T h T TT TT hhhh hhhh T TTT T h h h px h &. Inducción Por Reglas ks +3 Principio de Inducción (conjunto de reglas determinı́sticas) de Punto Fijo Conjuntos definidos por operadores de clausura Conjuntos definidos por punto fijo de operadores Figura 1: Cuadro ilustrativo de algunos principios de inducción. Una flecha P1 ⇒ P2 indica que P1 es más fuerte que P2 . 1. Inducción sobre los números naturales El lector seguramente sabrá que el principio de inducción sobre los naturales (en adelante denotado IN) nos permite deducir que una propiedad es satisfecha por cada uno de sus miembros. Sin embargo, en Ciencias de la Computación este mecanismo se utiliza ampliamente sobre conjuntos de diversa naturaleza (y no solamente sobre los números naturales). Es deseable, entonces, conocer los fundamentos sobre los cuales se basa la inducción sobre los naturales de modo de poder comprender cómo funciona en el marco de otros conjuntos. Entre las preguntas que uno podrı́a hacerse podemos mencionar las siguientes: ¿De dónde viene éste principio? ¿Por qué funciona? A priori lo que uno querrı́a hacer es intentar capturarlos, definirlos, delimitarlos de manera abstracta: formular un conjunto de hipótesis (supuestos, axiomas) que establecen las propiedades mı́nimas que un conjunto debe obedecer para poder llamarse “el conjunto de los números naturales”. Asimismo, esta caracterización servirı́a para poder deducir el resto de sus propiedades a partir de las hipótesis. Tal caracterización fue propuesta por Giuseppe Peano en 1889. Definición 0.1 (Axiomas de Peano) El conjunto de los números naturales IN, el elemento 0 de IN y la función suc de IN en IN satisfacen los siguientes axiomas: Axioma I. Para ningún n en IN se tiene que suc(n) = 0 (ie. 0 no pertenece al rango de suc). Axioma II. Si n, m ∈ IN y suc(n) = suc(m), entonces n = m (i.e. suc es inyectiva). Axioma III. Sea A ⊆ IN. Supongamos que 1. 0 ∈ A y 2 2. para todo n ∈ IN, n + 1 ∈ A siempre que n ∈ A. Entonces A = IN Puede definirse una estructura de Peano como una terna (N, 0, S) donde N es un conjunto, 0 un elemento de N y S una función unaria sobre N que satisface los tres axiomas de Peano. Luego se prueba que el conjunto N = {0, 1, 2, 3, . . .}, con S la función S(n) = n + 1 es una estructura de Peano. Finalmente, se prueba que cualquier par de estructuras de Peano son isomorfas, es decir, son esencialmente indistinguibles. Gracias a esto, junto con el hecho de que pueden definirse las propiedades aritméticas usuales de los naturales a partir de estos axiomas, convenimos en que los axiomas de Peano efectivamente caracterizan a los números naturales. 1.1. Esquema de inducción Ahora podemos pasar a considerar inducción. La validez de la técnica de inducción deberı́a también ser consecuencia de estos axiomas y en efecto lo es: el Principio de Inducción Básico es una consecuencia inmediata del tercer axioma de Peano. Por esa razón muchas veces se conoce al tercer axioma de Peano como “Axioma de Inducción”. Seguidamente formulamos el Principio de Inducción Básico. Axioma 1 (Principio de Inducción Básico (PrIndBásico)) Sea P una propiedad sobre los números naturales. Supongamos que 1. P (0) es verdadero y que 2. para todo n, si P (n) es verdadero entonces P (n + 1) es verdadero. Entonces P (n) es verdadero para todos los naturales n. Formalmente, (∀P )[P (0) ∧ (∀n)(P (n) ⇒ P (n + 1)) ⇒ (∀n)P (n)] El primero de estos casos se conoce como caso base y el segundo como caso inductivo. Probar que una propiedad P vale para todos los números naturales implica, entonces, probar el caso base y el caso inductivo. El caso base consiste en probar que P vale para el número 0; el caso inductivo consiste en probar que P (n + 1) es verdadero (Tesis Inductiva) asumiendo que P (n) es verdadero (Hipótesis Inductiva). Si estos dos casos pueden probarse, entonces podemos concluir, apelando al Principio de Inducción Básico, que P es verdadero para todos los números naturales. Ejemplo 2 Consideremos la siguiente propiedad def P (n) = Sn = n(n+1) 2 donde, para todo n ∈ IN, Sn = 1 + 2 + 3 + . . . + n. Analicemos primero el caso base. Claramente P (0) es verdadero, pues en este caso Sn es la secuencia vacı́a y S0 = 0. Pasemos al caso inductivo. Supongamos que P (n) es verdadero y probemos que P (n + 1) es verdadero. Procedemos del siguiente modo Sn+1 = Sn + n + 1 (por def. de Sn+1 ) = n(n+1) + n + 1 (Hipótesis Inductiva) 2 n(n+1)+2(n+1) = (aritmética) 2 = (n+2)(n+1) (aritmética) 2 Apelamos al Principio de Inducción Básico para concluir que P es verdadero para todo número natural n. Ejemplo 3 Probemos la siguiente propiedad utilizando el Principio de Inducción Básico: P (n) = Si f : {0, . . . , n − 1} → {0, . . . , n − 1} es inyectiva, entonces también es suryectiva Asumiremos a modo de convención que en el caso en que n = 0, la expresión {0, . . . , n − 1} denota el conjunto vacı́o ∅. Dem. El caso base vale trivialmente pues requiere mostrar que cualquier función inyectiva de ∅ en ∅ es suryectiva. Consideremos ahora el caso inductivo. Supongamos que vale P (n) y que f : {0, . . . , n} → {0, . . . , n} es una función inyectiva. Sea f 0 la restricción de f al conjunto {0, . . . , n − 1}. Tenemos dos casos por considerar 3 1. Supongamos que f 0 es una función de {0, . . . , n − 1} en {0, . . . , n − 1}. Dado que f 0 es inyectiva, por Hipótesis Inductiva podemos concluir que f 0 es suryectiva. Como f es inyectiva tenemos f (n) = n y, por lo tanto, f es suryectiva. 2. Supongamos que f 0 no es una función de {0, . . . , n − 1} en {0, . . . , n − 1}. Debe existir un a, 0 ≤ a < n, tal que f 0 (a) = n. Además, este a es único dado la hipótesis de que f es inyectiva. Por otro lado, dado que f es inyectiva, existe un b, 0 ≤ b < n tal que f (n) = b. Definimos entonces la función f (m) si m 6= a g(m) = b si m = a Dado que f es inyectiva, también g lo es. Por lo tanto, aplicando la Hipótesis Inductiva concluimos que g : {0, . . . , n − 1} → {0, . . . , n − 1} es suryectiva. Como consecuencia, todos los j tal que 0 ≤ j ≤ n − 1 y j 6= b están en el rango de f . Dado que ya sabemos que b y n están en el rango de f , concluimos que f : {0, . . . , n} → {0, . . . , n} es suryectiva. Tal como hemos mencionado, el principio de inducción es consecuencia del tercer axioma de Peano. En efecto, supongamos que contamos con el tercer axioma de Peano. Supongamos, asimismo, que P (0) es verdadero y que para todo n, P (n) verdadero implica P (n + 1) verdadero. Sea A = {n ∈ IN | P (n) verdadero}. Claramente A ⊆ IN. Además, 0 ∈ A (debido a la hipótesis P (0) verdadero) y n ∈ A implica n + 1 ∈ A (debido a la hipótesis de que para todo n, P (n) verdadero implica P (n+1) verdadero). Concluimos, usando el tercer axioma de Peano, que A = IN. Por ende, P (n) es verdadero para todo n en IN. De hecho, El Principio de Inducción Básico es equivalente al tercer axioma de Peano. Es decir, puede probarse el resultado converso. Ejercicio 4 Probar el tercer axioma de Peano utilizando como hipótesis el PrIndBásico. 1.2. Otros principios de inducción En ésta subsección presentaremos otros tres principios de inducción. Si bien todos ellos son equivalentes al Principio de Inducción Básico, en algunos casos son más fáciles de usar. A modo de ejemplo, consideremos al conjunto de los árboles binarios definidos como el menor conjunto que satisface las siguientes dos condiciones: 1. (Hoja) es una árbol binario 2. Si t1 y t2 son árboles binarios, entonces (Nodo t1 t2 ) es un árbol binario Ejemplos de árboles binarios serı́an (Hoja) y (Nodo (Hoja) (Nodo (Hoja) (Hoja))). Este es un ejemplo de una definición por inducción estructural. Establece que un árbol binario puede ser una expresión de la forma Hoja, o bien, una expresión de la forma Nodo t1 t2 , donde t1 y t2 son árboles binarios dados. Dado que el esquema de inducción estructural será tratado en detalle en la sección 2, relegamos todo comentario adicional hasta entonces. Asimismo, contamos con las siguientes funciones: tam(Hoja) tam(Nodo t1 t2 ) = 0 = 1 + tam(t1 ) + tam(t2 ) altura(Hoja) = 0 altura(Nodo t1 t2 ) = 1 + max (altura(t1 ), altura(t2 )) La primera de ellas, tam, retorna el tamaño de un árbol binario (número de nodos que no son hojas); la segunda de ellas, altura, retorna la altura de un árbol binario (donde suponemos que la altura de una hoja es 0). Supongamos que nos proponemos probar que la siguiente propiedad P vale para todos los números naturales: P (n) = ∀t.tam(t) = n ⇒ altura(t) ≤ tam(t) 4 Intentemos utilizar el Principio de Inducción Básico sobre IN. El caso base vale trivialmente. Abordemos el caso inductivo. Supongamos que P (n) es verdadero e intentemos probar P (n + 1). Sea t un árbol binario cualquiera tal que tam(t) = n + 1. Claramente t debe ser de la forma Nodo t1 t2 , para algún árbol t1 y t2 . El problema con el que nos encontramos ahora es que no podemos aplicar la Hipótesis Inductiva, pues el tamaño de t1 (o de t2 ) no es necesariamente n! Una posibilidad es usar el Principio de Inducción Fuerte que se introduce en esta sección, (junto con otros dos principios, a saber el Principio de Inducción Completa y el Principio de Buen Ordenamiento para IN). Axioma 5 (Principio de Inducción Fuerte) Sea P una propiedad sobre los números naturales. Supongamos que 1. P (0) es verdadero y que 2. para todo k, si P (j) es verdadero para cada j en 0 ≤ j ≤ k, entonces P (k + 1) es verdadero. Entonces P (n) es verdadero para todos los naturales n. (∀P )[P (0) ∧ (∀k)(∀j)((0 ≤ j ≤ k ⇒ P (j)) ⇒ P (k + 1)) ⇒ (∀n)P (n)] Observar que, a diferencia del PrIndBásico en el que en el caso inductivo se asume que la propiedad P vale para el número natural inmediatamente anterior, el Principio de Inducción Fuerte asume, en el caso inductivo, que la propiedad P vale para todos los naturales anteriores al caso que se quiere probar. Utilizando el Principio de Inducción Fuerte puede completarse la demostración de P (n) = ∀t.tam(t) = n ⇒ altura(t) ≤ tam(t). Ejemplo 6 Otro ejemplo es P (n) =“n + 2 puede ser factorizada como producto de números primos”. Dem. El caso base es inmediato pues 2 es primo. Pasemos al caso inductivo. Supongamos que vale P (j), 0 ≤ j ≤ k. Veamos que vale P (k + 1). Si k + 1 es primo concluimos de inmediato. Si k + 1 no es primo debe ser divisible por un número r entre 1 y k + 1: k + 1 = r × s. Dado que 2 ≤ r, s ≤ k, por Hipótesis Inductiva tanto r como s puede escribirse como producto de números primos. Combinando estas factorizaciones obtenemos una factorización para k + 1. Esto concluye la demostración. Una variante del Principio de Inducción Fuerte es el Principio de Inducción Completa en el que el caso base y el inductivo se funden en un único caso. Axioma 7 (Principio de Inducción Completa) Sea P una propiedad sobre los números naturales. Supongamos que para todo k ∈ IN, si P (j) es verdadero para cada j en 0 ≤ j < k, entonces P (k) es verdadero. Entonces P (n) es verdadero para todos los naturales n. (∀P )[((∀k)(∀j)((0 ≤ j < k ⇒ P (j)) ⇒ P (k)) ⇒ (∀n)P (n)] Para ver de qué manera el Principio de Inducción Fuerte subsume el caso base de los principios de inducción ya vistos, consideremos el caso k = 0. Dice ası́: si P (j) es verdadero para cada j en 0 ≤ j < 0, entonces P (k) es verdadero. Dado que no hay ningún número j en el rango solicitado, el antecedente vale trivialmente. Entonces, para poder concluir que la implicación es verdadera, debe verificarse que P (0) es verdadero. Finalmente presentamos el Principio de Buen Ordenamiento para IN. Es una propiedad intuitiva de los naturales y que además le es exclusiva en el sentido que (para la noción de orden “usual”) no se verifica para los enteros, ni los racionales ni los reales. Axioma 8 (Principio de Buen Ordenamiento para IN (PrBONN)) Todo subconjunto no vacı́o de números naturales tiene un mı́nimo elemento (cf. Definición 66.1). Formalmente (∀A ⊆ IN)[A 6= ∅ ⇒ (∃m ∈ A)(∀n ∈ A)(m ≤ n)] Si bien, tal como ya hemos mencionado, el PrBONN es equivalente a los demás principios de inducción vistos, no es evidente a partir de su formulación cómo se utiliza para probar propiedades sobre IN. Desarrollamos entonces un pequeño ejemplo. Consideremos la propiedad def P (n) = Sn = 5 n(n+1) 2 del ejemplo 2. Dem. La demostración procede por contradicción. Sea S el conjunto de los números naturales para los cuales la propiedad P es falsa y supongamos que S es no vacı́a. Aplicando el PrBONN podemos deducir la existencia de un elemento mı́nimo m en S. Dado que S0 = 0 sabemos que P (0) es verdadero. Por lo tanto, m > 0. Por definición de m, P (m − 1) es verdadero. En otras palabras Sm−1 = (m−1)m . Pero entonces tenemos lo siguiente 2 Sm = Sm−1 + m +m = (m−1)m 2 (m−1)m+2m = 2 = (m−1+2)m 2 = (m+1)m 2 Por lo tanto, P (m) es verdadero, arrojando una contradicción. La utilización del PrBONN para probar propiedades sobre IN siempre sigue el lineamiento descripto: se supone, por el absurdo, que la propiedad es falsa para algún natural y se define A = {n | P (n) es falso}. Luego se aplica el PrBONN obteniendo un elemento mı́nimo m y se procede a llegar a un absurdo a partir de ello (generalmente construyendo un elemento más chico que m tal que P es falso para el mismo). Tal como hemos mencionado, el Principio de Inducción Básico puede demostrarse a partir del PrBONN. Teorema 9 PrBONN implica PrIndBásico. Dem. Sea S el conjunto de los naturales k tal que P (k) es falso. Si S es no vacı́o, por el PrBONN, S tiene un menor elemento m. Claramente, m 6= 0, pues por la primera hipótesis de PrIndBásico P (0) es verdadero. Por lo tanto, m > 0. Asimismo, P (m − 1) es verdadero (por definición de m) y, por la segunda hipótesis de PrIndBásico, obtenemos que P (m) es verdadero. Esta contradicción muestra que S es vacı́o y que, por lo tanto, P (n) es verdadero para todos los naturales n. Ejercicio 10 Demuestre que vale el resultado converso (ie. que PrIndBásico implica PrBONN). Ayuda: probar el contrarecı́proco. 1.3. Teorema de Recursión En computación la noción de recursión es fundamental. Una forma en la que se hace presente es a través de las ecuaciones recursivas utilizadas para definir funciones. Por ejemplo, las siguientes ecuaciones recursivas f (0) = 1 f (n + 1) = n ∗ f (n) con indeterminada f en el conjunto de todas las funciones de IN en IN (denotado [IN → IN]) sirve a modo de definición de f : en efecto, puede demostrarse que hay una única función en [IN → IN] que satisface las ecuaciones. Sin embargo no todas las ecuaciones recursivas con indeterminadas en IN → IN tienen una única solución, o incluso tienen solución alguna. Por ejemplo, f (n) = f (n) tiene a todas las funciones en [IN → IN] como solución. Por lo tanto, dista de ser una “definición”. De manera análoga, la ecuación f (n) = 1 + f (n) no tiene ninguna solución en [IN → IN]. Por ende, tampoco constituye una “definición”. El Teorema de Recursión I estipula condiciones sobre las ecuaciones recursivas que garantizan la existencia y unicidad de la indeterminada (llamada g). Teorema 11 (Teorema de Recursión I) Sea A un conjunto, a ∈ A y H : A → A una función. Entonces existe una única función g : IN → A que satisface las siguientes ecuaciones recursivas: g(0) = a g(n + 1) = H(g(n)) 6 Un teorema análogo en el marco de un principio de inducción más general que el Principio de Inducción Básico sobre IN, a saber el Principio de Inducción por Reglas, será demostrado más adelante. Como consecuencia la demostración del teorema 11 se omite y se invita al lector a consultar el Teorema 39. El Teorema de Recursión I sirve para definir funciones sobre los naturales. Las funciones definidas usando este mecanismo se llaman funciones definidas por inducción (o funciones recursivas). Ejemplo 12 Para cada k ∈ IN podemos definir suma k : IN → IN del siguiente modo: suma k (0) = k suma k (n + 1) = suc(suma k (n)) donde suc es la función que toma un número n y retorna n + 1. Observar que esta definición toma la forma del Teorema de Recursión I donde A = IN, a = k y H = suc. Ejemplo 13 Podemos definir esCero : IN → {0, 1} del siguiente modo: esCero(0) = 1 esCero(n + 1) = 0 Observar que esta definición toma la forma del Teorema de Recursión I donde A = {0, 1}, a = 1 y H(x) = 0. Hay algunas definiciones de funciones recursivas que no caen dentro del esquema del Teorema de Recursión I. Un ejemplo serı́a la función factorial que requiere el uso de su argumento. Una presentación más flexible del Teorema de Recursión I es: Teorema 14 (Teorema de Recursión II) Sea A un conjunto, a ∈ A y H : IN×A → A una función. Entonces existe una única función g : IN → A que satisface las siguientes ecuaciones recursivas: g(0) = a g(n + 1) = H(n, g(n)) Ejemplo 15 El caso antes mencionado de la función factorial se define: fac(0) = 1 fac(n + 1) = (n + 1) ∗ fac(n) Observar que toma la forma del Teorema de Recursión II donde A = IN, a = 1, H(n, m) = (n + 1) ∗ m. Cabe destacar que el Teorema de Recursión II es equivalente al Teorema de Recursión I. Es claro que dado los parámetros a y H utilizados en el Teorema de Recursión I, pueden exhibirse parámetros a0 y H 0 del Teorema de Recursión II, tal que ambos definen la misma función (basta tomar a0 = a y H 0 (x, y) = H(y)). Dejamos al lector la tarea de demostrar que toda función definida utilizando el Teorema de Recursión II puede definirse usando el Teorema de Recursión I. Ejercicio 16 Pruebe que toda función definida utilizando el Teorema de Recursión II, también puede ser defininda utilizando el Teorema de Recursión I. Supongamos que quisieramos definir una función por recursión en un solo argumento. Por ejemplo, la función suma: suma(m, 0) suma(m, n + 1) = m = suc(suma(m, n)) Claramente no sigue el formato establecido por el Teorema de Recursión I. Una tercera variante, también equivalente a las primeras dos, es la siguiente que incluye como argumento de la función que se define a un parámetro p. 7 Teorema 17 (Teorema de Recursión III) Sea A y P conjuntos, G : P → A y H : P × IN × A → A una función. Entonces existe una única función g : P × IN → A que satisface las siguientes ecuaciones recursivas: g(p, 0) = G(p) g(p, n + 1) = H(p, n, g(p, n)) Observación 18 Instanciando P en INn la función g del Teorema de Recursión III se dice que se obtiene por recursión primitiva a partir de las funciones G y H. 2. Conjuntos definidos inductivamente e inducción estructural Esta sección presenta, de manera informal, la noción de conjunto definido inductivamente. La idea intuitiva es la de construir un conjunto comenzando a partir de ciertos elementos básicos, utilizando reglas que nos permiten armar elementos compuestos a partir de otros dados. En la Sección 3 daremos una presentación rigurosa de los conjuntos definidos inductivamente y de la noción de inducción estructural. 2.1. Esquema de definición de conjuntos Definición 18.1 (Definición inductiva de un conjunto) Una definición inductiva de un conjunto A consiste en una colección de esquemas de reglas (abreviado esquemas). Cada esquema es de uno de dos tipos: Básico o Inductivo. Los Esquemas Básicos son aquellos que establecen incondicionalmente que ciertos elementos pertenecen al conjunto. Los Esquemas Inductivos son aquellos que establecen que un elemento (llamado conclusión del esquema) está en el conjunto si ciertos otros elementos (llamados hipótesis del esquema) están en el conjunto. Los elementos de A son aquellos para los cuales puede mostrarse que están en A a partir de un número finito de aplicación de esquemas. Ejemplo 19 Definimos inductivamente al conjunto NAT del siguiente modo: 1. La expresión cero pertenece a NAT. 2. Si n es una expresión en NAT, entonces suc(n) pertenece a NAT. El conjunto NAT cuenta con los siguientes elementos {cero, suc(cero), suc(suc(cero)), suc(suc(suc(cero))), . . .}. Una manera abreviada de presentar a NAT es la siguiente: NAT ::= cero | suc(NAT) Ejemplo 20 La siguiente es una definición inductiva de árboles binarios decorados con números naturales: 1. Para cada n ∈ IN, (Hoja n) pertenece a BT 2. Si t1 y t2 pertenecen a BT y n ∈ IN, entonces (Nodo n t1 t2 ) pertenece a BT. Algunos ejemplos de elementos de BT son: (Hoja 3) (Nodo 7 (Nodo 4 (Hoja 3) (Hoja 5)) (Hoja 3)) Ejemplo 21 Sea V un conjunto de nombres de variable y C un conjunto de constantes numéricas. Definimos inductivamente el conjunto EXP de expresiones aritméticas del siguiente modo: 1. Cada constante numérica en C pertenecen a EXP. 2. Cada variable en V pertenece a EXP. 3. Si e pertenece a EXP,entonces (e) pertenece a EXP. 8 4. Si e1 y e2 pertenece a EXP, entonces e1 + e2 pertenece a EXP. 5. Si e1 y e2 pertenece a EXP, entonces e1 ∗ e2 pertenece a EXP. Si x, y ∈ V y 1, 2 ∈ C entonces, las siguientes expresiones son ejemplos de elementos en EXP: (x) (x + 1) ∗ 2 (((x))) + y La justificación de que el anteúltimo ı́tem es un elemento de EXP es: x (2) 1 x+1 (x + 1) (1) (4) (3) (x + 1) ∗ 2 2 (1) (5) Ejemplo 22 El conjunto de las listas de números naturales ListNat se puede definir por inducción estructural del siguiente modo: 1. nil pertenece a ListNat 2. Si n ∈ IN y l ∈ ListNat, entonces n : l pertenece a ListNat Ejemplo 23 Sea Σ = {a, b}. Definimos el siguiente subconjunto AeqB de Σ∗ . 1. λ (la palabra “vacı́a”) pertenece a AeqB. 2. Si w está en AeqB, entonces awb pertenece a AeqB. 3. Si w está en AeqB, entonces bwa pertenece a AeqB. 4. Si w y u están en AeqB, entonces wu pertenece a AeqB. Algunos ejemplos de elementos de AeqB son: ab, abab, aabb. 2.2. Esquema de inducción El Principio de Inducción Estructural permite demostrar propiedades P sobre conjuntos inductivos. En analogı́a con el Principio de Inducción Básico sobre IN, establece que para probar que P es verdadero para todos los elementos de un conjunto inductivo debe probarse: 1) que P vale para todos los casos base determinados por los esquemas de reglas básicos, y 2) que si una expresión e es introducida en el conjunto inductivo utilizando un esquema de regla inductivo y elementos e1 , . . . , en , entonces debe probarse que si P es verdadero para cada ei , 1 ≤ i ≤ n, entonces los es para e. Teorema 24 (Principio de Inducción Estructural) Sea A un conjunto definido inductivamente y P una propiedad sobre los elementos de A. Supongamos que 1. para cada esquema básico en la definición de A, si x es introducido en A por la misma, entonces P (x) es verdadero. 2. para cada esquema inductivo en la definición de A, si P es verdadero para cada hipótesis del esquema entonces P es verdadero para la conclusión del esquema. Entonces, P (x) es verdadero para todo x en A. La prueba de validez se formaliza en el marco del esquema de inducción por reglas (Teorema 35). Corolario 25 Sea P es una propiedad sobre los elementos de EXP. Supongamos que 9 P (n) es verdadero para toda constante numérica en n en C. P (v) es verdadero para toda variable v en V . Si P (e) es verdadero,entonces P ((e)) es verdadero. Si P (e1 ) y P (e2 ) son verdaderos, entonces P (e1 + e2 ) es verdadero. Si P (e1 ) y P (e2 ) son verdaderos, entonces P (e1 ∗ e2 ) es verdadero. Entonces P (x) es verdadero para todo elemento x de EXP. Un ejemplo serı́a probar que la propiedad P que estipula que toda expresión en EXP tiene el mismo número de paréntesis que abren y que cierran. En función al Principio de Inducción Estructural para EXP procedemos de la siguiente manera: P (c) y P (x) son claramente verdaderos pues no tienen paréntesis. Supongamos que P (e) es verdadero. Entonces P ((e)) es verdadero pues dado que e tiene el mismo número de paréntesis que abren y que cierran, esta condición se mantiene si agrego un paréntesis que abre y otro que cierra. Si P (e1 ) y P (e2 ), entonces P (e1 + e2 ). Esto es inmediato. De la misma forma, si P (e1 ) y P (e2 ), entonces P (e1 ∗ e2 ) es verdadero. Por lo tanto, apelamos al Principio de Inducción Estructural sobre EXP para concluir que P vale para toda expresión e en EXP. Corolario 26 Sea P un predicado sobre los elementos de AeqB definido en el ejemplo 23. Supongamos que 1. P (λ) es verdadero. 2. Si P (w) es verdadero, entonces P (awb) es verdadero. 3. Si P (w) es verdadero, entonces P (bwa) es verdadero. 4. Si P (w) y P (u) son verdaderos, entonces P (wu) es verdadero. Entonces P (x) es verdadero para todo x en AeqB. Un ejemplo de la utilización de este corolario serı́a probar la siguiente propiedad P : P (w)=“w tiene la misma cantidad de “a”s que de “b”s”. El caso base w = λ vale trivialmente. Supongamos que P (w) es verdadero. Si le agregamos una “a” y una “b” a w, claramente el invariante se mantiene. Esto prueba que P (awb) y P (bwa). El último caso se aborda de manera análoga. Apelando al Principio de Inducción Estructural, podemos concluir que P es verdadero para todo w en Σ∗ . 2.3. Teorema de recursión Esta sección exhibe condiciones bajo las cuales se puede garantizar que ecuaciones recursivas con cierta forma especı́fica y con una indeterminada f tienen una única solución en [A → B] donde A es un conjunto definido inductivamente. Comenzamos por indicar qué forma deben tomar las ecuaciones recursivas. Definición 26.1 (Definición recursiva) Sea A un conjunto definido inductivamente y B un conjunto cualquiera. Una definición recursiva para una función f de A en B es una que tiene la siguiente forma: Para cada esquema básico en la definición de A, el valor de f aplicado a un elemento de A que proviene de un esquema básico está dado por alguna función conocida de antemano (ie. de manera no recursiva). Para cada esquema inductivo en la definición de A, el valor de f aplicado a la conclusión del esquema está dado por el valor de alguna función conocida de antemano, aplicada a las hipótesis del esquema y al valor que arroja f sobre las hipótesis del mismo. 10 Si bien la definición de función recursiva siguiendo ésta receta parece cumplir con su comentido, precisaremos imponer una condición adicional. Consideremos la siguiente función f “definida” sobre AeqB: f (λ) = 0 f (awb) = 2 + f (w) f (bwa) = 2 + f (w) f (uv) = 1 + f (u) + f (w) (1) (2) (3) (4) Observar que f satisface las condiciones dadas por la Definición 26.1. Sea w = abab. Notar que f (w) =(2) 2 + f (ba) =(3) 2 + 2 + f (λ) =(1) 2 + 2 + 0 = 4 f (w) =(4) 1 + f (ab) + f (ab) =(2) 1 + 2 + f (λ) + f (ab) =(1) 1 + 2 + 0 + f (ab) =(2),(1) 5 El problema radica en que la cadena w puede colocarse en AeqB a través de dos esquemas de reglas diferentes. Por lo tanto, requeriremos que el conjunto inductivo sobre el cual se pretende definir una función utilizando la Definición 26.1 cumpla con un requisito adicional, a saber que satisfaga la condición de lectura única. Intuitivamente, la condición dice que para cada elemento de un conjunto inductivo A hay una única manera de “construir” ese elemento utilizando las esquemas de la definición de A. Definición 26.2 (Lectura única) Se dice que una definición inductiva de un conjunto A satisface la propiedad de lectura única si valen las siguientes condiciones: 1. Para cada elemento de A hay una única regla que coloca ese elemento en a. 2. Si un elemento es colocado en A utilizando un esquema de regla inductivo, entonces hay una única secuencia de hipótesis que pueden ser usadas por el esquema para colocar el elemento en el conjunto. Observación 27 Notar que la condición de lectura única está ligada a la definición del conjunto inductivo y no al conjunto en sı́ mismo. Por ejemplo, si agregamos el esquema de regla “suc(cero) pertenece a NAT” a la definición inductiva del ejemplo 19, la definición resultante define el mismo conjunto NAT. Sin embargo, ya no cumple con la condición de lectura única. Estamos en condiciones de formular el Teorema de Recursión para la presente noción de conjuntos definido por inducción estructural. La demostración de este teorema se realizará en el marco del esquema de inducción por reglas, marco en el cual las nociones intuitivas de esta sección se formulan de manera más rigurosa. Teorema 28 (Teorema de Recursión) Sea A un conjunto definido inductivamente que además satisface la condición de lectura única. Entonces, cualquier definición recursiva de una función sobre A que sigue el esquema de la Definición 26.1 tiene una única solución. Ejemplo 29 (Ejemplo 21 continuado) Sea val una función en [V → IN] (el entorno) y h una función en [C → IN] (interpretación de constantes numéricas). Dado que EXP satisface la condición de lectura única, las siguientes ecuaciones definen una única función (que permite evaluar una expresión): eval(v) = val (v) eval(c) = h(c) eval((e)) = eval(e) eval(e1 + e2 ) = eval(e1 ) + eval(e2 ) eval(e1 ∗ e2 ) = eval(e1 ) ∗ eval(e2 ) Por ejemplo, si val (x) = 3 entonces eval ((x + 2) ∗ 3) = 15. Ejemplo 30 La siguiente función length : ListNat → IN calcula la longitud de una lista de números naturales length(nil ) length(n : l) = 0 = 1 + length(l) La siguiente función map : [IN → IN] × ListNat → ListNat “mapea” una función dada como argumento sobre cada uno de los elementos de una lista de números naturales: map(f, nil ) map(f, n : l) = nil = f (n) : map(f, l) 11 3. Inducción por reglas [Acz77] Esta sección introduce la noción de conjuntos definidos a través de reglas (de construcción, generación, inferencia, etc.). Se basa en una noción abstracta de regla. Ello permite introducir los conceptos y resultados vistos en la sección sobre Inducción Estructural de una manera más rigurosa. Asimismo, incluye al Principio de Inducción Básica sobre IN como caso particular. 3.1. Esquema de definición de conjuntos Definición 30.1 1. Una regla es un par (X, x) donde X es un conjunto (llamado el conjunto de las premisas) y x es la conclusión. 2. Si Φ es un conjunto de reglas, entonces se dice que un conjunto A es Φ-cerrado si para cada regla en Φ cuyas premisas están en A también la conclusión está en A. Escribimos Φ : X → x para denotar que la regla (X, x) está en Φ. Podemos reformular la noción anterior del siguiente modo: A es Φ-cerrado si Φ : X → x y X ⊆ A implica x ∈ A. Un conjunto de reglas Φ define a un conjunto I(Φ) como el menor de los conjuntos Φ-cerrados. Definición 30.2 Sea Φ un conjunto de reglas, el conjunto inductivo definido por Φ (que denotamos I(Φ)), está dado por \ I(Φ) = {A | A es Φ − cerrado} Ejemplo 31 Sea Φ = {(∅, 0)} ∪ {(n, n + 1) | n ∈ IN}. Entonces I(Φ) = IN. Ejemplo 32 Sea Φ = {(∅, nil )} ∪ {(l, n : l) | n ∈ IN}. Entonces I(Φ) = ListNat. Ejemplo 33 Considerar el conjunto L de las fbf de la lógica proposicional formado a partir de un conjunto de variables proposicionales y los conectivos lógicos de implicación (⇒) y negación (¬). Podemos definir ΦH = {(∅, a ⇒ (b ⇒ a)) | a, b ∈ L}∪ {(∅, ((a ⇒ (b ⇒ c)) ⇒ (a ⇒ b) ⇒ (a ⇒ c))) | a, b, c ∈ L}∪ {(∅, (((¬a) ⇒ (¬b)) ⇒ (b ⇒ a))) | a, b ∈ L}∪ {({a ⇒ b, a}, b) | a, b ∈ L} ¿Quién es I(Φ)? Ejercicio 34 Demuestre que 1. la intersección de una colección de conjuntos Φ-cerrados es Φ-cerrado. 2. I(Φ) es el menor de los todos los conjuntos Φ-cerrados. 3.2. Esquema de inducción Cada conjunto de reglas Φ tiene un principio de inducción asociado: Definición 34.1 (Principio de Inducción por Reglas (PrIndReglas)) Sea P una propiedad cualquiera tal que si Φ : X → x y (∀y ∈ X)P (y) implica P (x), entonces P (x) es verdadero para todo x ∈ I(Φ). Teorema 35 (Validez del PrIndReglas) El PrIndReglas es válido. Dem. Sea A = {x ∈ I(Φ) | P (x)}. Notar que A ⊆ I(Φ). Asimismo, es fácil ver que, debido a PrIndReglas, A es Φ-cerrado. Por lo tanto, I(Φ) ⊆ A. Finalmente concluimos A = I(Φ). Intuitivamente, uno “justifica” la inclusión de un elemento b en I(Φ) a través de una “prueba”: la aplicaciı́on de una serie de reglas que termine en b. Por ejemplo, se entiende que 2 ∈ I(Φ), con Φ el del ejemplo 31, pues 0 ∈ I(Φ) por la primera regla, 1 ∈ I(Φ) por la segunda regla con n = 0 y porque 0 ∈ I(Φ), 2 ∈ I(Φ) por la segunda regla con n = 1 y porque 1 ∈ I(Φ). Esta intuición puede formalizarse para aquellos conjuntos de reglas que tengan un número finito de premisas. Primero debemos formalizar la noción de prueba. 12 Definición 35.1 (Φ-prueba) a0 , . . . , an es una Φ-prueba (finita) de b si 1. an = b, 2. para todo m ≤ n existe un X ⊆ {ai | i < m} tal que Φ : X → am . Es decir, una Φ-prueba de b es una secuencia finita de elementos que termina en b y, además, cada elemento de la secuencia es el conclusión de alguna regla en Φ cuyas premisas la preceden en la secuencia. Sea Φ finitario si cada regla tiene un número finito de premisas. Proposición 36 Si Φ es finitario, entonces I(Φ) = {b | b tiene una Φ − prueba}. Ejercicio 37 Demostrar la proposición. 3.3. Teorema de recursión Una vez definido un conjunto inductivo I(Φ) siguiendo la Definición 30.2 podemos considerar definir funciones recursivas de I(Φ) en cualquier conjunto A. Tal como se discutió en la Sección 1.3 deben proveerse condiciones que garanticen que las ecuaciones recursivas planteadas a modo de “definición” de la indeterminada, efectivamente lo sea. Definición 37.1 El conjunto de reglas Φ es determinı́stico si Φ : X1 → x y Φ : X2 → x implica X1 = X2 Ejemplo 38 En todos los ejemplos dados Φ es determinı́stico, salvo el caso de ΦH (ejemplo 33). Sea a ∈ L. Entonces, tenemos ΦH : ∅ → a ⇒ (a ⇒ a) y ΦH : {(a ⇒ (a ⇒ a)) ⇒ (a ⇒ (a ⇒ a)), a ⇒ (a ⇒ a)} → a ⇒ (a ⇒ a). Teorema 39 (Teorema de Recursión) Sea Φ finitario y determinı́stico. Para todo conjunto A y toda familia HΦ de funciones HΦ:X→x : I(Φ)n × An → A indexadas por reglas Φ : X → x, donde X = {y1 , . . . , yn }, existe una única función g : I(Φ) → A que satisface las ecuaciones g(x) = HΦ:X→x (y1 , . . . , yn , g(y1 ), . . . , g(yn )) para todo Φ : X → x. Dem. Primero abordamos la prueba de unicidad de g, luego la existencia de la misma. Supongamos que g1 y g2 son dos soluciones a las ecuaciones. Sea P (x) la propiedad “g1 (x) = g2 (x)”. Mostraremos que para todo x ∈ I(Φ), P (x) es verdadero. Para ello usaremos el Principio de Inducción por Reglas (PrIndReglas). Sea Φ : X → x con X = {y1 , . . . , yn } y supongamos que para todo y ∈ X, g1 (y) = g2 (y). Entonces tenemos g1 (x) = HΦ:X→x (y1 , . . . , yn , g1 (y1 ), . . . , g1 (yn )) = HΦ:X→x (y1 , . . . , yn , g2 (y1 ), . . . , g2 (yn )) hipótesis = g2 (x) hipótesis sobre g2 Pasamos ahora a considerar la existencia de g. Definimos el siguiente conjunto de reglas Φ0 : para cada Φ : X → x con X = {y1 , . . . , yn } y cada a1 , . . . , an ∈ A tenemos Φ0 : {(y1 , a1 ), . . . , (yn , an )} → (x, HΦ:X→x (y1 , . . . , yn , a1 , . . . , an )) Tomamos a I(Φ0 ) como definición de g (ie. I(Φ0 ) es el grafo de g). Debemos mostrar, para concluir, que g definida de esta manera es en efecto una función. Para ello definimos la propiedad P siguiente: P (x) es verdadero si ∃!a ∈ A tal que (x, a) ∈ g 13 Probaremos usando el PrIndReglas que P (x) es verdadero para todo a ∈ A. Sea Φ : X → x con X = {y1 , . . . , yn } y supongamos que para todo yi ∈ X, existe un único ai tal que g(yi ) = ai . Supongamos que existe c 6= d tal que g(x) = c y g(x) = d. Por definición de g, esto es lo mismo que decir, HΦ:X→x (y1 , . . . , yn , a1 , . . . , an ) y HΦ:X 0 →x (z1 , . . . , zm , b1 , . . . , bm ) = c = d Pero como Φ es determinı́stico, sabemos que X = X 0 . Luego m = n, yi = zi para todo 1 ≤ i ≤ n y, por la hipótesis de inducción, ai = bi . Luego c = d y concluı́mos usando el PrIndReglas. 3.4. Relación con la presentación informal de Induccion Estructural La noción de conjunto inductivo introducido de manera informal en la Sección 2 puede formalizarse a través de los conjuntos inductivos definidos por reglas. Dado un conjunto de esquemas de regla según se introdujo en la Definición 18.1 definimos un conjunto Φ de reglas del siguiente modo: 1. cada instancia de esquema de regla básico se corresponde con una regla ∅ → x, donde x es la instancia introducida por el esquema de regla básico. 2. cada instancia de esquema de regla inductivo se corresponde con una regla X → x donde X es la instancia de las premisas del esquema de regla inductivo y x es la instancia de la conclusión. Ejemplo 40 En el caso de la definición inductiva del ejemplo 21 procedemos de la siguiente manera. Sea A = C ∪ V ∪ {(, ), ∗, −}, donde C es el conjunto de constantes y V el de variables. Sea A∗ el conjunto de secuencias de sı́mbolos de A. El primer esquema de regla básico, a saber el que dice “Cada constante numérica en C estén EXP” se corresponde con las reglas ΦEXP : ∅ → c, for cada c ∈ C. El esquema de regla básico que dice que “Cada variable en V está en EXP” se corresponde con las reglas ΦEXP : ∅ → v, for cada v ∈ V . El esquema de regla inductivo que dice que “Si e está en EXP, entonces (e) está en EXP” se corresponde con las reglas ΦEXP : {a} → (a), por cada a ∈ A∗ . El esquema de regla inductivo que dice que “Si e1 y e2 están en EXP, entonces e1 + e2 está en EXP” se corresponde con las reglas ΦEXP : {a1 , a2 } → a1 + a2 , por cada a1 , a2 ∈ A∗ . De manera análoga se procede con el esquema de regla inductivo restante. 4. Inducción transfinita En esta sección presentaremos una forma más general de inducción que aquella vista para los números naturales, a saber inducción transfinita1 . Hemos visto que el principio de inducción sobre los naturales es una consecuencia del principio de buen ordenamiento de los naturales (Teorema 9). Esto vale para cualquier conjunto bien ordenado. Recordemos la definición de conjunto bien ordenado. Definición 40.1 Un conjunto A es bien ordenado si existe un orden parcial ρ ⊆ A × A tal que (A, ρ) es un poset bien ordenado (ie. todo subconjunto no vacı́o tiene un mı́nimo). Un buen orden sobre un conjunto A le impone una estructura “lineal” en el siguiente sentido: todo para de elementos de A son comparables. En otras palabras, si (A, ρ) es bien ordenado, entonces ρ es total: en efecto, dado el subconjunto {a, b} de elementos de A, por la condición de bien ordenado o bien (a, b) ∈ ρ o bien (b, a) ∈ ρ. Ejemplo 41 El PrBONN dice que IN es bien ordenado. Zermelo demostró un famoso resultado que dice ası́. Teorema 42 (Zermelo) Todo conjunto puede ser bien ordenado. 1 Seguimos la nomenclatura de [Hal60]. 14 Este teorema resulta equivalente a otros principios conocidos en teorı́a de conjuntos, entre los que podemos mencionar el Lema de Zorn y el Axioma de Elección [FS91]. Lo interesante de contar con un buen orden para un conjunto es que, siguiendo el ejemplo de IN, podemos disponer de un esquema de inducción para el mismo. 4.1. Esquema de inducción El principio de inducción asociado a un conjunto bien ordenado es el Principio de Inducción Transfinita. Antes de formularlo introducimos la siguiente notación. Anotamos ρ1 la relación definida como ρ − {(a, a) | a ∈ A}. Si (A, ρ) es bien ordenado y a ∈ A, entonces definimos seg(a) = {b ∈ A | (b, a) ∈ ρ1 } (el segmento inicial determinado por a). Definición 42.1 (Principio de Inducción Transfinita) Sea B ⊆ A, con A bien ordenado (con orden ρ). Supongamos que para todo x ∈ A, seg(x) ⊆ B implica x ∈ B. Entonces B = A. La validez del principio de inducción transfinita se muestra de manera análoga a la implicación PrBONN⇒PrIndBásico. Supongamos que A − B no es vacı́o. Entonces, por la hipótesis de que ρ es un buen orden, A − B tiene un mı́nimo a. Pero entonces {b | (b, a) ∈ ρ1 } ⊆ B (notar que {b | (b, a) ∈ ρ1 } 6= ∅ pues sino por hipótesis a ∈ B, luego a ∈ / A − B). Luego por el Principio de Inducción Transfinita, a ∈ B. Esto arroja una contradicción pues a no puede pertenecer a B y a A − B. Por lo tanto, A − B es vacı́o. Si bien el principio de inducción transfinita en IN coincide con el principio de inducción sobre los naturales, el primero de éstos es más general pues hace referencia a cualquier conjunto que sea bien ordenado. Ejemplo 43 Un ejemplo de un conjunto sobre el cual podemos aplicar el Principio de Inducción Transfinita pero no el de naturales serı́a el conjunto IN+ = IN ∪ {ω} con la relación de orden usual de IN extendida con la cláusula: n < ω, para todo n ∈ IN. Observar que el Principio de Inducción PrIndBásico no basta para probar propiedades sobre IN+ . Observación 44 El orden parcial bien ordenado sobre (A, ρ) cuya existencia se sigue del teorema de Zermelo implica que el orden es, además, total (Definición 66.3). Es decir, todo par de elementos del conjunto es comparable. En efecto, dado que todo subconjunto de A tiene mı́nimo, para cualquier conjunto {a, b}, con a, b ∈ A, tendremos (a, b) ∈ ρ o (b, a) ∈ ρ. El esquema de inducción que veremos en la Sección 5 (el Principio de Inducción Bien Fundado) no impone tal condición. 4.2. Teorema de recursión La noción de función recursiva vista hasta ahora tiene una versión en el presente marco también: recursión transfinita. El esquema es parecido, en su formulación, al Principio de Inducción Completa. Definir una función utilizando el Teorema de Recursión Transfinita es definir una función en un a ∈ A cuyo valor viene dado por la aplicación de una función parámetro H aplicada a todos los elementos predecesores de a. Para poder formular esto de una manera precisa introducimos un poco de notación adicional. Definición 44.1 Sea A un conjunto bien ordenado y X un conjunto arbitrario. 1. Sea a un elemento de A. Una secuencia de tipo a en X es una función que va del segmento inicial de a en X (ie. una función en [seg(a) → X]). 2. Si g es una función de A en X, entonces notamos con g|a a la restricción de esa función al segmento inicial de a. 3. Una función de secuencia de tipo A en X es una función f cuyo dominio son todas las secuencias de tipo a en X, para todo elemento a ∈ A, y cuyo rango está en X. Seguidamente formulamos el Teorema de Recursión Transfinita. Respeta el esquema de la formulación del Teorema de Recursión (Teorema 11) simplemente que ahora la función H debe utilizar el valor de g en todos los elementos precedentes a a (en el Teorema de Recursión, H se aplicaba solamente al valor de g en n). 15 Teorema 45 (Teorema de Recursión Transfinita) Sea A un conjunto bien ordenado y H una función de secuencia de tipo A en un conjunto X. Existe una única función g : A → X que satisface las siguientes ecuaciones recursivas g(a) = H(g|a) para cada a en A. 5. Inducción bien fundada (“Well-founded Induction”) Sea ρ ⊆ A × A una relación binaria sobre A. Recordemos que anotamos ρ1 la relación definida como ρ − {(a, a) | a ∈ A}. Asimismo, anotamos ρ−1 a la relación {(x, y) | (y, x) ∈ ρ}, es decir, ρ−1 es la relación inversa de ρ. Un conjunto bien fundado es un conjunto munido de una relación binaria ρ tal que no existen ρ-secuencias infinitas descendentes. Definición 45.1 (Conjunto bien fundado) Una ρ−1 -secuencia infinita es una secuencia s : IN → A tal que (s(n + 1), s(n)) ∈ ρ1 . Un conjunto bien fundado es un par (A, ρ), donde ρ es una relación binaria sobre A tal que no existen ρ−1 -secuencias infinitas. Ejemplo 46 1. Todo conjunto finito es bien fundado. 2. (IN, ≤) también es bien fundado. 3. (IN, |) donde n | m si n divide a m es bien fundado. Sin embargo, (Z Z, ≤) no es bien fundado. Ejercicio 47 Probar que (IN × IN, ≺) donde ≺ se define como (n, m) ≺ (n0 , m0 ) sii n < n0 o (n = n0 y m < m0 ) es bien fundado. 5.1. Esquema de inducción Sea A un conjunto y ρ ⊆ A × A una relación binaria sobre A. Escribimos segρ (x) para hacer referencia al conjunto {y ∈ A | (y, x) ∈ ρ1 }. Notar que se trata de la misma noción de segmento inicial (denotado seg) introducido antes. Simplemente que, ahora, se le agrega el nombre de la relación sobre la cual predica, como subı́ndice. Teorema 48 (Principio de Inducción para Conjuntos Bien Fundados) Sea (A, ρ) un conjunto bien fundado. Sea P una propiedad sobre A tal que: Para todo a ∈ A, si P (b) es verdadero para todo b ∈ segρ (a), entonces P (a) es verdadero. Entonces, P (a) es verdadero para todo a ∈ A. Dem. Por contradicción. Supongamos que P es una propiedad que cumple con la hipótesis y, además, P (x) es falso para algún x ∈ A. Definiremos una ρ−1 secuencia infinita {xn | n ≥ 1} tal que para todo n, P (xn ) es falso. Comenzamos fijando x1 = x. Suponiendo que ya hemos definido xn de tal modo que P (xn ) es falso, luego, por nuestra hipótesis sobre P , debe existir y ∈ seg(xn ) tal que P (y) es falso. Elegimos un tal y y fijamos xn+1 = y. Tenemos entonces (xn+1 , xn ) ∈ ρ y xn+1 6= xn (debido a que xn+1 ∈ seg(xn )) y, asimismo, P (xn+1 ) es falso (debido a nuestra selección de y). Repitiendo este proceso podemos definir una función f : A → A tal que f (y) = x si P (x) es verdadero y definiendo f (y) como algún z ∈ seg(y) tal que P (z) es falso, si P (y) es falso. Luego x1 = x y xn+1 = f (xn ). Por lo tanto, asumiendo la existencia de un elemento x tal que P (x) es falso, podemos obtener una ρ−1 secuencia infinita de elementos de A tal que P es falso para cada uno de ellos. Dado que el poset es bien fundado, no tiene ninguna ρ−1 secuencia infinita y, por lo tanto, no puede haber un x tal que P (x) es falso. En el siguiente ejemplo notar que la relación ρ no es total. 16 Ejemplo 49 Sea A = {n ∈ IN | n ≥ 2}. Sea ρ la relación definida de la siguiente manera: (n, m) ∈ ρ si n divide a m y n < m. Claramente (A, ρ) es bien fundada. Usaremos inducción en (A, ρ) para mostrar que cada elemento de A puede escribirse como producto de uno o más primos. Supongamos que n ∈ A y que todo número en segρ (n) puede escribirse como producto de uno o más primos. Si n es primo, puede escribirse como producto de un único primo, a saber sı́ mismo. Si n no es primo, entonces puede ser escrito como n = m × p donde m y p pertenecen a segρ (n). Por la Hipótesis Inductiva, m y p son productos de uno o más primos. Combinando estas factorizaciones vemos que n es producto de uno o más primos. Ejercicio 50 Sea (A, ←) un conjunto bien fundado. Sea ⇐ la clausura reflexiva, transitiva de ←. En otras palabras: c⇐b b⇐a b←a a⇐a b⇐a c⇐a Supongamos que para todo a, b, c ∈ A, si b ← a y c ← a, entonces existe d ∈ A tal que d ⇐ b y d ⇐ c. En diagrama: b ^= == == == = | a d [c c Usando inducción bien fundada sobre (A, ←), probar que ← es confluente: para todo a, b, c ∈ A, si b ⇐ a y c ⇐ a, entonces existe d ∈ A tal que d ⇐ b y d ⇐ c. En diagrama: | d c[ b bZ == ==== ==== ==== c 5.2. 5.2.1. a { Relación con otros principios de inducción Inducción transfinita Definición 50.1 (Poset bien fundado) Un poset bien fundado es un poset (A, ρ) tal que no existen ρ−1 secuencias infinitas. Observar que un poset bien fundado (A, ρ) no es lo mismo que un poset bien ordenado (Definición 66.2). En efecto, todo poset bien ordenado también es bien fundado (ver Corolario 52). Sin embargo, no vale la inversa, es decir hay conjuntos que son bien fundados pero que no son bien ordenados. Por ejemplo, cualquier conjunto finito A munido del orden discreto ((a, b) ∈ ρ sii a = b) es bien fundado (pues no tiene ninguna ρ−1 -secuencia infinita). Sin embargo, no es bien ordenado porque cualquier par de elementos de A son incomparables. Recordemos la definición de un elemento minimal: Definición 50.2 Sea (A, ρ) un poset y B ⊆ A. Un elemento a ∈ B es minimal en B si no existe b ∈ B tal que (b, a) ∈ ρ1 . Una forma equivalente de formular posets bien fundados es la siguiente Teorema 51 Un poset (A, ρ) es bien fundado si y solo si cada subconjunto no vacı́o tiene un elemento minimal. Antes de probar este teorema cabe aclarar que requerir que cada subconjunto no vacı́o tenga un elemento minimal no es lo mismo que requerir que tenga un mı́nimo elemento. Si bien todo mı́nimo elemento es un elemento minimal, no todo elemento minimal es un mı́nimo elemento. 17 Dem. Supongamos que (A, ρ) es un poset bien fundado y que existe un subconjunto no vacı́o K de A que no tiene elementos minimales. Sea x0 un elemento cualquiera de K. Tal elemento existe pues K es no vacı́o. Dado que x0 no es minimal, existe x1 ∈ K tal que (x1 , x0 ) ∈ ρ1 . Dado que x1 no es minimal, existe x2 ∈ K tal que (x2 , x1 ) ∈ ρ1 . Esta construcción puede continuar indefinidamente. De esta manera, podemos construir una secuencia descendente infinita s : IN → K, con s(n) = xn para todo n ∈ IN. Supongamos que (A, ρ) es un poset tal que cada subconjunto no vacı́o tiene un elemento minimal. Asimismo, supongamos que existe una cadena descendente infinita s : IN → A an (A, ρ). El conjunto S = {s(n) | n ∈ IN} es un subconjunto no vacı́o de (A, ρ). Asimismo, por definición, no tiene elementos minimales. Esto contradice nuestra hipótesis. Corolario 52 Todo poset bien ordenado es un conjunto bien fundado. Dem. Sea (A, ρ) un poset bien ordenado. Pro definición, todo subconjunto no vacı́o de A tiene un mı́nimo elemento. Dado que todo mı́nimo elemento es un elemento minimal, deducimos que todo subconjunto de A tiene un elemento minimal. Aplicando el Teorema 51 concluı́mos que (A, ρ) es un poset bien fundado. En particular, A es un conjunto bien fundado. Como consecuencia del corolario, el Principio de Inducción Bien Fundado también es aplicable a los conjuntos bien ordenados. 5.2.2. Inducción por reglas En esta subsección veremos que Cada uso del Principio de Inducción Bien Fundado puede ser imitado por el Principio de Inducción por Reglas (Proposición 53). Si Φ es determinı́stico, cada uso del Principio de Inducción por Reglas puede ser imitado por el Principio de Inducción Bien Fundado (Proposición 54). Sea (A, ρ) un conjunto bien fundado. Definimos el conjunto de reglas Φρ como aquellas reglas (segρ (a), a), para cada a ∈ A. Proposición 53 (A, ρ) = I(Φρ ) Dem. Por definición tenemos que I(Φρ ) ⊆ (A, ρ). Probamos la vuelta: (A, ρ) ⊆ I(Φρ ). Supongamos que a 6∈ I(Φρ ). Vamos a construir una ρ−1 -secuencia infinita aρ−1 a0 ρ−1 a1 ρ−1 . . . con lo cual contradecimos el hecho de que (A, ρ) es bien fundado. Dado que a 6∈ I(Φρ ), sabemos que segρ (a) 6⊆ I(Φρ ). Notar además que segρ (a) no es vacı́o (pues sino a ∈ I(Φρ )). Por lo tanto, existe un a0 tal que aρ−1 a0 y a0 6∈ I(Φρ ). Repitiendo este proceso podemos hallar un a1 tal que a0 ρ−1 a1 y a1 ∈ / I(Φρ ). Repitiendo indefinidamente obtenemos aρ−1 a0 ρ−1 a1 ρ−1 . . .. Con esto queda probado que el Principio de Inducción por Reglas es aplicable siempre que el de buena fundación lo sea. Ahora consideramos la vuelta. Recordamos la noción de conjunto de reglas determinı́stico presentada en la Sección 3 (Definición 37.1) : El conjunto de reglas Φ es determinı́stico si Φ : X1 → x y Φ : X2 → x implica X1 = X2 Sea A el conjunto de las conclusiones de reglas en Φ. Dados x, y ∈ A definimos (x, y) ∈ ρ si Φ : X → y (5) para algún conjunto X tal que x ∈ X y X ⊆ A. Con esta definición de ρ tenemos que Φρ , según se definió al comienzo de esta subsección, es el conjunto de las reglas X → y en Φ tal que X ⊆ A. Proposición 54 Para Φ determinı́stico, tenemos I(Φ) = I(Φρ ) 18 Dem. Para probar que I(Φ) ⊆ I(Φρ ) basta probar que I(Φρ ) es Φ-cerrado y luego concluir apelando al Principio de Inducción por Reglas. Sea Φ : X → y y supongamos que para todo x ∈ X, x ∈ I(Φρ ). Dado que I(Φρ ) ⊆ A, tenemos entonces que X ⊆ A. Luego por definición de Φρ , Φρ : X → y. Luego y ∈ I(Φρ ) por ser I(Φρ ) Φρ -cerrado. Para probar I(Φρ ) ⊆ I(Φ) basta probar que I(Φ) es Φρ -cerrado y luego concluir apelando al Principio de Inducción por Reglas. Ello es consecuencia inmediata del hecho de que Φρ es un subconjunto de Φ. Finalmente probamos que (I(Φρ ), ρ) es bien fundado. Como consecuencia de ello, partiendo de un conjunto de reglas Φ, llegamos a probar que I(Φ) = (I(Φρ ), ρ), donde ρ se define a partir de Φ y, además, (I(Φρ ), ρ) es bien fundado. Lema 55 (I(Φρ ), ρ) es bien fundado. Dem. Consideremos la propiedad sobre I(Φρ ) definida de la siguiente manera: P (x) =“no hay ρ−1 -secuencias infinitas comenzando en x” La prueba del lema consiste en verificar que P vale para todo elemento I(Φρ ) utilizando el Principio de Inducción por Reglas. Supongamos que Φρ : X → y y que para todo x ∈ X, P (x) es verdadero. Supongamos, asimismo, que P (y) es falso. Es decir, que existe una ρ−1 -secuencia infinita y = x1 , x2 , . . . comenzando en y. Por definición de ρ (5), sabemos que x2 ∈ X. Entonces tenemos una ρ−1 -secuencia infinita comenzando en x2 . Esto contradice la Hipótesis Inductiva. Por lo tanto no puede existir tal x2 , y en consecuencia tampoco la ρ−1 -secuencia infinita comenzando en y. 6. Definiciones inductivas como punto fijo de operadores En la sección 3 definimos a un conjunto inductivo como el menor conjunto Φ-cerrado, para un conjunto Φ de reglas dado. Una manera alternativa de proceder es, definir un operador ψΦ que, dado un conjunto Y ⊆ A (A es nuestro universo), nos da el conjunto de “consecuencias” de Y según las reglas de Φ: ψΦ (Y ) = {x ∈ A | ∃Φ : X → x con X ⊆ Y } Ejemplo 56 Por ejemplo, si Φ = {(∅, 0)} ∪ {(n, n + 1) | n ∈ IN} entonces ψΦ (∅) = {0}, ψΦ ({2}) = {0, 3} y ψΦ ({2, 3}) = {0, 3, 4}. Una vez que tenemos este operador, podemos preguntarnos por el menor X ⊆ A tal que si le aplico el operador no obtengo nada nuevo, o bien, todo lo que obtengo ya estaba en X: ψΦ (X) ⊆ X Este serı́a el conjunto definido inductivamente por ψΦ . Retomando el ejemplo, observar que ψΦ (IN) = IN. 6.1. Esquema de definición de conjuntos Sea (A, ≤) un poset. En lo que resta de esta sección hablaremos de A para referirnos al poset (A, ≤). Una función ψ : A → A es monótona si preserva el orden (ie. x ≤ y implica ψ(x) ≤ ψ(y)). Siguiendo la intuición sobre el operador como inferidor de conclusiones a partir de hipótesis, la monotonı́a nos dice que si incrementamos nuestras hipótesis de partida inferiremos tanto o más datos que antes. Ejemplo 57 Sea A = ℘({1, 2, 3}), ≤=⊆ y ψ(B) = B ∪ {2}. Entonces ψ es monótona. Además, ψ({1}) = {1, 2} y ψ({2}) = {2}. Asimismo, {1} ⊆ ψ({1}). Sea B ⊆ A, entonces escribimos inf(B) para denotar al ı́nfimo de B, es decir, la mayor de las cotas inferiores de B (cf. Definición 65.2). Asimismo, escribimos sup(B) para la menor de las cotas superiores de B. Un poset A se llama un reticulado completo si todos los subconjuntos de A tienen ı́nfimo (o, lo que es lo mismo en vistas del lema 66, supremo). Si ψ : A → A es una endofunción (función de un conjunto en sı́ mismo) sobre el poset A, decimos que x ∈ A es un punto fijo de ψ si ψ(x) = x; un pre punto fijo de ψ (denotado µψ) si ψ(x) ≤ x; y un post punto fijo de ψ (denotado νψ) si x ≤ ψ(x). 19 Ejemplo 58 Siguiendo el Ejemplo 57, µψ = {2} y νψ = {1, 2, 3}. Tal como comentamos antes, buscamos el menor x talque ψ no genera nada nuevo: el menor x talque ψ(x) ≤ x. Bajo la terminologı́a recién introducida, buscamos el menor pre-punto de ψ. Si A es un reticulado completo y ψ : A → A es monótona, entonces el menor pre-punto fijo de ψ siempre existe. Teorema 59 Si ψ : A → A es una endofunción monótona sobre un reticulado completo. Existe el menor pre-punto fijo de ψ y el mayor post punto fijo de ψ y sus definiciones están dadas por µψ = inf({x ∈ A | ψ(x) ≤ x}) and νψ = sup({x ∈ A | x ≤ ψ(x)}) Dem. A partir de la definición de µψ sabemos que ∀x ∈ A.ψ(x) ≤ x ⇒ µψ ≤ x Por lo tanto, usando monotonı́a de ψ, tenemos que para todo x ∈ A, si ψ(x) ≤ x entonces ψ(µψ) ≤ ψ(x), y luego ψ(µψ) ≤ x. Finalmente, por definición de ı́nfimo, ψ(µψ) ≤ µψ. Observación 60 En realidad µψ no solamente es un pre punto fijo, sino que también es un punto fijo. Para ello debe probarse que µψ ≤ ψ(µψ) (sabemos que ψ(µψ) ≤ µψ, concluimos usando antisimetrı́a de ≤). Sabemos que ψ(µψ) ≤ µψ, luego por monotonı́a de ψ, ψ(ψ(µψ)) ≤ ψ(µψ). Entonces ψ(µψ) es un pre punto fijo. Y dado que µψ es el menor de ellos, concluimos que µψ ≤ ψ(µψ). La ventaja de presentar el Teorema 59 en términos de pre puntos fijos es que el post punto fijo se presenta como una noción dual. Si bien en este apunte no ahondaremos en post puntos fijos debemos mencionar que en Ciencias de la Computación han adquirido mucha importancia, especialmente en el ámbito de semántica para cálculos de procesos concurrentes [Fok00, JR97]. Ası́ como los pre puntos fijos sirven para definir conjuntos inductivos (cf. Definición 61.1), los post punto fijos sirven para definir conjuntos coinductivos, la noción dual a la de conjunto inductivo. Consultar [Cro98, JR97] para más datos sobre inducción y coinducción. Observación 61 El lector que conozca la teorı́a de CPOs (complete partial orders) reconocerá que las construcciones de punto fijo expuestas aquı́ se pueden desarrollar en el marco (más general2 ) de los CPOs. Un CPO es un poset (A, ≤) talque 1. A tiene un mı́nimo elemento (comúnmente denotado ⊥) y 2. para toda cadena C de A, existe sup(C). El resultado análogo al Teorema 59 en el marco de los CPOs es conocido como el Teorema de Punto Fijo de Knaster-Tarski [FS91, Teorema 3.9.9] (aborda la existencia de un mı́nimo punto fijo). La ventaja de presentar los resultados de pre puntos fijos en el marco de los reticulados completos es que el pre punto fijo puede expresarse fácilmente en términos de la operación de ı́nfimo. El Teorema de Punto Fijo de Knaster Tarski asevera la existencia de un mı́nimo punto fijo de una función monótona ψ en un CPO, pero no nos dice cómo se obtiene. Si se imponen condiciones adicionales sobre ψ puede decirse algo más sobre cómo se obtiene el mı́nimo punto fijo. Por ejemplo, si se exige que ψ sea continua3 entonces puede probarse fácilmente [FS91, Teorema 4.13.2] que sup({⊥, ψ(⊥), ψ 2 (⊥), . . .}) es un mı́nimo punto fijo de ψ (cf Teorema 64). Una manera alternativa de decir algo más sobre cómo se obtiene el mı́nimo punto fijo es considerar versiones menos generales del Teorema de Knaster Tarski. Por ejemplo, en lugar de predicar sobre CPOs considerar puntos fijos de operadores monótonos sobre reticulados completos. Esa es la vı́a adoptada en el presente apunte. 2 Todo reticulado completo (A, ≤) es un CPO (verificar!). Sin embargo hay CPOs que no son reticulados completos. Un ejemplo sencillo es el “flat” CPO (IN ∪ {⊥}, ≤) con ⊥ ≤ n para todo n ∈ IN ∪ {⊥}. 3 Una función ψ : A → A es continua si para toda cadena C del CPO (A , ρ ) el sup(ψ(C)) existe en (A , ρ ) y ψ(sup(C)) = 1 2 1 1 2 2 sup(ψ(C)) (ψ “preserva” supremos). Toda función continua es monótona pero hay funciones monótonas que no son continuas. 20 6.2. Relación con inducción por reglas Sea A un conjunto y sea Φ un conjunto de reglas sobre A (tal como se definió en la Sección 3). Claramente el poset (℘(A), ⊆) es un reticulado completo. Sea ψΦ (Y ) = {x ∈ A | ∃Φ : X → x and X ⊆ Y } Es fácil verificar que ψΦ es monótona en ℘(A). Por lo tanto, podemos definir lo siguiente. Definición 61.1 Dado un conjunto A y un conjunto Φ de reglas sobre A, el subconjunto de A definido inductivamente por Φ es el mı́nimo pre punto fijo de ψΦ (ie. µψΦ ). Esta manera de definir conjuntos coincide con la Definición 30.2. La manera más directa de ver esto es observar que ψ(B) ⊆ B sii B es Φ-cerrado. Lema 62 I(Φ) = µψΦ El Teorema 59 nos informa, además, que el mı́nimo pre punto fijo es de la forma µψ =Tinf({x ∈ A | ψ(x) ≤ x}). Dado que la operación de ı́nfimo viene dada por la intersección, tenemos que µψ = {x ∈ A | ψ(x) ≤ x}. Hay un modo más operacional de entender el punto fijo de un operador. En el ejemplo del principio de esta sección, Ejemplo 56, observamos que ψΦ (∅) = {0}(= S1 ) ψΦ (S1 ) = {0, 1}(= S2 ) ψΦ (S2 ) = {0, 1, 2}(= S3 ) ... Es decir, comenzando con el conjunto vacı́o, podemos iterar la aplicación de ψΦ y cada iteración arroja una (mejor) aproximación del pre punto fijo. A mayor número de iteraciones, mejor es la aproximación. En el lı́mite de esta secuencia de aproximaciones podemos encontrar a la mejor de todas ellas, aquella que no puede mejorarse. Todo esto puede formalizarse a través de la noción de función continua. Definición 62.1 Una cadena C en ℘(A) es una secuencia A1 ⊆ A2 ⊆ A3 ⊆ . . . de elementos de ℘(A). En ese caso escribimos ψ(C) S S para denotar el conjunto {ψ(A1 ), ψ(A2 ), . . .}. Una función ψ : ℘(A) → ℘(A) se dice continua si ψ( C) = ψ(C). Es decir, un operador es continuo si preserva supremos (o lı́mites). Observación 63 Todo operador continuo es monótono. Supongamos que A1 ⊆ A2 . Entonces C = {A1 , A2 } es una cadena. Dado que ψ es continua, tenemos ψ(A1 ) ⊆ ψ(A1 ∪ A2 ) (A1 ⊆ A2 ) = ψ(A1 ) ∪ ψ(A2 ) (ψ continua) ⊆ ψ(A2 ) (A1 ⊆ A2 ) S Teorema 64 Sea A un conjunto. Si ψ : ℘(A) → ℘(A) es continuo, entonces {∅, ψ(∅), ψ(ψ(∅)), . . .} es el menor punto fijo de ψ. S Dem. Primero verificamos que X = {∅, ψ(∅), ψ(ψ(∅)), . . .} es un punto fijo de ψ. S ψ(X) = S{ψ(∅), ψ(ψ(∅)), ψ(ψ(ψ(∅))), . . .} (contin.) S = {∅, ψ(∅), ψ(ψ(∅)), . . .}) prop. de = X Resta verificar que X es el menor punto fijo de ψ. Supongamos, entonces, que Y es un punto fijo cualquiera de ψ. Es decir, ψ(Y ) = Y . Probaremos la siguiente propiedad P (n) = ψ n (∅) ⊆ Y utilizando el Principio de Inducción Básico sobre IN. El caso n = 0 vale trivialmente (pues ∅ ⊆ Y para cualquier conjunto Y ). Supongamos que ψ n (∅) ⊆ Y . Usando monotonı́a de ψ, deducimos que ψ n+1 (∅) ⊆ ψ(Y ). Dado que Y es un punto fijo de ψ, obtenemos ψ n+1 (∅) ⊆ Y . Apelamos al Principio de Inducción Básico sobre IN para concluir que P es verdadero para todo número natural n. Dado que Y es una cota superior para {∅, ψ(∅), ψ(ψ(∅)), . . .}, concluimos que X ⊆ Y (pues X es la mı́nima cota superior de ese conjunto). Por lo tanto, X es el menor punto fijo de ψ. 21 6.3. Esquema de inducción Predicados admisibles. Definición. Ejemplos. El Principio de Inducción de Punto Fijo. 6.4. Teorema de recursión Intuición: funciones recursivas como lı́mites de cadenas de funciones aproximadas. CPO de funciones parciales ([A B], v) (flat CPO, funciones totales estrictas, iso entre CPO de funciones totales estrictas y CPO de fuciones parciales). Funcionales. Funciones recursivas como punto fijo de funcionales. 7. Conclusiones Este apunte presenta, de manera (notablemente) sintética, algunas técnicas relacionadas con la definición de conjuntos inductivos y de funciones recursivas sobre los mismos. Un objetivo secundario es el de indicar bibliografı́a que el lector interesado pueda consultar en caso de querer profundizar en algunos de los temas. Algunos tópicos relevantes que no hemos tocado: Inducción transfinita sobre ordinales. Ver [Hal60] para más detalles. Coinducción. En una definición inductiva se identifican funciones constructoras que permiten construir elementos del conjunto. En una definición coinductiva se identifican funciones llamadas de observación que, dado un elemento del conjunto, permiten observar algo sobre el mismo. La observación reiterada de elementos determina quienes son: es en este sentido que se define un conjunto por coinducción. Los elementos de un conjunto coinductivo son, en general, de naturaleza infinita. El ejemplo clásico es el de las listas infinitas (sobre un conjunto determinado A). La función de observación es la que la toma una lista y retorna su cabeza. A diferencia de los conjuntos inductivos, se busca el conjunto más grande que resulte de observar cosas de su dominio. En efecto, mientras más se observe, más podrá determinarse lo observado. Ver [Cro98, JR97]. Algebras y coalgebras de functores. Una formulación abstracta y muy elegante de las nociones de conjunto inductivo (coinductivo) e inducción (coinducción). Se basa en algunas nociones básicas de teorı́a de categorı́as. Una referencia didáctica (y que no asume conocimiento alguno de categorı́as!) es [JR97]. A. Definiciones varias sobre conjuntos ordenados Definición 64.1 (Orden parcial, poset) Un orden parcial sobre un conjunto A es un una relación ρ ⊆ A×A que es reflexiva, antisimétrica y transitiva. El par (A, ρ) se conoce como un conjunto parcialmente ordenado (poset). Ejemplo 65 1. Sea IN = {0, 1, 2, . . .} el conjunto de los números naturales. Observar que (IN, ≤) es un poset (donde ≤ denota el orden “usual”). 2. (℘(M ), ⊆) es un poset para cualquier conjunto M . 3. Sea [A * B] el conjunto de todas las funciones parciales de A en B. Dados f, g ∈ [A * B], definimos f v g si Dom(f ) ⊆ Dom(g) y, para todo x ∈ Dom(f ), f (x) = g(x). Verifique que ([A * B], v) es un poset. 4. Sea Σ∗ el conjunto de todas las palabras sobre el alfabeto Σ. Dados u, v ∈ Σ∗ , escribimos u v si u es un prefijo de v. Verifique que (Σ∗ , ) es un poset. Definición 65.1 (cota superior, inferior) Sea (A, ρ) un poset y B ⊆ A. El conjunto de las cotas superiores de B, denotado B sup , son todos los elementos y ∈ A tal que (x, y) ∈ ρ para todo x ∈ B. El conjunto de las cotas inferiores de B, denotado B inf , son todos los elementos y ∈ A tal que (y, x) ∈ ρ para todo x ∈ B. 22 Definición 65.2 (Supremo, Infimo) El subconjunto B de un poset (A, ρ) tiene una mı́nima cota superior (llamado supremo) x si B ∩ (B s )i = {x}. Usamos sup(B) para denotar a x, si existe. B tiene una mayor cota inferior (llamado ı́nfimo) x si B i ∩ (B i )s = {x}. Usamos inf(B) para denotar a x, si existe. Lema 66 Un poset A tiene ı́nfimo para todo los subconjuntos sii tiene supremos para los mismos. Dem. Sea B un subconjunto cualquiera de A. Si contamos con ı́nfimos definimos sup(B) = inf({x | x ∈ A y ∀b ∈ B.b ≤ x}) Asimismo, si contamos con supremos definimos inf(B) = sup({x | x ∈ A y ∀b ∈ B.x ≤ b}) El lector podrá verificar que estas definiciones son pertinentes. Definición 66.1 (Mı́nimo, máximo) Sea (A, ρ) un poset y B ⊆ A. El elemento mı́nimo (máximo) del subconjunto B del poset (A, ρ) es el único elemento en B ∩ B inf (B ∩ B sup ), si existe. Definición 66.2 (Poset bien ordenado) Un poset (A, ρ) se dice bien ordenado (well-ordered), si todo subconjunto B no vacı́o del mismo tiene un mı́nimo elemento. Definición 66.3 (Cadenas, Orden Total (o Lineal)) Un poset bien ordenado es una cadena: para todo a, b ∈ A, (a, b) ∈ ρ o (b, a) ∈ ρ (en este caso se dice que ρ es una relación de orden lineal (o total )). Referencias [Acz77] Peter Aczel. Handbook of Mathematical Logic, chapter An Introduction to Inductive Definitions, pages 739–782. North-Holland Publishing Company, 1977. [Cro98] Roy Crole. Lectures on [co]induction and [co]algebras. Technical Report 1998/12, Department of Mathematics and Computer Science, University of Leicester, 1998. [Fok00] W.J. Fokkink. Introduction to Process Algebra. Texts in Theoretical Computer Science (EATCS Series). Springer-Verlag, 2000. [FS91] Peter Fejer and Dan Simovici. Mathematical Foundations of Computer Science, volume I (Sets, Relations, and Induction) of Texts and Monographs in Computer Science. Springer-Verlag, 1991. [Hal60] Paul Halmos. Naive Set Theory. The University Series in Undergraduate Mathematics. D. Van Nostrand Company, 1960. [JR97] Bart Jacobs and Jan Rutten. A tutorial on (co)algebras and (co)induction. In EATCS Bulletin, volume 62, pages 222–259, 1997. 23