Lógica y Computabilidad
|
|
|
- Rubén Cordero Páez
- hace 8 años
- Vistas:
Transcripción
1 Lógica y Computabilidad Santiago Figueira Departamento de Computación, FCEyN, UBA verano
2 Contenido - Computabilidad 1. Introducción, máquinas de Turing, funciones parciales, funciones Turing computables, ejemplos, p Funciones iniciales, composición, recursión, clases PRC, funciones primitivas recursivas, p Sumatorias y productorias, cuantificadores acotados, minimización acotada, codificación de pares y secuencias, p Lenguaje S, estado, descripción instantánea, cómputo, funciones parciales computables, minimización no acotada, p Codificación de programas, Halting problem, diagonalización, tesis de Church, programa universal, step counter, snapshot, p Teorema de la forma normal, teorema del parámetro, teorema de la recursión y aplicaciones, teorema del punto fijo, p Conjuntos c.e., teorema de la enumeración, teorema de Rice y aplicaciones, p Opcional - Oráculos, reducibilidad de Turing, jerarquía aritmética, problema de Post, p
3 Contenido - Lógica Lógica proposicional 1. Lenguaje de lógica proposicional, semántica, tautología, consecuencia semántica, conjunto satisfacible, sistema axiomático SP, consecuencia sintáctica, p Teorema de la deducción, lema de Lindenbaum, completitud de SP, compacidad, p. 165 Lógica de primer orden 1. Lenguaje de lógica de primer orden, términos, fórmulas, variables libres y ligadas, interpretación, valuación, niveles de verdad, consecuencia semántica, p Lema de sustitución, sistema axiomático SQ, consecuencia sintáctica, teorema de la generalización, teorema de la generalización en constantes, p Completitud de SQ, compacidad, p Aplicaciones de compacidad, indecidibilidad de la lógica de primer orden, p Opcional - Teorema de incompletitud de Gödel, p
4 Computabilidad Clase 1 Introducción, máquinas de Turing, funciones parciales, funciones Turing computables, ejemplos 4
5 Organización de la materia Docentes Santiago Figueira (Prof.) Hernán Czemerinski (JTP) Esteban Pavese (JTP) Manuel Giménez (AY1) Herman Schinca (AY1) Nahuel Lascano (AY2) Martes, Miércoles y Viernes de 17 a 22, aula 9 (+ parciales los sábados) [email protected] 5
6 Aprobación Dos parciales, cada uno con su recuperatorio. La materia puede ser promocionada. Más detalles, en la práctica. Exámenes: 14/02: primer parcial (sábado) 07/03: segundo parcial (sábado) 11/03: primer recuperatorio (miércoles) 14/03: segundo recuperatorio (sábado) 6
7 Temas y bibliografía Computabilidad Computability, Complexity and Languages, fundamentals of theoretical computer science. Martin Davis, Ron Sigal, Elaine Weyuker, Elsevier, 1994 Lógica proposicional Metalógica, introducción a la metateoría de la lógica clásica de primer orden. Geoffrey Hunter, Editorial Paraninfo, Lógica de primer orden A mathematical introduction to logic. Herbert Enderton, Elsevier,
8 Orígenes fines del siglo XIX y principios del siglo XX: interés por los fundamentos de la matemática dos grandes búsquedas (Hilbert) 1. completitud de la aritmética se buscaba un sistema axiomático que capturara todas las verdades de la aritmética Gödel (1931): cualquier sistema axiomático suficientemente poderoso es incompleto o inconsistente 2. el problema de la decisión (Entscheidungsproblem) se buscaba un procedimiento efectivo para decidir si cualquier fórmula de primer orden era válida o no Turing (1936): no existe tal procedimiento efectivo David Hilbert Kurt Gödel Alan Turing 8
9 Máquinas de Turing q Se compone de : una cinta dividida en celdas infinita en ambas direcciones cada celda contiene un símbolo de un alfabeto dado Σ. Σ L, R / Σ representa el blanco en una celda L y R son símbolos reservados (representarán acciones que puede realizar la cabeza) una cabeza lee y escribe un símbolo a la vez se mueve una posición a la izquierda o una posición a la derecha una tabla finita de instrucciones dice qué hacer en cada paso 9
10 Tabla de instrucciones Σ es el alfabeto. L, R / Σ, Σ. Q es el conjunto finito de estados A = Σ {L, R} es el conjunto de acciones un símbolo s Σ se interpreta como escribir s en la posición actual L se interpreta como mover la cabeza una posición hacia la izquierda R se interpreta como mover la cabeza una posición hacia la derecha Una tabla de instrucciones T es un subconjunto (finito) de La tupla se interpreta como Q Σ A Q (q, s, a, q ) T Si la máquina está en el estado q leyendo en la cinta el símbolo s, entonces realiza la acción a y pasa al estado q 10
11 Ejemplo de ejecución de una instrucción Supongamos un alfabeto Σ = {0, 1}. Una máquina con esta tabla de instrucciones: Si empieza en esta configuración... pasa a... y luego a... { (q 1, 0, 1, q 2 ), (q 2, 1, R, q 1 ) } q q q 1 11
12 Definición de máquina de Turing Una máquina de Turing es una tupla donde (Σ, Q, T, q 0, q f ) Σ (finito) es el conjunto símbolos (L, R / Σ, Σ) Q (finito) es el conjunto de estados tiene dos estados distinguidos: q 0 Q es el estado inicial q f Q es el estado final T Q Σ Σ {L, R} Q es la tabla de instrucciones va a ser finita porque Σ y Q lo son cuando no hay restricciones sobre T decimos que M es una máquina de Turing no determinísitca cuando no hay dos instrucciones en T que empiezan con las mismas primeras dos coordenadas, decimos que M es una máquina de Turing determinística 12
13 Ejemplo Sea M = (Σ, Q, T, q 0, q f ) con Σ = {, a, b} Q = {q 0, q 1, q f } tabla de instrucciones q 0 a b q 1 q T = 1 b R q 0 q 0 q f q 1 q f Visto como autómata q 0 inicio q 1 / a/b b/r q f / si empieza en a a a a q 0 termina en b b b b q f si empieza en a a b a q 0 termina en b b b a q 0 si empieza en a a b a termina en a a b a q 0 q f 13
14 Representación de números y tuplas Fijamos Σ = {, 1}. representaremos a los números naturales en unario (con palotes). el número x N se representa como x = }{{} x+1 representamos a las tuplas (x 1,..., x n ) como lista de (representaciones de) los x i separados por blanco la tupla (x1,..., x n ) se representa como Por ejemplo, x 1 x 2 x n el número 0 se representa como 1 el número 3 se representa como 1111 la tupla (1, 2) se representa como la tupla (0, 0, 1) se representa como
15 Funciones parciales Siempre vamos a trabajar con funciones f : N n N. Pero van a ser funciones parciales. Una función parcial f es una función que puede estar indefinida para algunos (tal vez ninguno; tal vez todos) sus argumentos. notamos f (x 1,..., x n ) cuando f está definida para x 1,..., x n. En este caso f (x 1,..., x n ) es un número natural. notamos f (x 1,..., x n ) cuando f está indefinida para x 1,..., x n El conjunto de argumentos para los que f está definida se llama dominio de f, notado dom(f ). dom(f ) = {(x 1,..., x n ) : f (x 1,..., x n ) } f es total si dom(f ) = N n. 15
16 Cómputo de funciones parciales en máquinas de Turing Una función parcial f : N n N es Turing computable si existe una máquina de Turing determinística M = (Σ, Q, T, q 0, q f ) con Σ = {, 1} tal que cuando empieza en la configuración inicial... x 1 x 2... x n... (con los enteros x i representados en unario y nada más en la entrada salvo la representación de la entrada): si f (x 1,..., x n ) entonces siguiendo sus instrucciones en T llega a una configuración final de la forma... f (x 1,..., x n )... q f q 0 (quizá algo más en la cinta) si f (x 1,..., x n ) entonces nunca termina en el estado q f. 16
17 Cómputo de la función f (x) = 0 /R /1 1/R inicio q 0 q 1 q 2 q f 17
18 Cómputo de la función f (x) = x + 1 /1 1/R inicio q 0 q 1 q f 18
19 Cómputo de la función f (x) = 2x Idea: por cada 1 que borro de la entrada, pongo 11 bien a la derecha. Repito esto hasta que quede solo un 1 en la entrada. Ahí pongo un 1 más a la derecha. Ejemplo: entrada = Invariante: a lo largo de cada iteración, la cinta está así: 1 }. {{.. 1 } } 1.. {{ } para algún n > 0, m 0, n + m 1 = entrada n 2m 1. si n = 1 entonces pongo un 1 más a la derecha y termina en q f con 1 1 }.. {{ } 2m+1 2. si n > 1 transformo la cinta en } 1. {{.. 1 } } 1.. {{ } y vuelvo n 1 2(m+1) al paso 1 19
20 Cómputo de la función f (x) = 2x /L 1/L /R 1/R inicio q 0 q 1 q 2 q 11 q 12 1/1 /R / 1/L q 3 1/R q 13 /R /1 1/L q 10 1/ q 4 q 5 q 14 /1 /R 1/R q 9 1/R q 8 /1 q 7 /R q 6 q f 1/R 1/R 20
21 Cómputo de una función parcial Supongamos f (x) = { x si x es par si no 1/R /L 1/L /R / inicio q 0 q 1 q 2 q 3 q f 1/L 1/L q 4 21
22 Poder de cómputo Teorema Sea f : N m N una función parcial. Son equivalentes: 1. f es computable en Java 2. f es computable en C 3. f es computable en Haskell 4. f es Turing computable No es importante qué base usamos para representar a los números usamos representación unaria (Σ = {, 1}) pero podríamos haber elegido la binaria (Σ = {, 0, 1}) o base 10 (Σ = {, 0, 1, 2,..., 9}) si permitimos que al terminar la cinta tenga otras cosas escritas además de la salida o solo contenga la salida si usamos esta variante de arquitectura: una cinta de entrada (solo de lectura) una cinta de salida (solo de escritura) una o varias cintas de trabajo, de lectura/escritura Siempre computamos la misma clase de funciones! 22
23 Computabilidad Clase 2 Funciones iniciales, composición, recursión, clases PRC, funciones primitivas recursivas 23
24 Funciones iniciales Otra manera de formalizar la idea de función calculable de manera efectiva: empezar por funciones muy simples, efectivas intuitivamente si mezclamos de alguna manera efectiva dos o más funciones que ya eran efectivas, entonces obtenemos una función calculable de manera efectiva Definición Las siguientes funciones se llaman iniciales: s(x) = x + 1 n(x) = 0 proyecciones: u n i (x 1,..., x n ) = x i para i {1,..., n} 24
25 Composición y recursión primitiva Definición Sea f : N k N y g 1,..., g k : N n N. h : N n N se obtiene a partir de f y g 1,..., g k por composición si h(x 1,..., x n ) = f (g 1 (x 1,..., x n ),..., g k (x 1,..., x n )) Definición h : N n+1 N se obtiene a partir de g : N n+2 N y f : N n N por recursión primitiva si h(x 1,..., x n, 0) = f (x 1,..., x n ) h(x 1,..., x n, t + 1) = g(h(x 1,..., x n, t), x 1,..., x n, t) (En este contexto, una función 0-aria es una constante k. Si h es 1-aria y t = 0, entonces h(t) = k = s (k) (n(t)).) 25
26 Clases PRC Una clase C de funciones totales es PRC (primitive recursive closed) si 1. las funciones iniciales están en C 2. si una función f se obtiene a partir de otras pertenecientes a C por medio de composición o recursión primitiva, entonces f también está en C Teorema La clase de funciones totales Turing computables (o computables en C, o en Java) es una clase PRC. 26
27 Funciones primitivas recursivas Una función es primitiva recursiva (p.r.) si se puede obtener a partir de las funciones iniciales por un número finito de aplicaciones de composición y recursión primitiva. Teorema Una función es p.r. sii pertenece a toda clase PRC. Demostración. ( ) La clase de funciones p.r. es una clase PRC. Luego, si f pertenece a toda clase PRC, en particular f es p.r. ( ) Sea f p.r. y sea C una clase PRC. Como f es p.r., hay una lista tal que f 1, f 2,..., f n f = fn fi es inicial (luego está en C) o se obtiene por composición o recursión primitiva a partir de funciones f j, j < i (luego también está en C). Entonces todas las funciones de la lista están en C (por inducción). En particular, f n C. 27
28 Funciones totales Turing computables = funciones primitivas recursivas? Entonces la clase de funciones p.r. es la clase PRC más chica. Corolario Toda función p.r. es total y Turing computable. Demostración. Sabemos que la clase de funciones totales Turing computables es PRC. Por el teorema anterior, si f es p.r., entonces f pertenece a la clase de funciones Turing computables. No toda función parcial Turing computable es p.r porque toda función p.r. es total. Pero... toda función total Turing computable es p.r.? 28
29 Ejemplo de función p.r. La función suma(x, y) = x + y es p.r., porque suma(x, 0) = u 1 1(x) suma(x, y + 1) = g(suma(x, y), x, y) donde g(x 1, x 2, x 3 ) = s(u 3 1(x 1, x 2, x 3 )) 29
30 Otras funciones primitivas recursivas x y x! x y { x y si x y x y = 0 si no { 1 si x = 0 α(x) = 0 si no y muchas más. Todas las funciones totales Turing computables..? 30
31 Predicados primitivos recursivos Los predicados son simplemente funciones que toman valores en {0, 1}. 1 se interpreta como verdadero 0 se interpreta como falso Los predicados p.r. son aquellos representados por funciones p.r. en {0, 1}. Por ejemplo, el predicado x y es p.r. porque se puede definir como α(x y) 31
32 Operadores lógicos Teorema Sea C una clase PRC. Si p y q son predicados en C entonces p, p q y p q están en C. Demostración. p se define como α(p) p q se define como p q p q se define como ( p q) Corolario Si p y q son predicados p.r., entonces también lo son los predicados p, p q y p q Corolario Si p y q son predicados totales Turing computables entonces también lo son los predicados p, p q y p q 32
33 Definición por casos (2) Teorema Sea C una clase PRC. Sean h, g : N n N funciones en C y sea p : N n {0, 1} un predicado en C. La función { g(x 1,..., x n ) si p(x 1,..., x n ) f (x 1,..., x n ) = h(x 1,..., x n ) si no está en C. Demostración. f (x 1,..., x n ) = g(x 1,..., x n ) p(x 1,..., x n ) + h(x 1,..., x n ) α(p(x 1,..., x n )) 33
34 Definición por casos (m + 1) Teorema Sea C una clase PRC. Sean g 1,..., g m, h : N n N funciones en C y sean p 1,..., p m : N n {0, 1} predicados mutuamente excluyentes en C. La función g 1 (x 1,..., x n ) si p 1 (x 1,..., x n ). f (x 1,..., x n ) = g m (x 1,..., x n ) si p m (x 1,..., x n ) h(x 1,..., x n ) si no está en C. 34
35 Recursión primitiva todavía no respondimos si p.r. = Turing computables totales no lo vamos a responder todavía Observar que el esquema de recursión h(x 1,..., x n, 0) = f (x 1,..., x n ) h(x 1,..., x n, t + 1) = g(h(x 1,..., x n, t), x 1,..., x n, t) es muy simple: la recursión siempre se hace en el último parámetro la función variante de h(x 1,..., x n, x n+1 ) es x n+1 35
36 Computabilidad Clase 3 Sumatorias y productorias, cuantificadores acotados, minimización acotada, codificación de pares y secuencias 36
37 Sumatorias y productorias (desde 0) Teorema Sea C una clase PRC. Si f : N n+1 N está en C entonces también están las funciones g(y, x 1,..., x n ) = h(y, x 1,..., x n ) = y f (t, x 1,..., x n ) t=0 y f (t, x 1,..., x n ) t=0 Demostración. g(0, x 1,..., x n ) = f (0, x 1,..., x n ) g(t + 1, x 1,..., x n ) = g(t, x 1,..., x n ) + f (t + 1, x 1,..., x n ) Idem para h con en lugar de +. Observar que no importa la variable en la que se hace la recursión: podemos definir g (x, t) como la clase pasada y luego g(t, x) = g (u 2 2 (t, x), u2 1 (t, x)) = g (x, t). 37
38 Sumatorias y productorias (desde 1) Teorema Sea C una clase PRC. Si f : N n+1 N está en C entonces también están las funciones g(y, x 1,..., x n ) = h(y, x 1,..., x n ) = y f (t, x 1,..., x n ) t=1 y f (t, x 1,..., x n ) t=1 (como siempre, sumatoria vacía = 0, productoria vacía = 1) Demostración. g(0, x 1,..., x n ) = 0 g(t + 1, x 1,..., x n ) = g(t, x 1,..., x n ) + f (t + 1, x 1,..., x n ) Idem para h con en lugar de + y 1 en lugar de 0 en el caso base. 38
39 Cuantificadores acotados Sea p : N n+1 {0, 1} un predicado. ( t) y p(t, x 1,..., x n ) es verdadero sii p(0, x 1,..., x n ) es verdadero y. p(y, x 1,..., x n ) es verdadero ( t) y p(t, x 1,..., x n ) es verdadero sii p(0, x 1,..., x n ) es verdadero o. p(y, x 1,..., x n ) es verdadero Lo mismo se puede definir con < y en lugar de y. ( t) <y p(t, x 1,..., x n ) y ( t) <y p(t, x 1,..., x n ) 39
40 Cuantificadores acotados (con ) Teorema Sea p : N n+1 {0, 1} un predicado perteneciente a una clase PRC C. Los siguientes predicados también están en C: ( t) y p(t, x 1,..., x n ) ( t) y p(t, x 1,..., x n ) Demostración. ( t) y p(t, x 1,..., x n ) sii y t=0 p(t, x 1,..., x n ) = 1 ( t) y p(t, x 1,..., x n ) sii y t=0 p(t, x 1,..., x n ) 0 la sumatoria y productoria están en C la comparación por = está en C 40
41 Cuantificadores acotados (con <) Teorema Sea p : N n+1 {0, 1} un predicado perteneciente a una clase PRC C. Los siguientes predicados también están en C: ( t) <y p(t, x 1,..., x n ) ( t) <y p(t, x 1,..., x n ) Demostración. ( t) <y p(t, x 1,..., x n ) sii ( t) y (t = y p(t, x 1,..., x n )) ( t) <y p(t, x 1,..., x n ) sii ( t) y (t y p(t, x 1,..., x n )) 41
42 Más ejemplos de funciones primitivas recursivas y x sii y divide a x. Se define como ( t) x y t = x Notar que con esta definición 0 0. primo(x) sii x es primo. 42
43 Minimización acotada Sea p : N n+1 {0, 1} un predicado de una clase PRC C. y u g(y, x 1,..., x n ) = α(p(t, x 1,..., x n )) u=0 t=0 Qué hace g? supongamos que existe un t y tal que p(t, x 1,..., x n ) es verdadero sea t0 el mínimo tal t p(t, x1,..., x n ) = 0 para todo t < t 0 p(t0, x 1,..., x n ) = 1 { u t=0 α(p(t, x 1 si u < t 0 1,..., x n )) = 0 si no y+1 veces {}}{ g(y, x 1,..., x n ) = = t }{{} 0 t 0 veces entonces g(y, x1,..., x n ) es el mínimo t y tal que p(t, x 1,..., x n ) es verdadero si no existe tal t, g(y, x 1,..., x n ) = y
44 Minimización acotada Notamos mín p(t, x 1,..., x n ) = t y mínimo t y tal que p(t, x 1,..., x n ) es verdadero 0 si no Teorema Sea p : N n+1 {0, 1} un predicado de una clase PRC C. La función mín t y p(t, x 1,..., x n ) también está en C. si existe tal t 44
45 Más ejemplos de funciones primitivas recursivas x div y es la división entera de x por y x mín((t + 1) y > x) t x Notar que con esta definición 0 div 0 es 0. mód y es el resto de dividir a x por y p n es el n-ésimo primo (n > 0). Se define p 0 = 0, p 1 = 2, p 2 = 3, p 3 = 5,... p 0 = 0 p n+1 = mín t K(n) (primo(t) t > p n) Necesitamos una cota K(n) que sea buena, i.e. suficientemente grande y primitiva recursiva K(n) = p n! + 1 funciona (ver que p n+1 p n! + 1). 45
46 Codificación de pares Definimos la función primitiva recursiva Notar que 2 x (2 y + 1) 0. x, y = 2 x (2 y + 1) 1 Proposición Hay una única solución (x, y) a la ecuación x, y = z. Demostración. x es el máximo número tal que 2 x (z + 1) y = ((z + 1)/2 x 1) div 2 46
47 Observadores de pares Los observadores del par z = x, y son l(z) = x r(z) = y Proposición Los observadores de pares son primitivas recursivas. Demostración. Como x, y < z + 1 tenemos que l(z) = mín x z (( y) z z = x, y ) r(z) = mín y z (( x) z z = x, y ) Por ejemplo, 2, 5 = 2 2 ( ) 1 = 43 l(43) = 2 r(43) = 5 47
48 Codificación de secuencias El número de Gödel de la secuencia es el número a 1,..., a n [a 1,..., a n ] = donde p i es el i-ésimo primo (i 1). n i=1 p a i i, Por ejemplo el número de Gödel de la secuencia 1, 3, 3, 2, 2 es [1, 3, 3, 2, 2] = =
49 Propiedades de la codificación de secuencias Teorema Si [a 1,..., a n ] = [b 1,..., b n ] entonces a i = b i para todo i {1,..., n}. Demostración. Por la factorización única en primos. Observar que [a 1,..., a n ] = [a 1,..., a n, 0] = [a 1,..., a n, 0, 0] =... pero [a 1,..., a n ] [0, a 1,..., a n ] 49
50 Observadores de secuencias Los observadores de la secuencia x = [a 1,..., a n ] son x[i] = a i x = longitud de x Proposición Los observadores de secuencias son primitivas recursivas. Demostración. x[i] = mín t x ( p t+1 i x) x = mín i x (x[i] 0 ( j) x (j i x[j] = 0)) Por ejemplo, [1, 3, 3, 2, 2][2] = 3 = [2] [1, 3, 3, 2, 2][6] = 0 = [6] [1, 3, 3, 2, 2] = 5 = [1, 3, 3, 2, 2, 0] = [1, 3, 3, 2, 2, 0, 0] = 5 = x[0] = 0 para todo x 0[i] = 0 para todo i 50
51 En resumen: codificación y decodificación de pares y secuencias Teorema (Codificación de pares) l( x, y ) = x, r( x, y ) = y z = l(z), r(z) l(z), r(z) z la codificación y observadores de pares son p.r. Teorema (Codificación de secuencias) { a i si 1 i n [a 1,..., a n ][i] = 0 si no si n x entonces [x[1],..., x[n]] = x la codificación y observadores de secuencias son p.r. 51
52 Computabilidad Clase 4 Lenguaje S, estado, descripción instantánea, cómputo, funciones parciales computables, minimización no acotada 52
53 Lenguaje de programación S (Davis/Sigal/Weyuker) resulta igual de poderoso que las máquinas de Turing, pero es más fácil de programar imperativo, muy simple variables de entrada: X 1, X 2,... única variable de salida: Y variables temporales: Z 1, Z 2,... } empiezan inicializadas en 0 las variables almacenan números naturales 3 instrucciones (cada una puede o no estar etiquetada): 1. V V + 1 la variable V se incrementa en 1 2. V V 1 V se decrementa en 1 si antes era > 0; si no queda en 0 es el V 1 que ya vimos 3. IF V 0 GOTO A condicional muy primitivo A es una etiqueta que denota una instrucción del programa si el valor de V es distinto de 0, la ejecución sigue con la primera instrucción que tenga etiqueta A si el valor de V es 0, sigue con la próxima instrucción programa = sucesión finita de instrucciones 53
54 Ejemplo 1 Programa P [A] X X 1 Y Y + 1 IF X 0 GOTO A Ejecución para entrada X = 3: X Y escribimos X por X 1 ; Z por Z 1 P termina cuando X = 0 porque no hay siguiente instrucción P computa la función f : N N, { x si x 0 f (x) = 1 si no siempre deja la variable X en 0 54
55 Ejemplo 2 [A] IF X 0 GOTO B Z Z + 1 IF Z 0 GOTO E [B] X X 1 Y Y + 1 Z Z + 1 IF Z 0 GOTO A computa la función f : N N, f (x) = x cuando intenta ir a E, termina en el ejemplo, Z solo sirve para un salto incondicional. En general GOTO L es equivalente a V V + 1 IF V 0 GOTO L donde V es una variable nueva (en el ejemplo es Z) 55
56 Macros S no tiene salto incondicional pero podemos simularlo con GOTO L lo usamos, como si fuera parte del lenguaje, pero: cada vez que aparece GOTO L en un programa P, lo reemplazamos con V V + 1 IF V 0 GOTO L donde V tiene que ser una variable que no aparece en P. Vamos a ver que se pueden simular muchas otras operaciones. Una vez que sepamos que se pueden escribir en el lenguaje S, las usamos como si fueran propias (son pseudoinstrucciones). la forma abreviada se llama macro el segmento de programa que la macro abrevia se llama expansión del macro 56
57 Asignación de cero: V 0 En un programa P, la pseudoinstrucción V 0 se expande como [L] V V 1 IF V 0 GOTO L donde L es una etiqueta que no aparece en P 57
58 Asignación de variables: Y X Y 0 [A] IF X 0 GOTO B GOTO C [B] X X 1 Y Y + 1 Z Z + 1 GOTO A [C] IF Z 0 GOTO D GOTO E [D] Z Z 1 X X + 1 GOTO C el primer ciclo copia el valor de X en Y y en Z; deja X en cero el segundo ciclo pone en X el valor que tenía originalmente y deja Z en cero se usa la macro GOTO A no debe expandirse como sino como Z Z + 1 IF Z 0 GOTO A Z 2 Z IF Z 2 0 GOTO A 58
59 Asignación de variables: V V Y 0 [A] IF X 0 GOTO B GOTO C [B] X X 1 Y Y + 1 Z Z + 1 GOTO A [C] IF Z 0 GOTO D GOTO E [D] Z Z 1 X X + 1 GOTO C se puede usar para asignar a la variable V el contenido de la variable V y dejar V sin cambios dentro de un programa P cualquiera: V V. cambiar Y por V cambiar X por V cambiar Z por una variable temporal que no aparezca en P cambiar A, B, C, D por etiquetas que no aparezcan en P 59
60 Suma de dos variables Y X 1 Z X 2 [B] IF Z 0 GOTO A GOTO E [A] Z Z 1 Y Y + 1 GOTO B computa la función f : N N N f (x 1, x 2 ) = x 1 + x 2 60
61 Resta de dos variables Y X 1 [C] [A] Z X 2 IF Z 0 GOTO A GOTO E IF Y 0 GOTO B GOTO A [B] Y Y 1 Z Z 1 GOTO C computa la función g : N N N { x 1 x 2 si x 1 x 2 g(x 1, x 2 ) = si no g es una función parcial la indefinición se nota con (en el metalenguaje) el comportamiento del programa que se indefine es la no terminación no hay otra causa de indefinición 61
62 Estados Un estado de un programa P es una lista de ecuaciones de la forma V = m (donde V es una variable y m es un número) tal que hay una ecuación para cada variable que se usa en P no hay dos ecuaciones para la misma variable Por ejemplo, para P: [A] X X 1 Y Y + 1 IF X 0 GOTO A son estados de P: X = 3, Y = 1 X = 3, Y = 1, Z = 0 X = 3, Y = 1, Z = 8 no hace falta que sea alcanzado no son estados de P: X = 3 X = 3, Z = 0 X = 3, Y = 1, X = 0 62
63 Descripción instantánea Supongamos que el programa P tiene longitud n. Para un estado σ de P y un i {1,..., n + 1}, el par (i, σ) es una descripción instantánea de P (i, σ) se llama terminal si i = n + 1 Para un (i, σ) no terminal, podemos definir su sucesor (j, τ) como: 1. si la i-ésima instrucción de P es V V + 1. j = i + 1 τ es σ, salvo que V = m se reemplaza por V = m si la i-ésima instrucción de P es V V 1. j = i + 1 τ es σ, salvo que V = m se reemplaza por V = máx{m 1, 0} 3. si la i-ésima instrucción de P es IF V 0 GOTO L τ es idéntico a σ 3.1 si σ tiene V = 0 entonces j = i si σ tiene V = m para m 0 entonces si existe en P una instrucción con etiqueta L entonces j = mín{k : k-ésima instrucción de P tiene etiqueta L} si no j = n
64 Cómputos Un cómputo de un programa P a partir de una descripción instantánea d 1 es una lista d 1, d 2,..., d k de descripciones instantáneas de P tal que d i+1 es sucesor de d i para i {1, 2,..., k 1} d k es terminal 64
65 Estados y descripciones iniciales Sea P un programa y sean r 1,..., r m números dados. el estado inicial de P para r 1,..., r m es el estado σ 1, que tiene X 1 = r 1, X 2 = r 2,..., X m = r m, Y = 0 junto con V = 0 para cada variable V que aparezca en P y no sea X 1,..., X m, Y la descripción inicial de P para r 1,..., r m es (1, σ 1 ) 65
66 Cómputos a partir del estado inicial Sea P un programa y sean r 1,..., r m números dados σ 1 el estado inicial Dos casos hay un cómputo de P d 1,..., d k tal que d 1 = (1, σ 1 ) Notamos Ψ (m) P (r 1,..., r m ) al valor de Y en d k. (m) en particular, Ψ P (r 1,..., r m ) está definido (not. Ψ (m) P (r 1,..., r m ) ) no hay tal cómputo, i.e. existe una secuencia infinita donde d 1 = (1, σ 1 ). d 1, d 2, d 3,... di+1 es sucesor de d i Decimos que Ψ (m) P (r 1,..., r m ) está indefinido (not. Ψ (m) P (r 1,..., r m ) ) 66
67 Funciones computables Una función (parcial) f : N m N es S-parcial computable (o simplemente parcial computable ) si existe un programa P tal que f (r 1,..., r m ) = Ψ (m) P (r 1,..., r m ) para todo (r 1,..., r m ) N m. La igualdad (del meta-lenguaje) es verdadera si los dos lados están definidos y tienen el mismo valor o los dos lados están indefinidos La función f es S-computable (o simplemente computable) si es parcial computable y total. Notar que un mismo programa P puede servir para computar funciones de 1 variable, 2 variables, etc. Supongamos que en P aparece X n y no aparece X i para i > n si solo se especifican m < n variables de entrada, X m+1,..., X n toman el valor 0 si se especifican m > n variables de entrada, P ignorará X n+1,..., X m 67
68 Minimización no acotada Recordar la definición de minimización acotada: mínimo t y tal que si existe tal t mín p(t, x p(t, x 1,..., x n ) es verdadero 1,..., x n ) = t y 0 si no Definimos la minimización no acotada mínimo t tal que p(t, x 1,..., x n ) es verdadero mín p(t, x 1,..., x n ) = t si existe tal t si no 68
69 Minimización no acotada Teorema Si p : N n+1 {0, 1} es un predicado computable entonces es parcial computable. mín t p(t, x 1,..., x n ) Demostración. El siguiente programa computa mín t p(t, x 1,..., x n ): [A] IF p(y, X 1,..., X n ) = 1 GOTO E Y Y + 1 GOTO A 69
70 Clausura por composición Teorema Si h se obtiene a partir de las funciones (parciales) computables f, g 1,..., g k por composición entonces h es (parcial) computable. Demostración. El siguiente programa computa h: Z 1 g 1 (X 1,..., X n ). Z k g k (X 1,..., X n ) Y f (Z 1,..., Z k ) Si f, g 1,..., g k son totales entonces h es total. 70
71 Clausura por recursión primitiva Teorema Si h se obtiene a partir de g por recursión primitiva y g es computable entonces h es computable. Demostración. El siguiente programa computa h: Y k (es una macro, se puede hacer fácil) [A] IF X = 0 GOTO E (otra macro, condición del IF por =) Y g(z, Y ) Z Z + 1 X X 1 GOTO A Si g es total entonces h es total. 71
72 Las funciones computables forman una clase PRC Teorema La clase de funciones computables es una clase PRC. Demostración. Ya vimos que la clase de funciones computables está cerrada por composición (p. 70) y recursión primitiva (p. 71). Veamos que las funciones iniciales son computables: s(x) = x + 1 se computa con el programa Y X + 1 n(x) = 0 se computa con el programa vacío u n i (x 1,..., x n ) = x i se computa con el programa Y X i Corolario Toda función primitiva recursiva es computable. 72
73 Computabilidad Clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church, programa universal, step counter, snapshot 73
74 Tipos de datos en S vimos que el único tipo de dato en S son los naturales sin embargo podemos simular otros tipos. Por ejemplo, tipo bool: lo representamos con el 1 (verdadero) y el 0 (falso) tipo par de números naturales: la codificación y decodificación de pares son funciones primitivas recursivas tipo entero: podría ser codificada con un par bool, número natural tipo secuencias finitas de números naturales: la codificación y decodificación de secuencias son funciones primitivas recursivas ahora vamos a ver como simular el tipo programa en S 74
75 Codificación de programas en S Recordemos que las instrucciones de S eran: 1. V V V V 1 3. IF V 0 GOTO L Por conveniencia vamos a agregar una cuarta instrucción 4. V V : no hace nada Observar que toda instrucción puede o no estar etiquetada con L menciona exactamente una variable V el IF además menciona siempre una etiqueta L 75
76 Codificación de variables y etiquetas de S Ordenamos las variables: Ordenamos las etiquetas: Y, X 1, Z 1, X 2, Z 2, X 3, Z 3,... A, B, C, D,..., Z, AA, AB, AC,..., AZ, BA, BB,..., BZ,... Escribimos #(V ) para la posición que ocupa la variable V en la lista. Idem para #(L) con la etiqueta L Por ejemplo, #(Y ) = 1 #(X 2 ) = 4 #(A) = 1 #(C) = 3 76
77 Codificación de instrucciones de S Codificamos a la instrucción I con #(I ) = a, b, c donde 1. si I tiene etiqueta L, entonces a = #(L); si no a = 0 2. si la variable mencionada en I es V entonces c = #(V ) 1 3. si la instrucción I es 3.1 V V entonces b = V V + 1 entonces b = V V 1 entonces b = IF V 0 GOTO L entonces b = #(L ) + 2 Por ejemplo, #(X X + 1) = 0, 1, 1 = 0, 5 = 10 #([A] X X + 1) = 1, 1, 1 = 1, 5 = 21 #(IF X 0 GOTO A) = 0, 3, 1 = 0, 23 = 46 #(Y Y ) = 0, 0, 0 = 0, 0 = 0 Todo número x representa a una única instrucción I. 77
78 Codificación de programas en S Un programa P es una lista (finita) de instrucciones I 1,..., I k Codificamos al programa P con #(P) = [#(I 1 ),..., #(I k )] 1 Por ejemplo, para el programa P [A] X X + 1 IF X 0 GOTO A tenemos #(P) = [#(I 1 ), #(I 2 )] 1 = [21, 46] 1 =
79 Ambigüedades Dijimos que P [A] X X + 1 tiene número [21, 46] 1. Pero IF X 0 GOTO A [21, 46] = [21, 46, 0] Un mismo número podría representar a más de un programa! Por suerte, el programa [21, 46, 0] es y es equivalente a P. [A] X X + 1 IF X 0 GOTO A Y Y De todos modos, eliminamos esta ambigüedad estipulando que la instrucción final de un programa no puede ser Y Y Con esto, cada número representa a un único programa. 79
80 Hay más funciones N N que números naturales Teorema (Cantor) El conjunto de las funciones (totales) N N no es numerable. Demostración. Supongamos que lo fuera. Las enumero: f 0, f 1, f 2... valores de f 0 = f 0 (0) f 0 (1) f 0 (2) f 0 (3)... valores de f 1 = f 1 (0) f 1 (1) f 1 (2) f 1 (3)... valores de f 2 = f 2 (0) f 2 (1) f 2 (2) f 2 (3).... valores de f k = f k (0) f k (1) f k (2) f k (3) Defino la siguiente función g : N N g(x) = f x (x) + 1. Para todo k, f k g (en particular difieren en el punto k). Entonces g no está listada. Absurdo: f 0, f 1, f 2... era una enumeración de todas las funciones N N. 80
81 Hay funciones no computables hay una cantidad no numerable de funciones N N o sea, hay más funciones N N que números naturales hay tantos programas como números naturales hay tantas funciones computables como números naturales tiene que haber funciones N N no computables Pero qué ejemplo concreto tenemos? 81
82 El problema de la detención (halting problem) HALT(x, y) : N 2 {0, 1} es verdadero sii el programa con número y y entrada x no se indefine, i.e. HALT(x, y) = { 1 si Ψ (1) P (x) 0 si no donde P es el único programa tal que #(P) = y. Ejemplo: Y 2 [A] Y Y + 2 IF ( a) Y ( b) Y (pseudo)programa P [Primo(a) Primo(b) a + b = Y ] GOTO A Supongamos que #(P) = e. Cuánto vale HALT(x, e)? HALT(x, e) = 1 sii Ψ P (x) sii la conjetura de Goldbach es falsa 82
83 HALT no es computable Teorema (Turing, 1936) HALT no es computable. Demostración. Supongamos que HALT es computable. Construimos el siguiente programa: [A] Programa Q IF HALT(X, X ) = 1 GOTO A Supongamos que #(Q) = e. Entonces { si HALT(x, x) = 1 Ψ Q (x) = 0 si no Entonces HALT(x, e) = 1 sii Ψ Q (x) sii HALT(x, x) 1 e está fijo pero x es variable. Llegamos a un absurdo con x = e. 83
84 Diagonalización En general, sirve para definir una función distinta a muchas otras. En el caso de HALT(x, y), sea P i el programa con número i supongo que HALT(x, y) es computable defino una función f computable núcleo de la demostración: ver que f / {Ψ P0, Ψ P1, Ψ P2,... } para esto, me aseguro que f (x) ΨPx (x), en particular: f (x) sii Ψ Px (x) Ψ P0 (0) Ψ P0 (1) Ψ P0 (2)... Ψ P1 (0) Ψ P1 (1) Ψ P1 (2)... Ψ P2 (0) Ψ P2 (1) Ψ P2 (2)... pero f era computable! Absurdo: tenía que estar en {Ψ P0, Ψ P1, Ψ P2,... }. 84
85 Tesis de Church Hay muchos modelos de cómputo. Está probado que tienen el mismo poder que S C Java Haskell máquinas de Turing... Tesis de Church.Todos los algoritmos para computar en los naturales se pueden programar en S. Entonces, el problema de la detención dice no hay algoritmo para decidir la verdad o falsedad de HALT(x, y) 85
86 Universalidad Para cada n > 0 definimos Φ (n) (x 1,..., x n, e) = salida del programa e con entrada x 1,..., x n = Ψ (n) P (x 1,..., x n ) donde #(P) = e Teorema Para cada n > 0 la función Φ (n) es parcial computable. Observar que el programa para Φ (n) es un intérprete de programas. Se trata de un programa que interpreta programas (representados por números). Para demostrar el teorema, construimos el programa U n que computa Φ (n). 86
87 Idea de U n U n es un programa que computa Φ (n) (x 1,..., x n, e) = salida del programa e con entrada x 1,..., x n = Ψ (n) P (x 1,..., x n ) donde #(P) = e U n necesita averiguar quién es P (decodifica e) llevar cuenta de los estados de P en cada paso parte del estado inicial de P cuando la entrada es x1,..., x n codifica los estados con listas por ejemplo Y = 0, X1 = 2, X 2 = 1 lo codifica como [0, 2, 0, 1] = 63 En el código de U n K indica el número de instrucción que se está por ejecutar (en la simulación de P) S describe el estado de P en cada momento 87
88 Inicialización // entrada = x 1,..., x n, e // #(P) = e = [i 1,..., i m ] 1 Z X n // Z = [i 1,..., i m ] n S (p 2j ) X j j=1 // S = [0, X 1, 0, X 2,..., 0, X n ] es el estado inicial K 1 // la primera instrucción de P a analizar es la 1 88
89 Ciclo principal // S codifica el estado, K es el número de instrucción // Z = [i 1,..., i m ] [C] IF K = Z + 1 K = 0 GOTO F // si llegó al final, terminar (ya veremos K = 0) // si no, sea Z[K] = i K = a, b, c U r(z[k]) // U = b, c P p r(u)+1 // la variable que aparece en i K es la c + 1-ésima // P es el primo para la variable que aparece en i K 89
90 Ciclo principal (cont.) // S codifica el estado, K es el número de instrucción // Z = [i 1,..., i m ], i K = a, b, c, U = b, c // P es el primo para la variable V que aparece en i K IF l(u) = 0 GOTO N // si se trata de una instrucción V V salta a N IF l(u) = 1 GOTO S // si se trata de una instrucción V V + 1 salta a S // si no, es de la forma V V 1 o IF V 0 GOTO L IF (P S) GOTO N // si P no divide a S (i.e. V = 0), salta a N IF l(u) = 2 GOTO R // V 0. Si se trata de una instrucción V V 1, salta a R 90
91 Caso IF V 0 GOTO L y V 0 // S codifica el estado, K es el número de instrucción // Z = [i 1,..., i m ], i K = a, b, c, U = b, c // P es el primo para la variable V que aparece en i K // V 0 y se trata de la instrucción IF V 0 GOTO L // b 2, por lo tanto L es la (b 2)-ésima etiqueta K mín (l(z[j]) + 2 = l(u)) j Z // K pasa a ser la primera instrucción con etiqueta L // si no hay tal instrucción, K = 0 (saldrá del ciclo) GOTO C // vuelve a la primera instrucción del ciclo principal 91
92 Caso R (Resta) // S codifica el estado, K es el número de instrucción // Z = [i 1,..., i m ], i K = a, b, c, U = b, c // P es el primo para la variable V que aparece en i K // se trata de V V 1 con V 0 [R] S S div P GOTO N // S=nuevo estado de P (resta 1 a V ) y salta a N 92
93 Caso S (Suma) // S codifica el estado, K es el número de instrucción // Z = [i 1,..., i m ], i K = a, b, c, U = b, c // P es el primo para la variable V que aparece en i K // se trata de V V + 1 [S] S S P GOTO N // S = nuevo estado de P (suma 1 a V ) y salta a N 93
94 Caso N (Nada) // S codifica el estado, K es el número de instrucción // Z = [i 1,..., i m ], i K = a, b, c, U = b, c // P es el primo para la variable V que aparece en i K // la instrucción no cambia el estado [N] K K + 1 GOTO C // S no cambia // K pasa a la siguiente instrucción // vuelve al ciclo principal 94
95 Devolución del resultado // S codifica el estado final de P // sale del ciclo principal [F ] Y S[1] // Y = el valor que toma la variable Y de P al terminar 95
96 Todo junto [C] Z X n n S (p 2i ) X i i=1 K 1 IF K = Z + 1 K = 0 GOTO F U r(z[k]) P p r(u)+1 IF l(u) = 0 GOTO N IF l(u) = 1 GOTO S IF (P S) GOTO N IF l(u) = 2 GOTO R K mín (l(z[i]) + 2 = l(u)) i Z GOTO C [R] S S div P GOTO N [S] S S P GOTO N [N] K K + 1 GOTO C [F ] Y S[1] 96
97 Notación A veces escribimos Φ (n) e (x 1,..., x n ) = Φ (n) (x 1,..., x n, e) A veces omitimos el superíndice cuando n = 1 Φ e (x) = Φ(x, e) = Φ (1) (x, e) 97
98 Step Counter Definimos STP (n) (x 1,..., x n, e, t) sii el programa e termina en sii t o menos pasos con entrada x 1,..., x n hay un cómputo del programa e de longitud t + 1, comenzando con la entrada x 1,..., x n Teorema Para cada n > 0, el predicado STP (n) (x 1,..., x n, e, t) es p.r. 98
99 Snapshot Definimos SNAP (n) (x 1,..., x n, e, t) = representación de la configuración instantánea del programa e con entrada x 1,..., x n en el paso t La configuración instantánea se representa como número de instrucción, lista representando el estado Teorema Para cada n > 0, el predicado SNAP (n) (x 1,..., x n, e, t) es p.r. 99
100 Una función computable que no es primitiva recursiva se pueden codificar los programas de S con constructores y observadores p.r. se pueden codificar las definiciones de funciones p.r. con constructores y observadores p.r. existe Φ (n) e (x 1,..., x n ) parcial computable que simula al e-ésimo programa con entrada x 1,..., x n (n) existe Φ e (x 1,..., x n ) computable que simula a la e-ésima función p.r. con entrada x 1,..., x n. Analicemos g : N N definida como g(x) = Φ (1) x (x) claramente g es computable supongamos que g es p.r. entonces también es p.r. la función f (x) = g(x) + 1 = Φ (1) x (x) + 1 existe un e tal que Φ e = f tendríamos Φ e (x) = f (x) = Φ x (x) + 1 e está fijo pero x es variable instanciando x = e, Φe (e) = f (e) = Φ e (e) + 1. Absurdo. por qué esto no funciona para parcial comp. en lugar de p.r.? 100
101 La función de Ackermann (1928) y + z si x = 0 0 si x = 1 y z = 0 A(x, y, z) = 1 si x = 2 y z = 0 y si x > 2 y z = 0 A(x 1, y, A(x, y, z 1)) si x, z > 0 A 0 (y, z) = A(0, y, z) = y + z = y +1 } + {{ + 1 } z veces A 1 (y, z) = A(1, y, z) = y z = y + + y }{{} z veces A 2 (y, z) = A(2, y, z) = y z = y z = y y }{{} z veces A 3 (y, z) = A(3, y, z) = y z = y y... }{{} z veces... y Para cada i, A i : N 2 N es p.r. pero A : N 3 N no es p.r. 101
102 Versión de Robinson & Peter (1948) n + 1 si m = 0 B(m, n) = B(m 1, 1) si m > 0 y n = 0 B(m 1, B(m, n 1)) si m > 0 y n > 0 B 0 (n) = B(0, n) = n + 1 B 1 (n) = B(1, n) = 2 + (n + 3) 3 B 2 (n) = B(2, n) = 2 (n + 3) 3 B 3 (n) = B(3, n) = 2 (n + 3) 3 B 4 (n) = B(4, n) = 2 (n + 3) 3... Para cada i, B i : N N es p.r. pero B : N 2 N no es p.r. B(4, 2) B (x) = B(x, x) crece más rápido que cualquier función p.r. ( f p.r.)( n)( x > n) B (x) > f (x) 102
103 Computabilidad Clase 6 Teorema de la forma normal, teorema del parámetro, teorema de la recursión y aplicaciones, teorema del punto fijo 103
104 Teorema de la Forma Normal Teorema Sea f : N n N una función parcial computable. Entonces existe un predicado p.r. R : N n+1 N tal que ( ) f (x 1,..., x n ) = l mín R(x 1,..., x n, z) z Demostración. Sea e el número de algún programa para f (x 1,..., x n ). Recordar que la configuración instantánea se representa como número de instrucción, lista representando el estado El siguiente predicado R(x 1,..., x n, z) es el buscado: STP (n) (x 1,..., x n, e, r(z)) ( ) l(z) = r SNAP (n) (x 1,..., x n, e, r(z)) [1] }{{} estado final de e con entrada x 1,..., x n }{{} valor de la variable Y en ese estado final 104
105 Otra caracterización de funciones computables Teorema Una función es parcial computable si se puede obtener a partir de las funciones iniciales por un número finito de aplicaciones de composición, recursión primitiva y minimización Teorema Una función es computable si se puede obtener a partir de las funciones iniciales por un número finito de aplicaciones de composición, recursión primitiva y minimización propia (del tipo mín t q(x 1,..., x n, t) donde siempre existe al menos un t tal que q(x 1,..., x n, t) es verdadero) 105
106 Eliminando variables de entrada Consideremos un programa P que usa la entrada X 1 y X 2 : INSTRUCCIÓN 1 #(I 1). INSTRUCCIÓN k #(I k) Computa la función f : N 2 N f (x, y) = Ψ (2) P (x, y) #(P) = [#(I 1 ),..., #(I k )] 1 Busco número de programa P 0 para f 0 : N N, f 0 (x) = f (x, 0) [A] X 2 X IF X 2 0 GOTO A 110 INSTRUCCIÓN 1 #(I 1). INSTRUCCIÓN k #(I k ) Computa la función f 0 : N N f 0 (x) = Ψ (1) P 0 (x) #(P 0 ) = [109, 110, #(I 1 ),..., #(I k )] 1 106
107 Eliminando variables de entrada Busco número de programa P 1 para f 1 : N N, f 1 (x) = f (x, 1) [A] X 2 X IF X 2 0 GOTO A 110 X 2 X INSTRUCCIÓN 1 #(I 1). INSTRUCCIÓN k #(I k) Computa la función f 1 : N N f 1 (x) = Ψ (1) P 1 (x) #(P 1 ) = [109, 110, 26, #(I 1 ),..., #(I k )] 1 Busco número de programa P 2 para f 2 : N N, f 2 (x) = f (x, 2) [A] X 2 X IF X 2 0 GOTO A 110 X 2 X X 2 X INSTRUCCIÓN 1 #(I 1 ). INSTRUCCIÓN k #(I k) Computa la función f 2 : N N f 2 (x) = Ψ (1) P 2 (x) #(P 2 ) = [109, 110, 26, 26, #(I 1 ),..., #(I k )] 1 107
108 Teorema del Parámetro Hay un programa P x2 para la función f x2 (x 1 ) = f (x 1, x 2 ) La transformación (x 2, #(P)) #(P x2 ) es p.r., es decir, existe una función S : N 2 N p.r. tal que dado x 2 e y = #(P) calcula #(P x2 ): x 2 S(x 2, y) = j=1 y+1 pj+2 26 Teorema Hay una función p.r. S : N 2 N tal que j=1 Φ (2) y (x 1, x 2 ) = Φ (1) S(x 2,y) (x 1). (y+1)[j] p j+x Teorema Para cada n, m > 0 hay una función p.r. inyectiva S n m : N n+1 N tal que Φ (n+m) y (x 1,..., x m, u 1,..., u n ) = Φ (m) S n m (u 1,...,u n,y) (x 1,..., x m ) 108
109 Programas autoreferentes en la demostración del Halting Problem construimos un programa P que, cuando se ejecuta con su mismo número de programa (i.e. #(P)), evidencia una contradicción en general, los programas pueden dar por supuesto que conocen su mismo número de programa pero si un programa P conoce su número de programa, podría, por ejemplo, devolver su mismo número, i.e. #(P) 109
110 Teorema de la Recursión Teorema Si g : N n+1 N es parcial computable, existe un e tal que Φ (n) e (x 1,..., x n ) = g(e, x 1,..., x n ) Demostración. Sea S 1 n la función del Teorema del Parámetro: Φ (n+1) y (x 1,..., x n, u) = Φ (n) Sn 1 (u,y) (x 1,..., x n ). La función (x 1,..., x n, v) g(s 1 n(v, v), x 1,..., x n ) es parcial computable, de modo que existe d tal que g(s 1 n(v, v), x 1,..., x n ) = Φ (n+1) d (x 1,..., x n, v) = Φ (n) S 1 n (v,d) (x 1,..., x n ) d está fijo; v es variable. Elegimos v = d y e = S 1 n(d, d). 110
111 Teorema de la Recursión Corolario Si g : N n+1 N es parcial computable, existen infinitos e tal que Φ (n) e (x 1,..., x n ) = g(e, x 1,..., x n ) Demostración. En la demostración del teorema anterior, existen infinitos d tal que Φ (n+1) d = g(s 1 n(v, v), x 1,..., x n ). v S 1 n(v, v) es inyectiva de modo que existen infinitos e = S 1 n(d, d). 111
112 Quines Un quine es un programa que cuando se ejecuta, devuelve como salida el mismo programa. Por ejemplo: char*f="char*f=%c%s%c;main() {printf(f,34,f,34,10);}%c"; main(){printf(f,34,f,34,10);} 112
113 Quines Existe e tal que Φ e (x) = e? Sí, el programa vacío tiene numero 0 y computa la función constante 0, i.e. Φ 0 (x) = 0. Proposición Hay infinitos e tal que Φ e (x) = e. Demostración. Considerar la función g : N 2 N, g(z, x) = z. Aplicando el Teorema de la Recursión, existen infinitos e tal que Φ e (x) = g(e, x) = e. 113
114 Quines No hay nada especial con que la salida del programa sea su propio número en el resultado anterior. Funciona para cualquier h parcial computable. Existe e tal que Φ e (x) = h(e)? Proposición Hay infinitos e tal que Φ e (x) = h(e). Demostración. Considerar la función g : N 2 N, g(z, x) = h(z). Aplicando el Teorema de la Recursión, existen infinitos e tal que Φ e (x) = g(e, x) = h(e). 114
115 Teorema del Punto Fijo Teorema Si f : N N es computable, existe un e tal que Φ f (e) = Φ e. Demostración. Considerar la función g : N 2 N, g(z, x) = Φ f (z) (x). Aplicando el Teorema de la Recursión, existe un e tal que para todo x, Φ e (x) = g(e, x) = Φ f (e) (x) 115
116 Ejercicio Probar que f : N N, no es computable. f (x) = { 1 Φ x es total 0 si no Supongamos f computable. Puedo definir el siguiente programa P: Tenemos [A] Ψ (2) P (x, y) = g(x, y) = IF f (X ) = 1 GOTO A { Φ x es total 0 si no es parcial computable. Por el Teorema de la Recursión, sea e tal que Φ e (y) = g(e, y). Φ e es total g(e, y) para todo y Φ e (y) para todo y Φ e no es total Φ e no es total g(e, y) = 0 para todo y Φ e (y) = 0 para todo y Φ e es total 116
117 Computabilidad Clase 7 Conjuntos c.e., teorema de la enumeración, teorema de Rice y aplicaciones 117
118 Conjuntos en teoría de la computabilidad Cuando hablamos un conjunto de naturales A pensamos siempre en la función característica de ese conjunto. { 1 si x A A(x) = 0 si no Así, un conjunto puede ser: computable primitivo recursivo Teorema Sean A, B conjuntos de una clase PRC C. Entonces A B, A B y A están en C. 118
119 Conjuntos computablemente enumerables Igual que con las funciones hay conjuntos computables, por ejemplo, N, {p : p es primo} hay conjuntos no computables, por ejemplo { x, y : HALT(x, y)}, { x, y, z : Φ x (y) = z} Definición Un conjunto A es computablemente enumerable (c.e.) cuando existe una función parcial computable g : N N tal que A = {x : g(x) } = dom g podemos decidir algoritmicamente si un elemento sí pertenece a A, pero para elementos que no pertenecen a A, el algoritmo se indefine se llaman algoritmos de semi-decisión: resuelven una aproximación al problema de decidir la pertenencia de un elemento al conjunto A 119
120 Propiedades de los conjuntos c.e. Un conjunto A es co-c.e. si A es c.e. Teorema Si A es computable entonces A es c.e. Demostración. Sea P A un programa para [la función característica de] A. Consideremos el siguiente programa P: [C] IF P A (X ) = 0 GOTO C Tenemos y por lo tanto Ψ P (x) = { 0 si x A si no A = {x : Ψ P (x) } 120
121 Propiedades de los conjuntos c.e. Teorema Si A y B son c.e. entonces A B y A B también son c.e. Demostración. Sean A = {x : Φ p (x) }, B = {x : Φ q (x) } (A B) El siguiente programa R computa A B: Y Φ p (x) Y Φ q (x) En efecto, Ψ R (x) sii Φ p (x) y Φ q (x). (A B) El siguiente programa R computa A B: [C] IF STP (1) (X, p, T ) = 1 GOTO E IF STP (1) (X, q, T ) = 1 GOTO E T T + 1 GOTO C En efecto, Ψ R (x) sii Φ p (x) o Φ q (x). 121
122 Propiedades de los conjuntos c.e. Teorema A es computable sii A y A son c.e. Demostración. ( ) si A es computable entonces A es computable ( ) supongamos que A y A son c.e. A = {x : Φ p (x) }, A = {x : Φ q (x) } Consideremos P: [C] IF STP (1) (X, p, T ) = 1 GOTO F IF STP (1) (X, q, T ) = 1 GOTO E T T + 1 GOTO C [F ] Y 1 Para cada x, x A o bien x A. Entonces Ψ P computa A. 122
123 Teorema de la enumeración Definimos W n = {x : Φ n (x) } = dominio del n-ésimo programa Teorema Un conjunto A es c.e. sii existe un n tal que A = W n. Existe una enumeración de todos los conjuntos c.e. W 0, W 1, W 2,
124 Problema de la detención (visto como conjunto) Recordar que W n = {x : Φ n (x) } Definimos Observar que K = {n : n W n } n W n sii Φ n (n) sii HALT(n, n) Teorema K es c.e. pero no computable. Demostración. la función n Φ(n, n) es parcial computable, de modo que K es c.e. supongamos que K fuera computable. Entonces K también lo sería. Luego existe un e tal que K = W e. Por lo tanto e K sii e W e sii e K 124
125 Más propiedades de los conjuntos c.e. Teorema Si A es c.e., existe un predicado p.r. R : N 2 N tal que A = {x : ( t) R(x, t)} Demostración. Sea A = W e. Es decir, A = {x : Φ e (x) }. Entonces x A cuando en algún tiempo t, el programa e con entrada x termina, i.e. A = {x : ( t) STP (1) (x, e, t) } }{{} R(x, t) 125
126 Más propiedades de los conjuntos c.e. Teorema Si A es c.e., existe una función p.r. f : N N tal que A = {f (0), f (1), f (2),... } Demostración. Por el teorema anterior, existe P p.r. tal que A = {x : ( t) P(x, t)}. Sea a A y definamos f (u) = { l(u) a si P(l(u), r(u)) si no x A existe t tal que P(x, t) f ( x, t ) = x sea x tal que f (u) = x para algún u. Entonces x = a o bien u es de la forma u = x, t, con P(x, t). Luego x A. 126
127 Más propiedades de los conjuntos c.e. Teorema Si f : N N es parcial computable, A = {f (x) : f (x) } es c.e. Demostración. Sea Φ p = f y sea A = {f (x) : f (x) }. Definamos el programa Q [A] IF STP (1) (Z, p, T ) = 0 GOTO B IF Φ p (Z) = X GOTO E [B] Z Z + 1 IF Z T GOTO A T T + 1 Z 0 GOTO A Notar que Ψ Q (X ) si existen Z, T tal que Z T STP (1) (Z, p, T ) es verdadero (i.e. el programa para f termina en T o menos pasos con entrada Z) X = f (Z) Ψ Q (x) = { 0 si x A si no Luego A es c.e. 127
128 Caracterizaciones de los conjuntos c.e. Teorema Si A, son equivalentes: 1. A es c.e. 2. A es el rango de una función primitiva recursiva 3. A es el rango de una función computable 4. A es el rango de una función parcial computable Demostración. (1 2) Teorema de hoja 126 (2 3) Trivial (3 4) Trivial (4 1) Teorema de hoja
129 Teorema de Rice A N es un conjunto de índices si existe una clase de funciones N N parciales computables C tal que A = {x : Φ x C} Teorema Si A es un conjunto de índices tal que A N, A no es computable. Demostración. Supongamos C tal que A = {x : Φ x C} computable. Sean f C y g / C funciones parciales computables. Sea h : N 2 N la siguiente función parcial computable: { g(x) si t A h(t, x) = f (x) si no Por el Teorema de la Recursión, existe e tal que Φ e (x) = h(e, x). e A Φ e = g Φ e / C e / A e / A Φ e = f Φ e C e A 129
130 Aplicaciones del Teorema de Rice El teorema da una fuente de conjuntos no computables: {x : Φ x es total} {x : Φ x es creciente} {x : Φ x tiene dominio infinito} {x : Φ x es primitiva recursiva} Todos son no computables porque todos son conjuntos de índices no triviales! 130
131 Ejemplos de conjuntos no c.e. K = {x : Φ x (x) } no es c.e. K es c.e. de modo que si K lo fuera, K sería computable Tot = {x : Φ x es total} no es c.e.: es una diagonalización simple. Supongamos que Tot es c.e. existe f computable tal que Tot = {f (0), f (1), f (2),... } entonces existe e tal que Φe (x) = Φ f (x) (x) + 1 como Φ e es total, e Tot. De modo que existe u tal que f (u) = e Φ f (u) (x) = Φ f (x) (x) + 1. Absurdo para x = u. Tot = {x : Φ x no es total} no es c.e. parecido a lo que hicimos la clase pasada. Supongamos Tot c.e. existe d tal que Tot = dom Φd definimos el siguiente programa P: [C] IF STP (1) (X, d, T ) = 1 GOTO E T T + 1 GOTO C sigue igual a lo que vimos la clase pasada { Ψ (2) Φ x es total P (x, y) = g(x, y) = 0 si no 131
132 Conjuntos más difíciles que el halting problem K = {x : Φ x (x) } no es computable pero K es c.e. Tot = {x : Φ x es total} no es computable Tot no es c.e. Tot no es c.e. de alguna forma, Tot es más difícil que K esto se formaliza dentro de la teoría no hay tiempo para verlo en esta materia pero lo estudiamos en Teoría de la Computabilidad se suele dar los primeros cuatrimestres da 3 puntos como optativa para la licenciatura y se cursa 1 vez por semana 132
133 Computabilidad Clase 8 Oráculos, reducibilidad de Turing, jerarquía aritmética, problema de Post 133
134 Oráculos El lenguaje S se extiende: tiene entradas X 1,..., X n N (como antes) y una entrada especial que se llama oráculo en el oráculo no se pone un número natural sino un conjunto A N. un nuevo término para leer el oráculo seteado en A { 1 si i A ORACULO[i] = 0 sino Todo se puede aritmetizar como antes. Existe un programa universal: Φ A e (x 1,..., x n ) = salida del e-ésimo programa con entrada x 1,..., x n y oráculo = A 134
135 Tienen más poder de cómputo Por ejemplo, hay un programa que calcula el halting problem K = {x : Φ x (x) } Pero claro... con oráculo K. Por ejemplo, hay un programa p tal que Φ A p = A para todo A Φ A p = A para todo A Φ K p = {x : dom Φ x = } Sin embargo, hay problemas que no se pueden resolver aun teniendo el oráculo K: {x : Φ x es total} {x : Φ K x (x) } 135
136 Reducibilidad de Turing Para A, B N, decimos que A T B cuando se puede calcular el conjunto A con oráculo B, i.e. existe p tal que o sea, para todo x N Φ B p = A Φ B p (x) = A(x) = También se dice que A es B-computable A T A para todo A A T A para todo A {x : dom Φ x = } T K {x : Φ x es total} T K {x : Φ K x (x) } T K { 1 si x A 0 sino 136
137 El salto Para A N se define el salto de A como Por ejemplo, A = {x : Φ A x (x) } = {x : Φ x(x) } = {x : Φ x (x) } = K = {x : Φ x (x) } = {x : Φ x (x) } (n) = {x : Φ (n 1) x (x) } Decimos A < T B cuando A T B y B T A. En general, para cualquier A N A < T A < T A < T A
138 Conjuntos T A es c.e. sii existe e tal que A = domφ e existe P p.r. tal que A(x) = 1 sii ( y) P(x, y) se los llama conjuntos Σ1 A es co-c.e. sii A es c.e. sii existe e tal que A = domφ e existe R p.r. tal que A(x) = 1 sii ( y) R(x, y) se los llama conjuntos Π 1 A es computable sii A T sii A es c.e. y co-c.e. existen P y R p.r. tal que A(x) = 1 sii ( y) P(x, y) sii ( y) R(x, y) se los llama conjuntos 1 138
139 Conjuntos T A es -c.e. sii existe e tal que A = domφ e existe P p.r. tal que A(x) = 1 sii ( y)( z) P(x, y, z) se los llama conjuntos Σ2 A es -co-c.e. sii A es -c.e. sii existe e tal que A = domφ e existe R p.r. tal que A(x) = 1 sii ( y)( z) R(x, y, z) se los llama conjuntos Π 2 A es -computable sii A T sii A es -c.e. y -co-c.e. existen P y R p.r. tal que A(x) = 1 sii ( y)( z) P(x, y, z) sii ( y)( z) R(x, y, z) se los llama conjuntos 2 139
140 Conjuntos T A es -c.e. sii existe e tal que A = domφ e existe P p.r. tal que A(x) = 1 sii ( y)( z)( w) P(x, y, z, w) se los llama conjuntos Σ3 A es -co-c.e. sii A es -c.e. sii existe e tal que A = domφ e existe R p.r. tal que A(x) = 1 sii ( y)( z)( w) R(x, y, z, w) se los llama conjuntos Π3 sii A es -computable sii A T A es -c.e. y -co-c.e. existen P y R p.r. tal que A(x) = 1 sii ( y)( z)( w) P(x, y, z, w) sii ( y)( z)( y) R(x, y, z, w) se los llama conjuntos 3 140
141 La jerarquía aritmética A es (n) -c.e. sii existe e tal que A = domφ (n) e existe P p.r. tal que A(x) = 1 sii ( y)( z)( w)... P(x, y, z, w,... ) con n alternancias de cuantificadores (empezando con ) se los llama conjuntos Σ n+1 A es (n) -co-c.e. sii A es (n) -c.e. sii existe e tal que A = domφ (n) e existe R p.r. tal que A(x) = 1 sii ( y)( z)( w)... R(x, y, z, w,... ) con n alternancias de cuantificadores (empezando con ) se los llama conjuntos Πn+1 A es (n) -computable sii A T (n) sii A es (n) -c.e. y (n) -co-c.e. existen P y R p.r. tal que A(x) = 1 sii ( y)( z)( w)... P(x, y, z, w,... ) sii ( y)( z)( y)... R(x, y, z, w,... ) con n alternancias de cuantificadores. se los llama conjuntos n+1 141
142 La jerarquía aritmética. Σ 2 Π 2 2 Σ 1 Π
143 Problema de Post Ejemplos de conjuntos c.e. K = {x : Φ x (x) } T T { x, y : Φ x (y) } T {x : x es primo} T { x, y, z : Φ x (y) = z} T N T {x : dom Φ x } T {x : Φ x (x) tarda más de 10 pasos en terminar} T {x : 0 dom Φ x } T Decimos A T B cuando A T B y B T A. Problema de Post (1944): Existe un A c.e. tal que < T A < T? 143
144 Solución al problema de Post [Muchnik (1956), Friedberg (1957)] Construir un conjunto A c.e. tal que 1. A es bajo (low): A T esto garantiza A < T A T 2. A es simple: A es infinito y A no contiene ningún conjunto infinito c.e. no puede ser A T. Si lo fuera, A sería c.e. e infinito. 144
145 Materia optativa Todo esto y mucho más en... Teoría de la Computabilidad se suele dar los primeros cuatrimestres da 3 puntos como optativa para la licenciatura y se cursa 1 vez por semana 145
146 Lógica Proposicional Clase 1 Lenguaje de lógica proposicional, semántica, tautología, consecuencia semántica, conjunto satisfacible, sistema axiomático SP, consecuencia sintáctica 146
147 El lenguaje P símbolos p ( ) fórmulas p, p, p, p,... son símbolos proposicionales 1. todo símbolo proposicional es una fórmula 2. si ϕ es una fórmula entonces ϕ es una fórmula 3. si ϕ y ψ son fórmulas entonces (ϕ ψ) es una fórmula 4. nada más es una fórmula convenciones escribimos q por p r por p s por p... escribimos (ϕ ψ) en lugar de ( ϕ ψ) escribimos (ϕ ψ) en lugar de (ϕ ψ) escribimos ϕ en lugar de (ϕ) cuando convenga llamamos PROP al conjunto de todos los símbolos proposicionales llamamos FORM al conjunto de todas las fórmulas 147
148 Semántica Una interpretación es una función v : PROP {0, 1} A v también se la llama valuación. Definimos la noción de verdad de una fórmula para una valuación. Si ϕ FORM y v es una valuación, notamos v = ϕ si ϕ es verdadera para v v = ϕ si ϕ es falsa para v La definición de = es recursiva: 1. si p PROP, v = p sii v(p) = 1 2. v = ψ sii v = ψ 3. v = (ψ ρ) sii v = ψ o v = ρ 148
149 Semántica Observar que, por la convención, 5. v = (ψ ρ) sii v = ψ y v = ρ 6. v = (ψ ρ) sii v = ψ o v = ρ Por ejemplo, si v(p) = 1, v(q) = 0, v(r) = 1 v = (p r) v = (q r) v = p v = (p q) 149
150 Tautologías y método de decisión Una fórmula ϕ es una tautología ( = ϕ) si ϕ es verdadera para toda interpretación, i.e. para toda valuación v, v = ϕ. Proposición Sea ϕ FORM y sean v y w son dos valuaciones tal que v(p) = w(p) para toda variable proposicional que aparece en ϕ. Entonces v = ϕ sii w = ϕ. Existe un método de decisión para saber si ϕ es tautología o no: supongamos que ϕ tiene variables proposicionales p 1,..., p n sea P ({p 1,..., p n }) = {V 1,..., V 2 n} para i {1,..., 2 n } definimos v i (p) = ϕ es tautología sii { 1 si p V i 0 si no v i = ϕ para todo i {1,..., 2 n } 150
151 Consecuencia semántica y conjunto satisfacible Sea Γ FORM y ϕ FORM ϕ es consecuencia semántica de Γ (Γ = ϕ) si para toda interpretación v: si v = ψ para toda ψ Γ, entonces v = ϕ }{{} lo notamos v = Γ Γ es satisfacible si existe una interpretación v tal que v = ψ para toda ψ Γ (i.e. tal que v = Γ) Por ejemplo {q} = q {q} = p q {r, p q} = p {r, p q} = s es satisfacible {p, q} es satisfacible { p, p q} no es satisfacible {p, p q, q} no es satisfacible 151
152 Algunos resultados sobre = Proposición 1. = ϕ sii = ϕ (i.e. ϕ es tautología) 2. si = ϕ entonces Γ = ϕ 3. {ϕ} = ϕ 4. si Γ y Γ = ϕ entonces = ϕ 5. si Γ = ϕ y Γ = ϕ ψ entonces Γ = ψ Demostración de 5. sea v una interpretación tal que v = Γ sabemos v = ϕ sabemos v = ϕ ψ concluimos v = ψ 152
153 Mecanismo deductivo SP axiomas. Sean ϕ, ψ, ρ FORM SP1 ϕ (ψ ϕ) SP2 (ϕ (ψ ρ)) ((ϕ ψ) (ϕ ρ)) SP3 ( ϕ ψ) (ψ ϕ) regla de inferencia MP Sean ϕ, ψ FORM. ψ es una consecuencia inmediata de ϕ ψ y ϕ Una demostración de ϕ en SP es una cadena finita y no vacía ϕ 1,..., ϕ n de fórmulas de P tal que ϕ n = ϕ y ϕ i es un axioma o ϕ i es una consecuencia inmediata de ϕ k, ϕ l, k, l < i En este caso, decimos que ϕ es un teorema ( ϕ) 153
154 Ejemplo: demostración de p p Recordar Demostración: SP1 ϕ (ψ ϕ) SP2 (ϕ (ψ ρ)) ((ϕ ψ) (ϕ ρ)) SP3 ( ϕ ψ) (ψ ϕ) MP Sean ϕ, ψ FORM. ψ es una consecuencia inmediata de ϕ ψ y ϕ 1. p ((p p) p) SP1 2. (p ((p p) p)) ((p (p p)) (p p)) SP2 3. (p (p p)) (p p) MP 1 y 2 4. p (p p) SP1 5. p p MP 3 y 4 Concluimos p p (i.e. p p es un teorema) 154
155 Consecuencia sintáctica Sea Γ FORM y ϕ FORM ϕ es una consecuencia sintáctica de Γ (Γ ϕ) si existe una cadena finita y no vacía ϕ 1,..., ϕ n de fórmulas de P tal que ϕ n = ϕ y ϕ i es un axioma o ϕ i Γ o ϕ i es una consecuencia inmediata de ϕ k, ϕ l, k, l < i Aquí, ϕ 1,..., ϕ n se llama derivación de ϕ a partir de Γ. Γ se llama teoría. Decimos que ϕ es un teorema de la teoría Γ. 155
156 Correctitud de SP Teorema Si Γ ϕ entonces Γ = ϕ (i.e. si es teorema de la teoría Γ, es válido en toda interpretación de Γ). Demostración. Supongamos Γ ϕ. Es decir, existe una cadena finita y no vacía ϕ 1,..., ϕ n de fórmulas de P tal que ϕ n = ϕ y ϕ i es un axioma o ϕ i Γ o ϕ i es una consecuencia inmediata de ϕ k, ϕ l, k, l < i Demostramos que Γ = ϕ por inducción en n (la longitud de la demostración). Detalles a continuación. 156
157 Demostración de Correctitud de SP Propiedad a demostrar: P(n) = si ϕ 1,..., ϕ n = ϕ es una derivación de ϕ a partir de Γ entonces v = Γ v = ϕ Demostramos que vale P(n) por inducción en n. 1. caso base. Veamos que vale P(1). Sup. v tal que v = Γ. Queremos ver que v = Γ v = ϕ. Hay 2 posibilidades 1.1 ϕ is axioma de SP: en este caso, v = ϕ; 1.2 ϕ Γ: en este caso, también v = ϕ. 2. paso inductivo. Sup. v tal que v = Γ. Sup. que vale P(m) para todo m n. Queremos ver que vale P(n + 1).Sup. ϕ 1,..., ϕ n, ϕ n+1 = ϕ es una derivación de ϕ a partir de Γ. Hay 3 posibilidades 2.1 ϕ is axioma de SP: igual que en caso base; 2.2 ϕ Γ: igual que en caso base; 2.3 ϕ es consecuencia inmediata de ϕ i y ϕ j = ϕ i ϕ (i, j n). Por HI (P(i) y P(j)), sabemos v = ϕ i y v = ϕ i ϕ. Entonces necesariamente v = ϕ. 157
158 Ejemplos Γ 1 = {p} p 1. p p Γ 1 Γ 2 = {p} ϕ p 1. p p Γ 2 2. p (ϕ p) SP1 3. ϕ p MP 1 y 2 Γ 3 = {p} q porque Γ 3 = q (considerar v(p) = 1; v(q) = 0) Γ 4 = {p, p} ϕ 1. p ( ϕ p) SP1 2. p p Γ 4 3. ϕ p MP 1 y 2 4. ( ϕ p) (p ϕ) SP3 5. p ϕ MP 3 y 4 6. p p Γ 4 7. ϕ MP 5 y 6 158
159 Conjuntos y sistemas consistentes Γ FORM es consistente si no existe ϕ FORM tal que Γ ϕ y Γ ϕ Un sistema S es consistente si no existe ϕ FORM tal que Teorema El sistema SP es consistente. Demostración. sea v cualquier valuación S ϕ y S ϕ por correctitud, todo teorema de SP es verdadero para v ϕ v = ϕ v = ϕ ϕ luego no puede pasar que ϕ y ϕ sean teoremas 159
160 Algunos resultados sobre Proposición 1. ϕ sii ϕ (i.e. ϕ es teorema) 2. si ϕ entonces Γ ϕ 3. {ϕ} ϕ 4. si Γ y Γ ϕ entonces ϕ 5. si Γ ϕ y Γ ϕ ψ entonces Γ ψ Si reemplazamos por =, obtenemos los mismos resultados (ver hoja 152) 160
161 Resumen lenguaje P semántica tautología (verdadera en toda interpretación) consecuencia semántica = conjunto satisfacible (existe modelo para todos sus elementos) método deductivo teorema (tiene demostración en SP) consecuencia sintáctica conjunto consistente (no permite probar ϕ y ϕ) 161
162 Notas sobre computabilidad Se pueden codificar las fórmulas de P con números naturales. a cada fórmula ϕ se le asigna un número #ϕ > 0 cada número positivo representa una única fórmula Se puede decidir algorítmicamente si una fórmula es un axioma o no es computable la función { 1 si la fórmula de número x es un axioma de SP ax(x) = 0 si no Se puede decidir algorítmicamente si una formula es consecuencia inmediata de otras dos es computable la función si la fórmula de número z es consecencia 1 mp(x, y, z) = inmediata de las fórmulas de números x e y 0 si no 162
163 Notas sobre computabilidad Las demostraciones son listas (finitas) de fórmulas. la demostración ϕ 1... ϕ n se codifica como [#ϕ 1,..., #ϕ n ] Se puede decidir algorítmicamente si una lista de fórmulas es una demostración válida o no es computable la función { 1 x es una demostración válida dem(x) = 0 si no en efecto, dem(x) = ( k {1,..., x })[ax(x[k]) cons(x, k)] cons(x, k) = ( i, j {1,..., k 1})[mp(x[i], x[j], x[k])] 163
164 Notas sobre computabilidad considerar el siguiente programa P: [A] IF dem(d) = 1 D[ D ] = X GOTO E D D + 1 GOTO A P busca una demostración para la fórmula con número X si la encuentra, se detiene si no, se indefine ϕ sii Ψ P (#ϕ), o equivalentemente ϕ es teorema sii #ϕ domψ P el conjunto de teoremas de SP es c.e. esto pasa en general para cualquier sistema axiomático es decir, cualquier sistema de deducción con un conjunto computable de axiomas y reglas de inferencia computables tiene un conjunto de teoremas c.e. será computable el conjunto de teoremas de SP? 164
165 Lógica Proposicional Clase 2 Teorema de la deducción, lema de Lindenbaum, completitud de SP, compacidad 165
166 Plan vimos que SP es correcto: Γ ϕ Γ = ϕ Esto prueba Γ satisfacible Γ consistente ahora veremos que SP es completo: Γ ϕ Γ = ϕ Para esto: Lema de Lindenbaum Γ satisfacible Γ consistente consecuencia: Teorema de Compacidad 166
167 El Teorema de la Deducción Teorema Si Γ {ϕ} ψ entonces Γ ϕ ψ Demostración. Por inducción en la longitud de la demostración de Γ {ϕ} ψ. Supongamos que ϕ 1,..., ϕ n es una derivación de ψ (= ϕ n ) a partir de Γ {ϕ}. caso base (n = 1) paso inductivo HI: para toda derivación de ψ a partir de Γ {ϕ} de longitud < n tenemos Γ ϕ ψ probamos que para una demostración de longitud n de Γ {ϕ} ψ tenemos Γ ϕ ψ. 167
168 Demostración del Teorema de la Deducción (caso base) Supongamos ϕ 1,..., ϕ n es una derivación de ψ a partir de Γ {ϕ} n = 1 (i.e. la derivación es una sola fórmula ϕ 1 = ψ) Queremos ver que Γ ϕ ψ. Hay 3 posibilidades: 1. ψ es un axioma de SP 1. ψ ψ es axioma 2. ψ (ϕ ψ) SP1 3. ϕ ψ MP 1,2 ϕ ψ 2. ψ Γ 1. ψ ψ Γ 2. ψ (ϕ ψ) SP1 3. ϕ ψ MP 1,2 Γ ϕ ψ 3. ψ = ϕ vimos que p p. la misma demostración sirve para probar ϕ ϕ 168
169 Demostración del Teorema de la Deducción (paso inductivo) Supongamos ϕ 1,..., ϕ n es una derivación de ψ a partir de Γ {ϕ} HI: para toda derivación de ψ a partir de Γ {ϕ} de longitud < n tenemos Γ ϕ ψ Queremos ver que Γ ϕ ψ. Hay 4 posibilidades: 1. ψ es un axioma de SP: igual que en en caso base 2. ψ Γ: igual que en en caso base 3. ψ = ϕ: igual que en en caso base 4. ψ se infiere por MP de ϕ i y ϕ j (i, j < n) sin pérdida de generalidad, ϕj = ϕ i ψ Γ {ϕ} ϕ i y la derivación tiene longitud < n por HI Γ ϕ ϕ i Γ {ϕ} ϕ j y la derivación tiene longitud < n por HI Γ ϕ ϕj, i.e. Γ ϕ (ϕ i ψ) sabemos (SP2) (ϕ (ϕi ψ)) ((ϕ ϕ i ) (ϕ ψ)) por MP 2 veces Γ ϕ ψ 169
170 Conjuntos consistentes Proposición 1. Γ { ϕ} es inconsistente sii Γ ϕ 2. Γ {ϕ} es inconsistente sii Γ ϕ Demostración de 1. ( ) Γ ϕ Γ { ϕ} ϕ trivialmente Γ { ϕ} ϕ } Γ { ϕ} es inconsistente ( ) existe ψ tal que Γ { ϕ} ψ y Γ { ϕ} ψ por el Teorema de la Deducción, Γ ϕ ψ y Γ ϕ ψ se puede ver que (ejercicio) ( ϕ ψ) (( ϕ ψ) ϕ) por MP 2 veces tenemos Γ ϕ 170
171 Satisfacible consistente Teorema Si Γ FORM es satisfacible entonces Γ es consistente. Demostración. supongamos v tal que v = Γ pero Γ es inconsistente existe ψ tal que Γ ψ y Γ ψ por correctitud de SP, Γ = ψ y Γ = ψ v = ψ y v = ψ 171
172 Lema de Lindenbaum Γ FORM es maximal consistente (m.c.) en SP si Γ es consistente y para toda fórmula ϕ ϕ Γ o existe ψ tal que Γ {ϕ} ψ y Γ {ϕ} ψ Lema Si Γ FORM es consistente, existe Γ m.c. tal que Γ Γ. 172
173 Demostración del Lema de Lindenbaum (obtener Γ Γ m.c.) Enumeramos todas las fórmulas: ϕ 1, ϕ 2,... Definimos Γ 0 = Γ Γ n+1 = { Γ n {ϕ n+1 } Γ n Γ = i 0 Γ i si Γ n {ϕ n+1 } es consistente si no Tenemos 1. Γ Γ 2. cada Γ i es consistente 3. Γ es consistente si no, existe ψ tal que Γ ψ y Γ ψ en ambas derivaciones aparecen únicamente {γ1,..., γ k } Γ. sea j suficientemente grande tal que {γ1,..., γ k } Γ j entonces Γ j ψ y Γ j ψ; contradice 2 4. Γ es maximal supongamos ϕ / Γ. Debe existir n tal que ϕ n+1 = ϕ ϕn+1 / Γ n+1, entonces Γ n {ϕ n+1 } es inconsistente luego Γ {ϕ n+1 } es inconsistente (pues Γ Γ n ) 173
174 Conjuntos maximales consistentes Proposición Si Γ es m.c. entonces para toda ϕ FORM, o bien ϕ Γ o bien ϕ Γ. Demostración. no puede ser que ϕ y ϕ estén en Γ porque sería inconsistente supongamos que ninguna está. Como Γ es maximal y por Proposición de la hoja 170, Γ {ϕ} es inconsistente Γ ϕ Γ { ϕ} es inconsistente Γ ϕ } Γ inconsistente Proposición Sea Γ m.c. Γ ϕ sii ϕ Γ. 174
175 Consistente satisfacible Teorema Si Γ FORM es consistente entonces Γ es satisfacible. Demostración. Dado Γ consistente, construimos Γ Γ m.c. (Lindenbaum) Definimos la interpretación v tal que v(p) = 1 sii p Γ Veamos v = ϕ sii ϕ Γ por inducción en la complejidad de ϕ (i.e. cantidad de o que aparecen en ϕ) caso base: ϕ = p. Trivial por definición de v. paso inductivo: HI: v = ϕ sii ϕ Γ para toda ϕ de complejidad < m Sea ϕ de complejidad m. Hay 2 casos: 1. ϕ = ψ 2. ϕ = ψ ρ 175
176 Demostración de consistente satisfacible (caso ϕ = ψ) HI: v = ϕ sii ϕ Γ para toda ϕ de complejidad < m ϕ = ψ tiene complejidad m. Quiero probar que v = ϕ sii ϕ Γ ( ) v = ϕ v = ψ HI ψ / Γ ψ Γ ϕ Γ ( ) ϕ Γ ψ / Γ HI v = ψ v = ψ v = ϕ 176
177 Demostración de consistente satisfacible (caso ϕ = ψ ρ) HI: v = ϕ sii ϕ Γ para toda ϕ de complejidad < m ϕ = ψ ρ tiene complejidad m. Quiero probar que v = ϕ sii ϕ Γ ( ) v = ϕ v = (ψ ρ) v = ψ o v = ρ HI v = ψ ψ / Γ ψ Γ Γ ψ sabemos ψ (ψ ρ) por MP Γ ψ ρ entonces ψ ρ Γ v = ρ HI ρ Γ Γ ρ sabemos por SP1 que ρ (ψ ρ) por MP Γ ψ ρ entonces ψ ρ Γ (ejercicio) ( ) v = ϕ v = ψ y v = ρ HI ψ Γ y ρ / Γ ψ Γ y ρ Γ Γ ψ y Γ ρ sabemos ψ ( ρ (ψ ρ)) (ejercicio) aplicando MP 2 veces, Γ (ψ ρ) por lo tanto (ψ ρ) Γ entonces ψ ρ / Γ 177
178 Teorema de Completitud (fuerte) Probamos que Γ consistente sii Γ satisfacible (hojas 171 y 175) Γ { ϕ} es inconsistente sii Γ ϕ (hoja 170) Teorema Si Γ = ϕ entonces Γ ϕ. Demostración. supongamos Γ = ϕ Γ { ϕ} es insatisfacible Γ { ϕ} es inconsistente Γ ϕ 178
179 Consecuencias del Teorema de Completitud Corolario Γ ϕ sii Γ = ϕ Corolario ϕ sii = ϕ (i.e. ϕ es un teorema de SP sii es tautología) Teorema (Compacidad) Sea Γ FORM. Si todo subconjunto finito de Γ es satisfacible, entonces Γ es satisfacible. Demostración. supongamos Γ insatisfacible Γ es inconsistente existe ψ tal que Γ ψ y Γ ψ se usan solo finitos axiomas de Γ existe Γ finito tal que ψ y ψ es inconsistente es insatisfacible 179
180 Resumen lenguaje P semántica tautología (verdadera en toda interpretación) consecuencia semántica = conjunto satisfacible (existe modelo para todos sus elementos) método deductivo teorema (tiene demostración en SP) consecuencia sintáctica conjunto consistente (no permite probar ϕ y ϕ) 180
181 Notas sobre computabilidad Habíamos visto que el conjunto de teoremas de SP es c.e. Vemos que, de hecho, es computable: método de decisión = tablas de verdad ϕ sii = ϕ ϕ sii en la tabla de verdad de ϕ solo hay 1s en la última columna 181
182 Lógica de Primer Orden Clase 1 Lenguaje de lógica de primer orden, términos, fórmulas, variables libres y ligadas, interpretación, valuación, niveles de verdad, consecuencia semántica 182
183 Lenguajes de primer orden símbolos lógicos y auxiliares: x ( ) x, x, x, x,... son variables VAR es el conjunto de variables se llama cuantificador universal símbolos de cada lenguaje particular L = C F P, donde C es un conjunto de símbolos de constantes (puede ser C = ) F es un conjunto de símbolos de funciones (puede ser F = ) P es un conjunto de símbolos de predicados (P ) 183
184 Términos Para un lenguaje fijo L, definimos los términos de L: 1. toda variable es un término 2. todo símbolo de constante de L es un término 3. si f es un símbolo de función n-ádico de L y t 1,..., t n son términos de L, entonces f (t 1,..., t n ) es un término de L 4. nada más es un término de L TERM(L) es el conjunto de todos los términos del lenguaje L Un término es cerrado si no tiene variables. Por ejemplo, para L = C F P, con C = {c, d}, F = {f } y P = {R} (f de aridad 3, R binario) son términos: c, d, x, f (c, d, x ), f (c, f (x, x, x ), x ) 184
185 Fórmulas Para un lenguaje fijo L, definimos las fórmulas de L: 1. si P es un símbolo de predicado n-ádico de L y t 1,..., t n son términos de L, entonces P(t 1,..., t n ) es una fórmula de L (atómica) 2. si ϕ es una fórmula de L entonces ϕ es una fórmula de L 3. si ϕ y ψ son fórmulas de L entonces (ϕ ψ) es una fórmula de L 4. si ϕ es una fórmula de L y x una variable entonces ( x)ϕ es una fórmula de L 5. nada más es una fórmula de L FORM(L) es el conjunto de todas las fórmulas del lenguaje L Por ejemplo, para L = C F P, con C = {c, d}, F = {f } y P = {R} (f de aridad 3, R binario) son fórmulas: R(d, x ), ( x ) R(d, x ), ( x ) R(f (x, x, x ), d) 185
186 Convenciones usamos x, y, z,... para variables usamos a, b, c, d,... para símbolos de constante usamos f, g, h,... para símbolos de función (la aridad siempre va a quedar clara del contexto) usamos P, Q, R,... para símbolos de predicado (la aridad siempre va a quedar clara del contexto) escribimos ( x)ϕ en lugar de ( x) ϕ escribimos (ϕ ψ) en lugar de ( ϕ ψ) escribimos (ϕ ψ) en lugar de (ϕ ψ) escribimos ϕ en lugar de (ϕ) cuando convenga 186
187 Variables libres y ligadas una aparición de una variable x en una fórmula está ligada si está dentro del alcance de un cuantificador. En caso contrario, dicha aparición está libre. una variable está libre en una fórmula si todas sus apariciones están libres. una variable está ligada en una fórmula si todas sus apariciones están ligadas. una fórmula es una sentencia si todas las variables son ligadas (es decir, no hay apariciones libres de variables) Por ejemplo, (para un lenguaje con un símbolo de predicado binario P) en P(x, y), x está libre en ( y) P(x, y), x está libre en ( x) P(x, y), x está ligada en ( x)( y) P(x, y), x está ligada en P(x, y) ( x)( y) P(x, y) la primera aparición de x está libre la segunda aparición de x está ligada entonces, x no está ni libre ni ligada 187
188 Interpretación de un lenguaje Una L-estructura A de un lenguaje L = C F P es un conjunto A no vacío, se lo llama universo o dominio las siguientes asignaciones: para cada símbolo de constante c C, un elemento fijo c A A para cada símbolo de función n-aria f F, una función f A : A n A para cada símbolo de predicado n-ario P P, una relación P A A n Las funciones f A y predicados P A son siempre totales. 188
189 Ejemplos Para L = C F P, con C = {c, d}, F = {f, g} y P = {P} (f unaria, g binaria, P binario) L-estructura A A = Z c A = 0 d A = 1 f A (x) = x g A (x, y) = x + y P A (x, y) sii x divide a y L-estructura B B = P(N) c B = d B = N f B (x) = x g B (x, y) = x y P B (x, y) sii x y 189
190 No ejemplos Para L = C F P, con C = {c, d}, F = {f, g} y P = {P} (f unaria, g binaria, P binario) L-estructura M M = Z c M = 0 d M = 1 f M (x) = 1/x g M (x, y) = x y P M (x, y) sii x divide a y en general 1/x / Z x y / Z L-estructura N N = funciones R R c N = función identidad d N = función 0 f N (x) = derivada de x g N (x, y) = x y P N (x, y) sii x = y una función R R puede no ser derivable 190
191 Valuaciones Fijemos una L-estructura A con dominio A. Una valuación para A es una función v : VAR A Extendemos v a ṽ : TERM(L) A, que interpreta un término t en una L-estructura A: si t = x (variable) entonces si t = c (constante) entonces ṽ(t) = v(x) ṽ(t) = c A si t = f (t 1,..., t n ) (función) entonces ṽ(t) = f A (ṽ(t 1 ),..., ṽ(t n )) Sea v una valuación de A y sea a A. Definimos la valuación v(x = a) de la siguiente manera { v(y) x y v(x = a) (y) = a x = y 191
192 Ejemplos Para L = C F P, con C = {c, d}, F = {f, g} y P = {P} (f unaria, g binaria, P binario) L-estructura A A = Z c A = 0 d A = 1 f A (x) = x g A (x, y) = x + y P A (x, y) sii x divide a y L-estructura B B = P(N) c B = d B = N f B (x) = x g B (x, y) = x y P B (x, y) sii x y Tenemos si v(x) = 2 ṽ ( g(x, f (d)) ) = 2+( 1) = 1 para cualquier v Tenemos si v(x) = {1, 2} ṽ ( g(x, f (d)) ) = {1, 2} N = {1, 2} para cualquier v ṽ ( g(c, f (d)) ) = 0+( 1) = 1 ṽ ( g(c, f (d)) ) = N = 192
193 Interpretación de una fórmula Sea A una L-estructura con dominio A y v una valuación de A. Definimos cuando ϕ es verdadera en A bajo la valuación v (notación: A = ϕ[v]) 1. ϕ es de la forma P(t 1,..., t n ) (atómica) A = P(t 1,..., t n )[v] 2. ϕ es de la forma ψ sii (ṽ(t1 ),..., ṽ(t n ) ) P A A = ψ[v] sii no A = ψ[v] 3. ϕ es de la forma (ψ ρ) A = (ψ ρ)[v] sii no A = ψ[v] o A = ρ[v] 4. ϕ es de la forma ( x)ψ A = ( x)ψ[v] sii para cualquier a A, A = ψ[v(x = a)] 193
194 Ejemplos Para L = C F P, con C = {c, d}, F = {f, g} y P = {P} (f unaria, g binaria, P binario) L-estructura A A = Z c A = 0 d A = 1 f A (x) = x g A (x, y) = x + y P A (x, y) sii x divide a y L-estructura B B = P(N) c B = d B = N f B (x) = x g B (x, y) = x y P B (x, y) sii x y Tenemos para v(x) = 1 A = P(x, d)[v] para v(x) = 0 A = P(x, c)[v] para cualquier v A = ( y)p(y, g(y, d))[v] Tenemos para v(x) = B = P(x, d)[v] para v(x) = {1, 2, 3} B = P(x, c)[v] para cualquier v B = ( y)p(y, g(y, d))[v] 194
195 Notación (,, ) Sea A una L-estructura y v una valuación de A. Se deduce: 5. ϕ es de la forma (ψ ρ) A = (ψ ρ)[v] sii A = ψ[v] o A = ρ[v] 6. ϕ es de la forma (ψ ρ) A = (ψ ρ)[v] sii A = ψ[v] y A = ρ[v] 7. ϕ es de la forma ( x)ψ A = ( x)ψ[v] sii hay un a A tal que A = ψ[v(x = a)] 195
196 3 niveles de verdad Para un lenguaje L fijo. 1. ϕ es satisfacible si existe una L-estructura A y una valuación v de A tal que A = ϕ[v] 2. ϕ es verdadera (o válida) en una L-estructura A (A = ϕ) si A = ϕ[v] para toda valuación v de A decimos que A es un modelo de ϕ 3. ϕ es universalmente válida ( = ϕ) si A = ϕ[v] para toda L-estructura A y toda valuación v de A 196
197 Ejemplos A = Z; <, 0 con la interpretación usual A = ( x)( y) x < y A = ( y) x < y A = x < y ( z) (x < z z < y) A = ( x) x < 0 B = N; <, 0 con la interpretación usual B = x < y ( z) (x < z z < y) B = ( x) x < 0 C = Q; <, 0 con la interpretación usual C = x < y ( z) (x < z z < y) C = ( x) x < 0 ( x)( y) P(x, y) es satisfacible D = {0}; = con la interpretación usual E = N; con la interpretación usual = ( x) P(x) P(x) se entiende ( ( x) P(x) ) P(x) = P(x) ( x) P(x) F = N; par con la interpretación usual, v(x) = 0 197
198 Algunos resultados sobre satisfacibilidad y validez si ϕ es una sentencia, A = ϕ sii A = ϕ[v] ϕ es universalmente válida sii ϕ es insatisfacible preservación de validez del Modus Ponens: A = ϕ[v] y A = (ϕ ψ)[v] entonces A = ψ[v] A = ϕ y A = (ϕ ψ) entonces A = ψ = ϕ y = (ϕ ψ) entonces = ψ clausura universal A = ϕ sii A = ( x)ϕ = ϕ sii = ( x)ϕ 198
199 Consecuencia semántica Sea Γ FORM(L) y ϕ FORM(L) ϕ es consecuencia semántica de Γ (Γ = ϕ) si para toda L-estructura A y toda valuación v de A: si A = Γ[v] entonces A = ϕ[v] Notación: A = Γ[v] significa que para toda ψ Γ, A = ψ[v] 199
200 Ejemplos L = {P, Q}, con P y Q símbolos de predicado 1-arios Γ 1 = { ( x)(p(x) Q(x)) } Γ 1 = ( x)p(x) Γ 1 = ( x)p(x) ( x)q(x) Γ 1 = ( x)p(x) ( x)q(x) Γ 2 = { ( x)(p(x) Q(x)), ( x)p(x) } Γ2 = ( x)q(x) Γ2 = ( x)(p(x) Q(x)) Γ 2 = ( x)( P(x) Q(x)) Γ 3 = { ( x)(p(x) Q(x)), ( x)(p(x) Q(x)) Γ 3 = ϕ para cualquier ϕ } 200
201 Lenguajes con igualdad L es un lenguaje con igualdad si tiene un símbolo proposicional binario especial (el =) que sólo se interpreta como la igualdad. Fijemos un lenguaje L con igualdad y con ningún otro símbolo. Buscamos ϕ FORM(L) tal que {A : A = ϕ} sea la clase de modelos con exactamente 1 elemento con exactamente 2 elementos ϕ = ( x)( y)x = y ϕ = ( x)( y) ( { x=y }}{ x y ( z)(z = x z = y) ) con al menos 3 elementos ϕ = ( x)( y)( z) ( x y x z y z ) con infinitos elementos... con finitos elementos. Se podrá? 201
202 Lógica de Primer Orden Clase 2 Lema de sustitución, sistema axiomático SQ, consecuencia sintáctica, teorema de la generalización, teorema de la generalización en constantes 202
203 Reemplazo de variables libres por términos Sea L = C F P un lenguaje fijo. Sea ϕ FORM(L), t TERM(L) y x VAR. ϕ[x/t] es la fórmula obtenida a partir de ϕ sustituyendo todas las apariciones libres de la variable x por t Por ejemplo, (para un lenguaje con símbolo de predicado binario P y símbolo de función unario f ) P(x, y)[x/f (z)] = P(f (z), y) P(x, y)[x/f (x)] = P(f (x), y) ( ( x)( y) P(x, y) ) [x/f (z)] = ( x)( y) P(x, y) ( P(x, y) ( x)( y) P(x, y) ) [x/f (z)] = P(f (z), y) ( x)( y) P(x, y) Si c C, ϕ[c/t] es la fórmula obtenida a partir de ϕ sustituyendo todas las apariciones de la constante c por t 203
204 Variable reemplazable por un término Sea t TERM(L), x VAR, ϕ FORM(L). Decimos que x es reemplazable por t en ϕ cuando 1. t es un término cerrado (i.e. no tiene variables) o 2. t tiene variables pero ninguna de ellas queda atrapada por un cuantificador en el reemplazo ϕ[x/t] Por ejemplo, (para un lenguaje con símbolo de predicado unario P y símbolo de función binaria f ) En ( y) ( ( x)p(x) P(x) ) x es reemplazable por z: ( y) ( ( x)p(x) P(z) ) x es reemplazable por f (x, z): ( y) ( ( x)p(x) P(f (x, z)) ) x no es reemplazable por f (x, y): ( y) ( ( x)p(x) P(f (x, y)) ) 204
205 Lema de Sustitución Lema Si x es reemplazable por t en ϕ entonces A = (ϕ[x/t])[v] sii A = ϕ[v(x = ṽ(t))] Demostración. Por inducción en la complejidad de ϕ. (a veces escribo v por ṽ) ϕ = P(u) es atómica (u es término; el caso n-ario es similar). A = P(u[x/t])[v] sii ṽ(u[x/t]) P A sii (lema auxiliar) v[x = ṽ(t)](u) P A sii A = ϕ[v(x = ṽ(t))]. ϕ es de la forma ψ o de la forma ψ ρ. Directo. (sigue ) 205
206 Lema de Sustitución Demostración (cont.) ϕ es de la forma ( y) ψ. Sup. x no aparece libre en ϕ. Entonces v y v[x = v(t)] coinciden en todas las variables que aparecen libres en ϕ. Además, ϕ = ϕ[x/t]. Inmediato. Sup. x aparece libre en ϕ. Como x es reemplazable por t en ϕ, y no ocurre en t. Luego para todo d A, v(t) = v(y = d)(t). (1) Además, x es reemplazable por t en ψ. Como x y, Luego ϕ[x/t] = (( y) ψ)[x/t] = ( y) (ψ[x/t]). A = ϕ[x/t][v] sii (def.) para todo d A, A = ψ[x/t][v(y = d)] sii (HI) para todo d A, A = ψ[v(y = d) (x = w(t))] }{{} w sii (1) para todo d A, A = ψ[v(y = d)(x = v(t))] sii (x y) para todo d A, A = ψ[v(x = v(t))(y = d)] sii (def.) A = ϕ[v(x = v(t))] 206
207 Mecanismo deductivo SQ (para un lenguaje fijo L) Para un lenguaje fijo L axiomas. Sean ϕ, ψ, ρ FORM(L), x VAR, t TERM(L) SQ1 ϕ (ψ ϕ) SQ2 (ϕ (ψ ρ)) ((ϕ ψ) (ϕ ρ)) SQ3 ( ϕ ψ) (ψ ϕ) SQ4 ( x)ϕ ϕ[x/t] si x es reemplazable por t en ϕ SQ5 ϕ ( x)ϕ si x no aparece libre en ϕ SQ6 ( x)(ϕ ψ) (( x)ϕ ( x)ψ) SQ7 si ϕ es un axioma entonces ( x)ϕ también es un axioma regla de inferencia MP Sean ϕ, ψ FORM(L). ψ es una consecuencia inmediata de ϕ ψ y ϕ 207
208 Consecuencia sintáctica, demostraciones, teoremas, teorías Fijamos un lenguaje L. Sea Γ FORM(L) y ϕ FORM(L) 1. una demostración de ϕ en SQ es una cadena finita y no vacía ϕ 1,..., ϕ n de fórmulas de L tal que ϕ n = ϕ y ϕi es un axioma o ϕi es una consecuencia inmediata de ϕ k, ϕ l, k, l < i En este caso, decimos que ϕ es un teorema ( ϕ). 2. ϕ es una consecuencia sintáctica de Γ (Γ ϕ) si existe una cadena finita y no vacía ϕ 1,..., ϕ n de fórmulas de L tal que ϕ n = ϕ y ϕi es un axioma o ϕi Γ o ϕ i es una consecuencia inmediata de ϕ k, ϕ l, k, l < i Aquí, ϕ 1,..., ϕ n se llama derivación de ϕ a partir de Γ. Γ se llama teoría. Decimos que ϕ es un teorema de la teoría Γ. 208
209 Ejemplo Γ = { ( x)(ϕ[z/x]) } ( z)ϕ (x no aparece en ϕ) 1. ( z) ( ( x)(ϕ[z/x]) ϕ ) SQ4+SQ7 2. ( z) ( ( x)(ϕ[z/x]) ϕ ) ( ( z)( x)(ϕ[z/x]) ( z)ϕ ) SQ6 3. ( z)( x)(ϕ[z/x]) ( z)ϕ MP 1,2 4. ( x)(ϕ[z/x]) ( z)( x)(ϕ[z/x]) SQ5 5. ( x)(ϕ[z/x]) Γ 6. ( z)( x)(ϕ[z/x]) MP 4,5 7. ( z)ϕ MP 3,6 Observar paso 1: x es reemplazable por z en ϕ[z/x] paso 1: ϕ[z/x][x/z] = ϕ paso 4: z no aparece libre en ( x)(ϕ[z/x]) 209
210 Correctitud y consistencia Teorema (Correctitud) El sistema SQ es correcto, i.e. si Γ ϕ entonces Γ = ϕ. Teorema (Consistencia) El sistema SQ es consistente, i.e. no existe ϕ FORM(L) tal que ϕ y ϕ 210
211 Resultados similares a los de SP Teorema (de la Deducción) Si Γ {ϕ} ψ entonces Γ ϕ ψ Γ FORM(L) es consistente si no existe ϕ FORM(L) tal que Proposición Γ ϕ y Γ ϕ 1. Γ { ϕ} es inconsistente sii Γ ϕ 2. Γ {ϕ} es inconsistente sii Γ ϕ Teorema Si Γ es satisfacible, entonces Γ es consistente. Teorema Si Γ es inconsistente, entonces existe un subconjunto finito de Γ que es inconsistente. 211
212 Instancias de esquemas tautológicos sea ϕ(p 1,..., p n ) una tautología de P con variables proposicionales p 1,..., p n. sean ψ 1,..., ψ n fórmulas cualesquiera de primer orden ϕ(ψ 1,..., ψ n ) es una instancia de un esquema tautológico (reemplazar p i por ψ i en la fórmula original ϕ) Proposición Si ϕ es una instancia de un esquema tautológico entonces ϕ. Por ejemplo, la fórmula de P (p q) p es tautología. Entonces ( ( x)r(x) ( y)q(y) ) ( x)r(x) 212
213 Variantes alfabéticas Sea L = {0, S} con igualdad y ϕ FORM(L) definida como ϕ = x 0 ( y)x = S(y) En ϕ la variable x es reemplazable por z: ϕ[x/z] = z 0 ( y)z = S(y) Sin embargo, la variable x no es reemplazable por y: ϕ[x/y] = y 0 ( y)y = S(y) No habría habido problema si la fórmula original hubiese sido ϕ = x 0 ( w)x = S(w) ϕ se llama variante alfabética de ϕ Lema Sea ϕ FORM(L). Dados x VAR y t TERM(L) podemos encontrar ϕ (variante alfabética de ϕ) tal que {ϕ} ϕ y {ϕ } ϕ x es reemplazable por t en ϕ 213
214 Teorema de Generalización (TG) Teorema Si Γ ϕ y x no aparece libre en ninguna fórmula de Γ, entonces Γ ( x)ϕ Observar que es necesario pedir que x no aparezca libre en ninguna fórmula de Γ: {R(x)} = ( x)r(x) entonces {R(x)} ( x)r(x) (por correctitud) Demostración del teorema. Planteo P(n) = para toda ψ, Γ y x tal que Γ ψ y x no aparece libre en ninguna fórmula de Γ, si ψ 1,..., ψ n es una derivación de ψ a partir de Γ entonces Γ ( x)ψ Demostración por inducción en n (detalles a continuación). 214
215 Demostración del TG (caso base) P(n) = para toda ψ, Γ y x tal que Γ ψ y x no aparece libre en ninguna fórmula de Γ, si ψ 1,..., ψ n es una derivación de ψ a partir de Γ entonces Γ ( x)ψ Probamos P(1): sea ϕ, Γ y x tal que x no aparece libre en Γ sea ϕ una derivación de ϕ a partir de Γ queremos ver que Γ ( x)ϕ Hay 2 posibilidades: 1. ϕ es axioma de SQ SQ7 ( x)ϕ Γ ( x)ϕ 2. ϕ Γ entonces Γ ϕ por hipótesis x no aparece libre en ϕ por SQ5, ϕ ( x)ϕ por MP, Γ ( x)ϕ 215
216 Demostración del TG (paso inductivo) P(n) = para toda ψ, Γ y x tal que Γ ψ y x no aparece libre en ninguna fórmula de Γ, si ψ 1,..., ψ n es una derivación de ψ a partir de Γ entonces Γ ( x)ψ Probamos P(n): sea ϕ, Γ y x tal que x no aparece libre en Γ sea ϕ 1,..., ϕ n una derivación de ϕ a partir de Γ queremos ver que Γ ( x)ϕ HI: vale P(m) para todo m < n Hay 3 posibilidades: 1 y 2. ϕ es axioma de SQ o ϕ Γ: igual que en caso base. 3. ϕ se obtiene por MP de ϕ i y ϕ j (i, j < n): supongamos que ϕ j = ϕ i ϕ. Usamos HI 2 veces: como i < n, vale P(i), en particular, Γ ( x)ϕi como j < n, vale P(j), en particular, Γ ( x)(ϕ i ϕ) por SQ6, ( x)(ϕ i ϕ) (( x)ϕ i ( x)ϕ) usando MP 2 veces, Γ ( x)ϕ 216
217 Teorema de Generalización en Constantes (TGC) Teorema Supongamos que Γ ϕ y c es un símbolo de constante que no aparece en Γ. Entonces existe una variable x que no aparece en ϕ tal que Γ ( x)(ϕ[c/x]). Más aun, hay una derivación de ( x)(ϕ[c/x]) a partir de Γ en donde c no aparece. Idea de la demostración. Sea ϕ 1,..., ϕ n una derivación de ϕ a partir de Γ. Sea x la primera variable que no aparece en ninguna de las ϕ i. 1. demostrar que ϕ 1 [c/x],..., ϕ n [c/x] 1.1 es una derivación de ϕ[c/x] a partir de Γ (por inducción en n) 1.2 no contiene al símbolo de constante c 2. hay un Γ finito tal que ϕ[c/x] con derivación que no usa c y tal que x no aparece libre en ninguna fórmula de 2.1 es el conjunto de axiomas de Γ que se usan en ϕ 1,..., ϕ n 3. por el TG, ( x)(ϕ[c/x]) con derivación que no usa c 217
218 Consecuencias del TGC Corolario Supongamos que Γ ϕ[z/c] y c es un símbolo de constante que no aparece en Γ ni en ϕ. Entonces Γ ( z)ϕ. Más aun, hay una derivación de ( z)ϕ a partir de Γ en donde c no aparece. Demostración. por el TGC, existe x tal que x no aparece ( en ϕ[z/c] ) Γ ( x) ϕ[z/c][c/x] en esta última derivación no aparece c como c no aparece en ϕ, ϕ[z/c][c/x] = ϕ[z/x] entonces Γ ( x) ( ϕ[z/x] ) sabemos ( x) ( ϕ[z/x] ) ( z)ϕ (aplicar el Teorema de la Deducción a derivación de hoja 209) por MP concluimos Γ ( z)ϕ en esta última derivación no aparece c 218
219 Lenguajes con igualdad Fijamos un lenguaje L con igualdad. Para los lenguajes con igualdad, se considera el sistema SQ = con los axiomas y regla de inferencia de SQ, sumando estos dos axiomas axiomas adicionales para SQ =. Sean ϕ, ψ FORM(L), x, y VAR SQ = 1 x = x SQ = 2 x = y (ϕ ψ) donde ϕ es atómica y ψ se obtiene de ϕ reemplazando x por y en cero o más lugares Se puede probar que SQ = es consistente Si hay una derivación de ϕ en SQ = entonces ϕ es verdadera en toda L-estructura en donde el = se interpreta como la igualdad 219
220 Notas sobre computabilidad Fijemos un lenguaje numerable L. Se pueden codificar las fórmulas de FORM(L) con números naturales. Igual que para la lógica proposicional: es computable la función { 1 x es una demostración válida en SQ para L dem L (x) = 0 si no considerar el siguiente programa P: [A] IF dem L (D) = 1 D[ D ] = X GOTO E D D + 1 GOTO A ϕ es teorema de SQ para L sii #ϕ domψ P el conjunto de teoremas del sistema SQ para L es c.e. será el conjunto de teoremas de SQ para L computable? 220
221 Lógica de Primer Orden Clase 3 Completitud de SQ, compacidad 221
222 Consistente satisfacible Sea L un lenguaje fijo. Sea Γ FORM(L) consistente. Queremos construir un modelo canónico B y una valuación v de B tal que: B = ϕ[v] para toda ϕ Γ Demostración en 5 pasos: Paso 1. expandir L a L con nuevas constantes. L = L C. En C hay una cantidad infinita numerable de nuevas constantes ( nuevas porque no aparecen en L) Paso 2. agregar testigos a Γ. Trabajamos con Γ Θ, donde Θ es un conjunto de formulas especiales que usan las constantes nuevas de L Paso 3. aplicar el Lema de Lindenbaum para Γ Θ. Obtener Γ Θ maximal consistente Paso 4. construir el modelo canónico A y valuación v (para el lenguaje L ) tal que A = ϕ[v] sii ϕ Paso 5. restringir A y v al lenguaje original L y obtener B 222
223 Paso 1: expandir de L a L con nuevas constantes Teorema Sea Γ FORM(L) consistente. Sea C un conjunto de nuevas constantes que no aparecen en L. Si L = L C entonces Γ es consistente en el lenguaje L. Demostración. supongamos Γ inconsistente en el nuevo lenguaje L. Entonces existe ϕ FORM(L ) tal que Γ ϕ y Γ ϕ cada una de estas derivaciones usa fórmulas en FORM(L ), pero aparecen solo finitas constantes nuevas por el TGC, cada constante nueva utilizada (por hipótesis no aparece en Γ) puede reemplazarse por una variable nueva obtenemos una derivación de Γ ϕ[c 1,..., c n /x 1,..., x n ] y Γ ϕ[c 1,..., c n /x 1,..., x n ] en el lenguaje original L (c i son nuevas constantes; x i son nuevas variables) entonces Γ es inconsistente en el lenguaje L 223
224 Paso 2: agregar testigos a Γ Sean Γ y C como en el paso 1. Sea ϕ 1, x 1, ϕ 2, x 2,... una enumeración de FORM(L ) VAR Definimos θ n = ( x n )ϕ n (ϕ n [x n /c n ]) donde c n es la primera constante de C que no aparece en ϕ n y no aparece en θ 1,..., θ n 1 Definimos Θ = {θ 1, θ 2,... } Teorema Γ Θ FORM(L ) es consistente. Observar que Θ agrega testigos a Γ. Si ocurre ( x)ϕ entonces hay una constante c que atestigua que ϕ no vale para todo x, i.e. (ϕ[x/c]) 224
225 Demostración del paso 2 Supongamos Γ consistente. Recordemos que Θ = {θ 1, θ 2,... } supongamos Γ Θ inconsistente debe existir i tal que Γ {θ 1,..., θ i+1 } es inconsistente sea n el mínimo tal i observar que Γ {θ 1,..., θ n } es consistente Γ {θ 1,..., θ n } ( ( x)ϕ (ϕ[x/c]) ) }{{} θ n+1 donde c no aparece en {θ 1,..., θ n } ni en ϕ las siguientes son instancias de esquemas tautológicos: θ n+1 ( x)ϕ θ n+1 (ϕ[x/c]) por lo tanto θ n+1 ( x)ϕ MP Γ {θ 1,..., θ n } ( x)ϕ θn+1 (ϕ[x/c]) MP Γ {θ 1,..., θ n } ϕ[x/c] por el corolario del TGC, Γ {θ 1,..., θ n } ( x)ϕ (notar que c no aparece en Γ {θ 1,..., θ n } ni en ϕ) entonces Γ {θ 1,..., θ n } es inconsistente 225
226 Paso 3: Lema de Lindenbaum para Γ Θ Teorema Sean Γ y Θ como en los pasos 1 y 2. Existe un conjunto Γ Θ tal que es maximal consistente. Demostración. Igual que para el caso proposicional. Como en el caso proposicional, para toda ϕ FORM(L ) ϕ o bien ϕ ϕ sii ϕ 226
227 Paso 4: construcción del modelo canónico A Definimos el modelo canónico A: A = TERM(L ) para cada símbolo de función n-aria f L, f A (t 1,..., t }{{ n ) = f (t } 1,..., t n ) A A n para cada símbolo de constante c L, c A = c A para cada símbolo de predicado n-ario P L, ( t1,..., t n ) } {{ } A n P A sii P(t 1,..., t n ) 227
228 Paso 4: definición de la valuación v Definimos la valuación v : VAR TERM(L ) como }{{} A v(x) = x Lema Para todo t TERM(L ), ṽ(t) = t. Demostración. Por inducción en la complejidad de t (fácil). Teorema Para toda ϕ FORM(L ), A = ϕ[v] sii ϕ. Demostración. Por inducción en la complejidad de ϕ (detalles a continuación). 228
229 Paso 4: A = ϕ[v] sii ϕ (caso base) Si ϕ es una fórmula atómica P(t 1,..., t n ): A = P(t 1,..., t n )[v] (ṽ(t1 sii ),..., ṽ(t n ) ) ( ) P A sii t1,..., t n P A pues ṽ(t) = t sii P(t 1,..., t n ) por def. de A 229
230 Paso 4: A = ϕ[v] sii ϕ (paso inductivo; ϕ = ψ) A = ϕ[v] sii A = ψ[v] sii ψ / por HI sii ψ por propiedad de 230
231 Paso 4: A = ϕ[v] sii ϕ (paso inductivo; ϕ = ψ ρ) A = ϕ[v] sii A = ψ[v] o A = ρ[v] sii ψ / o ρ por HI sii ψ o ρ por propiedad de ψ ρ (ejercicio) ψ ρ por propiedad de ϕ ψ / o (ψ y ρ) MP en 2do caso ψ / o (ψ y ρ ) por propiedad de ψ / o ρ sii A = ψ[v] o A = ρ[v] por HI sii A = ψ ρ[v] 231
232 Paso 4: A = ϕ[v] sii ϕ (paso inductivo ( ) ; ϕ = ( x)ψ) supongamos A = ( x)ψ[v] para todo t A, A = ψ[v(x = t)] supongamos ( x)ψ (ψ[x/c]) Θ en particular, A = ψ[v(x = c)] por definición de v, A = ψ[v(x = ṽ(c))] por el Lema de Sustitución, A = (ψ[x/c])[v] por HI, ψ[x/c] por propiedad de, (ψ[x/c]) / veamos que ( x)ψ / : supongamos que ( x)ψ ( x)ψ como Θ, ( x)ψ (ψ[x/c]) ( x)ψ (ψ[x/c]) por MP tenemos (ψ[x/c]) por propiedad de, (ψ[x/c]) concluimos ( x)ψ 232
233 Paso 4: A = ϕ[v] sii ϕ (paso inductivo ( ) ; ϕ = ( x)ψ) supongamos A = ϕ[v] existe t A, A = ψ[v(x = t)] sea ψ una variante alfabética de ψ tal que x sea reemplazable por t en ψ ) A = ψ [v(x = t)] como ṽ(t) = t, A = ψ [v(x = ṽ(t))] por el Lema de Sustitución A = (ψ [x/t])[v] por HI, ψ [x/t] / veamos que ( x)ψ / : supongamos que ( x)ψ ( x)ψ sabemos ( x)ψ ψ [x/t] por SQ4 por MP concluimos ψ [x/t] por propiedad de, ψ [x/t] por equivalencia de variantes alfabéticas, ( x)ψ / 233
234 Paso 5: restringir A y v al lenguaje original L Volvemos al lenguaje original L. Definimos B como la restricción de A a L (i.e. ya no interpreto las nuevas constantes). Del paso 4 sabemos que para toda ϕ FORM(L ), A = ϕ[v] sii ϕ. Recordar que Γ. Si ϕ Γ FORM(L) tenemos A = ϕ[v] sii B = ϕ[v] Luego, para Γ consistente, encontramos una L-estructura B tal que Concluimos que Γ es satisfacible. B = ϕ[v] para toda ϕ Γ 234
235 Teorema de Löwenheim-Skolem Corolario Γ es consistente sii Γ es satisfacible Teorema (sin igualdad) Sea L numerable y sin igualdad. Si Γ FORM(L) es satisfacible, es satisfacible en un modelo infinito numerable. Demostración. Es lo que acabamos de ver. Si L es numerable, A = FORM(L) es infinito numerable. Teorema (con igualdad) Sea L numerable y con igualdad. Si Γ FORM(L) es satisfacible, es satisfacible en un modelo finito o infinito numerable. Se puede probar algo más fuerte Teorema (ascendente) Si L es numerable y Γ FORM(L) tiene modelo infinito, tiene modelo de cualquier cardinalidad. 235
236 Completitud y Compacidad Teorema (Completitud fuerte, Gödel) Si Γ = ϕ entonces Γ ϕ. Demostración. Igual que para proposicional Corolario Γ = ϕ sii Γ ϕ. Teorema (Compacidad) Sea Γ FORM(L). Si todo finito, Γ es satisfacible, entonces Γ es satisfacible. Demostración. Igual que para proposicional 236
237 Lógica de Primer Orden Clase 4 Aplicaciones de compacidad, indecidibilidad de la lógica de primer orden 237
238 Aplicaciones de Compacidad - no expresividad Teorema Si Γ tiene modelos arbitrariamente grandes, tiene modelo infinito. Demostración. Definimos (en el lenguaje con solo la igualdad) ϕ 2 = ( x)( y)x y ϕ 3 = ( x)( y)( z)(x y x z y z). ϕ n = hay al menos n elementos por hipótesis, todo subconjunto finito de Γ {ϕ i i 2} tiene modelo por Compacidad, Γ {ϕ i i 2} tiene algún modelo M M tiene que ser infinito Conclusión: A es infinito sii A = {ϕ i i 2} no existe Γ tal que A es finito sii A = Γ 238
239 Aplicaciones de Compacidad - modelos no estándar Consideremos un lenguaje L = {0, S, <, +, } con igualdad. Consideremos la estructura N = N; 0, S, <, +, con la interpretación usual. Sea Teo(N ) = {ϕ FORM(L) : ϕ es sentencia y N = ϕ} Expandimos el lenguaje con una nueva constante c y definimos Γ = {0 < c, S(0) < c, S(S(0)) < c, S(S(S(0))) < c,... } cada subconjunto finito de Γ Teo(N ) tiene modelo por Compacidad, Γ Teo(N ) tiene modelo por Löwenheim-Skolem Γ Teo(N ) un modelo numerable M = M; 0 M, S M, < M, + M, M, c M sea M la restricción de M al lenguaje original L N = ϕ sii M = ϕ para toda sentencia ϕ FORM(L) N = ϕ ϕ Teo(N ) M = ϕ M = ϕ N = ϕ N = ϕ ϕ Teo(N ) M = ϕ M = ϕ M = ϕ N y M no son isomorfos: c M es inalcanzable en M 239
240 Repaso de Máquina Turing Fijamos Σ = {1, }. Recordar que una máquina de Turing es una tupla donde M = (Σ, Q, T, q 0, q f ) Σ (finito) es el conjunto símbolos que puede escribir en la cinta Q (finito) es el conjunto de estados tiene dos estados distinguidos: q 0 Q es el estado inicial q f Q es el estado final T Q Σ Σ {L, R} Q es la tabla finita de instrucciones 240
241 Modelo de cómputo de máquina de Turing Recordar que la máquina M = (Σ, Q, T, q 0, q f ) con entrada w {1} + termina (notado M(w) ) sii partiendo de w en la cinta de entrada y la cabeza leyendo el primer caracter después de w, q 0 llega al estado q f después de una cantidad finita de pasos. No es computable determinar si una máquina de Turing termina o no. 241
242 Idea de la demostración de que Primer Orden es indecidible fijar un lenguaje adecuado L dada una máquina M y w {1} +, construir (uniformemente) una sentencia ϕ M,w FORM(L) tal que M(w) sii ϕ M,w si el problema de determinar si vale ψ o ψ para ψ FORM(L) fuese computable, en particular sería computable determinar si ϕ M,w o ϕ M,w para cualquier máquina M y entrada w. como esto último es no-computable, tampoco es computable determinar si vale ψ o ψ para cualquier ψ FORM(L) Dados M y w, quién es ϕ M,w? una fórmula de L que se construye computablemente a partir de M y w ϕ M,w describe el comportamiento de M con entrada w en una cierta interpretación A ϕ M,w es una fórmula-programa 242
243 El lenguaje L símbolos de constante: uno solo: ɛ símbolos de función: la función 1 unaria la función * unaria símbolos de relación: infinitos (tantas como necesitemos) símbolos de relaciones binarias sea E = {q 0, q f, p, q, r,... } un conjunto infinito de estados que podemos llegar a usar en máquinas de Turing cada máquina particular usará solo una cantidad finita de estados de E los símbolos des relación son: R q0, R qf, R p, R q, R r,
244 Notación de los términos de L si t es un término de L, 1(t) lo notamos 1t si t es un término de L, (t) lo notamos t Por ejemplo 1(x) lo notamos 1x 1(1(ɛ)) lo notamos 11ɛ 1(1( (1(y)))) lo notamos 11 1y 244
245 La interpretación A Dada una máquina M = (Σ, Q, T, q 0, q f ) y una entrada w {1} +, fijamos una interpretación A = A M,w el universo: A = {1, } = cadenas finitas sobre {1, } va a representar datos en la cinta de M ɛ A = cadena vacía la cinta es infinita, pero infinitos se representan como ɛ las funciones 1 A : A A y A : A A se interpretan así: 1A (x) = 1x, o sea la cadena que empieza por 1 y sigue con x A (x) = x, o sea la cadena que empieza por y sigue con x para q Q, (R q ) A (x, y) es verdadero sii la máquina M con entrada w llega a una configuración en la que: el estado es q en la cinta está escrito x en orden inverso y a continuación y la cabeza de M apunta al primer caracter de y 245
246 Definición de la fórmula-programa ϕ M,w Dada una máquina y una entrada M = (Σ, Q, T, q 0, q f ) w = k {}}{ fijamos la interpretación A = A M,w que acabamos de ver. k {}}{ ϕ 0 := R q0 ( ɛ, ɛ) dice: el estado inicial es alcanzable A = ϕ0 ϕ f := ( x)( y) R qf (x, y) dice: el estado final es alzanzable A = ϕf sii M(w) 246
247 Definición de la fórmula-programa ϕ M,w Para cada instrucción I T : si I dice si M está en el estado q y lee un 1, escribir b y pasar al estado r, definir ψ I := ( x)( y) (R q (x, 1y) R r (x, by)) si I dice si M está en el estado q y lee un, escribir b y pasar al estado r, definir ψ I := ( x)( y) (R q (x, y) R r (x, by)) ( x) (R q (x, ɛ) R r (x, bɛ)) 247
248 Definición de la fórmula-programa ϕ M,w si I dice si M está en el estado q y lee un 1, moverse a la izquierda y pasar al estado r, definir ψ I := ( x)( y) (R q (1x, 1y) R r (x, 11y)) ( x)( y) (R q ( x, 1y) R r (x, 1y)) ( y) (R q (ɛ, 1y) R r (ɛ, 1y)) si I dice si M está en el estado q y lee un moverse a la izquierda y pasar al estado r, definir ψ I := ( x)( y) (R q (1x, y) R r (x, 1 y)) ( x)( y) (R q ( x, y) R r (x, y)) ( y) (R q (ɛ, y) R r (ɛ, y)) (R q (ɛ, ɛ) R r (ɛ, ɛ)) (Misma idea con moverse a la derecha...) 248
249 Definición de la fórmula-programa ϕ M,w Recordar que la máquina M = (Σ, Q, T, q 0, q f ) tiene siempre un conjunto finito de instrucciones T Definimos Proposición Si A = ϕ M,w sii M(w). ϕ M,w := (ϕ 0 ψ I ) ϕ f Demostración. Sabemos que A = ϕ 0. Sabemos que A = ϕ f sii M(w). Es fácil ver que A = ψ I para cada I T. Luego A = ϕ M,w sii A = ϕ f sii M(w). I T 249
250 Entscheidungsproblem Teorema ϕ M,w sii M(w). Demostración. ( ) Si ϕ M,w entonces = ϕ M,w, es decir, ϕ M,w es verdadera en toda interpretación. En particular, A = ϕ M,w. Luego M(w). ( ) Idea. Si M(w) entonces existe un cómputo de M(w): (x 1, r 1, y 1 ) (x 2, r 2, y 2 ) (x n, r n, y n ) con x i, y i {1, },r i Q, x 1 = w, r 1 = q 0, y 1 = ɛ, r n = q f. Cada (x i, r i, y i ) representa una configuración del cómputo M(w): el estado es r i la cinta contiene [ x i ][ y i ] la cabeza está apuntando al primer caracter de y i Cada paso de la ejecución coincide con una sustitución de una de las fórmulas ψ I. cómputo de M(w) = demostración de ϕ M,w fórmula ϕ M,w = programa de M 250
251 Entscheidungsproblem Teorema (Turing, 1936) Sea L el lenguaje descripto y sea ψ FORM(L). El problema de decidir si ψ o ψ no es computable. Demostración. Supongamos que hay un programa que dada ψ FORM(L) devuelve verdadero sii ψ. Dada M y w, habría un procedimiento para decidir si M(w) o M(w) : 1. construir ϕ M,w (esto se hace computablemente) 2. si ϕ M,w entonces M(w) ; si no M(w) 251
252 Lógica de Primer Orden Clase 5 - Opcional Teorema de incompletitud de Gödel 252
253 Artimética de Peano Lenguaje L = {0, S, +, } con igualdad. axiomas (para x, y VAR, ϕ FORM(L) con variable libre x) S1. 0 S(x) S2. S(x) = S(y) x = y S3. x + 0 = x S4. x + S(y) = S(x + y) S5. x 0 = 0 S6. x S(y) = (x y) + x S7. ( ϕ[x/0] ( x)(ϕ ϕ[x/s(x)]) ) ( x)ϕ definimos la teoría S: S = { ψ : ψ es instanciación de alguno de estos 7 esquemas } Sea N = N; 0, S, +, el modelo estándar de los naturales. querríamos capturar todas las verdades de N con los teoremas de S (en el sistema SQ = ) querríamos N = ϕ sii S ϕ se puede ver que N = ϕ S ϕ 253
254 Notación (solo para esta clase) notamos ϕ(x 1,..., x n ) a una fórmula que tiene variables libres x 1,..., x n sea ϕ(x 1,..., x n ) y sean t 1,..., t n términos ϕ(t 1,..., t n ) representa ϕ[x 1,..., x n /t 1,..., t n ] notación para los numerales: Por ejemplo, ϕ(x) = ( y)y + 2 = x ϕ(3) = ( y)y + 2 = 3 1 = S(0) 2 = S(S(0)). n = S(... S(0)... ) }{{} n veces 254
255 Aritmetización de fórmulas ( ) = 0 S + x 1 x 2 x Por ejemplo, ( x 1 ) S ( x 1 ) = x toda fórmula de L se representa con un número natural (se llama número de Gödel de la fórmula) de la misma manera, toda demostración en S se representa con un número natural (se llama número de Gödel de la demostración) 255
256 Resultados previos Teorema Los siguientes predicados son primitivos recursivos var(x): x es el número de Gödel de una expresión que consiste de una variable term(x): x es el número de Gödel de una expresión que consiste de un término form(x): x es el número de Gödel de una fórmula de FORM(L) axsq i (x): x es el número de Gödel de una instanciación del i-ésimo axioma de SQ = axs i (x): x es el número de Gödel de una instanciación del i-ésimo axioma de S MP(x, y, z): z es el número de Gödel de una expresión que resulta de MP de las expresiones con número de Gödel x e y dem(x) = x es el número de Gödel de una demostración de S 256
257 Funciones expresables en S Una relación R : N n N es expresable en S si existe una fórmula ϕ con (únicas) variables libres x 1,..., x n tal que para todo k 1,..., k n N: si R(k 1,..., k n ) es verdadero en N entonces S ϕ(k 1,..., k n ) si R(k 1,..., k n ) es falso en N entonces S ϕ(k 1,..., k n ) Teorema Toda relación computable es expresable en S. 257
258 Consistencia y ω-consistencia Sea Γ FORM(L) Γ es consistente si no existe ϕ FORM(L) tal que Γ ϕ y Γ ϕ Γ es ω-consistente cuando si Γ ϕ(n) para todo n, entonces Γ ( x) ϕ(x) Proposición Si Γ es ω-consistente entonces Γ es consistente. Una teoría es Γ completa si para toda sentencia ϕ, Γ ϕ o Γ ϕ 258
259 La fórmula de Gödel W (e, y) : e es el número de Gödel de una fórmula ψ con una única variable libre x 1 y además y es el número de Gödel de una demostración en S de ψ(e) El predicado W : N 2 {0, 1} es primitivo recursivo, luego es expresable en S por una fórmula W(x 1, x 2 ). Consideremos ϕ(x 1 ) = ( x 2 ) W(x 1, x 2 ) = la fórmula con número de Gödel x 1 instanciada en x 1 no es demostrable en S Sea m el número de Gödel de ϕ(x 1 ). Consideremos ϕ(m) = ( x 2 ) W(m, x 2 ) = la fórmula con número de Gödel m instanciada en m no es demostrable en S = ϕ(m) no es demostrable en S = yo no soy demostrable en S 259
260 Teorema de incompletitud de Gödel (1931) Recordemos que m es el número de Gödel de Teorema ϕ(x 1 ) = ( x 2 ) W(x 1, x 2 ) 1. si S es consistente, S ϕ(m) 2. si S es ω-consistente, S ϕ(m) Demostración. 1. Sup. S ( x 2 ) W(m, x 2 ) sea k el número de Gödel de alguna demostración en S W (m, k) es verdadero S W(m, k) como S ( x2 ) W(m, x 2 ) por SQ4, S W(m, k) S es inconsistente Decimos que ϕ(m) es independiente } si S es ω-consistente, es incompleto 2. Sup. S ( x 2 ) W(m, x 2 ) como S es consistente, S ( x 2 ) W(m, x 2 ) W (m, k) es falso para todo k S W(m, k) para todo k como S es ω-consistente, S ( x 2 ) W(m, x 2 ) S ( x 2 ) W(m, x 2 ) S ϕ(m) 260
261 Fórmulas verdaderas en N pero no demostrables en S Recordemos que m es el número de Gödel de de modo que ϕ(x 1 ) = ( x 2 ) W(x 1, x 2 ) ϕ(m) = ( x 2 ) W(m, x 2 ) = ϕ(m) no es demostrable en S si ϕ(m) fuese falsa en N (i.e. N = ϕ(m)), ϕ(m) sería demostrable en S, pero acabamos de ver que esto no es así entonces ϕ(m) es verdadera en N, pero no demostrable en S: N = ϕ(m) y S ϕ(m) esto no contradice el teorema de completitud: S = ϕ(m) }{{} hay un modelo de S en donde ϕ(m) es falsa sii S ϕ(m) 261
262 Teorema de Gödel-Rosser (1936) Teorema Si S es consistente, es incompleta. Una teoría Γ es recursivamente axiomatizable si existe una teoría Γ tal que x Γ? es computable y Γ ϕ sii Γ ϕ Corolario Cualquier teoría recursivamente axiomatizable que extiende a S es incompleta. 262
263 Teorías completas para N Sin embargo, es posible dar teorías completas que capturen todas las verdades de N Para L = {0, S, +, } con igualdad, existe Γ FORM(L) tal que Γ ϕ sii N = ϕ: Γ = {ψ : N = ψ} Γ es completa, pero no es decidible. 263
264 Aritmética de Presburger (1929) Lenguaje L = {0, S, +} con igualdad. Sin axiomas (como S pero sin S5 ni S6): S1. 0 S(x) S2. S(x) = S(y) x = y S3. x + 0 = x S4. x + S(y) = S(x + y) S7. ( ϕ[x/0] ( x)(ϕ ϕ[x/s(x)]) ) ( x)ϕ definimos la teoría P: P = { ψ : ψ es instanciación de alguno de estos 5 esquemas } P es completa P es decidible 264
Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S
Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,
Sumatorias y productorias (desde 0) Lógica y Computabilidad. Sumatorias y productorias (desde 1)
Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 3 Sumatorias y productorias, cuantificadores acotados, minimización acotada, codificación de pares y
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
13.3. MT para reconocer lenguajes
13.3. MT para reconocer lenguajes Gramática equivalente a una MT Sea M=(Γ,Σ,,Q,q 0,f,F) una Máquina de Turing. L(M) es el lenguaje aceptado por la máquina M. A partir de M se puede crear una gramática
Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Terminaremos el capítulo con una breve referencia a la teoría de cardinales.
TEMA 5. CARDINALES 241 Tema 5. Cardinales Terminaremos el capítulo con una breve referencia a la teoría de cardinales. Definición A.5.1. Diremos que el conjunto X tiene el mismo cardinal que el conjunto
ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.
ALGEBRA y ALGEBRA LINEAL 520142 Primer Semestre CAPITULO I LOGICA Y CONJUNTOS. DEPARTAMENTO DE INGENIERIA MATEMATICA Facultad de Ciencias Físicas y Matemáticas Universidad de Concepción 1 La lógica es
Conjuntos, relaciones y funciones Susana Puddu
Susana Puddu 1. Repaso sobre la teoría de conjuntos. Denotaremos por IN al conjunto de los números naturales y por ZZ al de los enteros. Dados dos conjuntos A y B decimos que A está contenido en B o también
Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones
UNSL Repaso de Inducción, y Inducción Matemática (Sección 1.7 del libro) Supongamos que queremos demostrar enunciados del siguiente tipo: P(n) : La suma de los primeros n números naturales es n(n+1)
Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos
Semana02[1/23] 9 de marzo de 2007 Introducción Semana02[2/23] La teoría de conjuntos gira en torno a la función proposicional x A. Los valores que hacen verdadera la función proposicional x A son aquellos
Cardinalidad. Teorema 0.3 Todo conjunto infinito contiene un subconjunto infinito numerable.
Cardinalidad Dados dos conjuntos A y B, decimos que A es equivalente a B, o que A y B tienen la misma potencia, y lo notamos A B, si existe una biyección de A en B Es fácil probar que es una relación de
Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42
Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 42 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales
Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45
Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 45 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales
SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES
SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES RELACIONES BINARIAS PAR ORDENADO Es un arreglo de dos elementos que tienen un orden determinado donde a es llamada al primera componente y b es llamada la
5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones
1 Curso Básico de Computación 5 Autómatas de pila 5.1 Descripción informal Un autómata de pila es esencialmente un autómata finito que controla una cinta de entrada provista de una cabeza de lectura y
Índice Proposiciones y Conectores Lógicos Tablas de Verdad Lógica de Predicados Inducción
Curso 0: Matemáticas y sus Aplicaciones Tema 5. Lógica y Formalismo Matemático Leandro Marín Dpto. de Matemática Aplicada Universidad de Murcia 2012 1 Proposiciones y Conectores Lógicos 2 Tablas de Verdad
520142: ALGEBRA y ALGEBRA LINEAL
520142: ALGEBRA y ALGEBRA LINEAL Segundo Semestre 2008, Universidad de Concepción CAPITULO 10: Espacios Vectoriales DEPARTAMENTO DE INGENIERIA MATEMATICA Facultad de Ciencias Físicas y Matemáticas 1 Definición
Lógica proposicional. Ivan Olmos Pineda
Lógica proposicional Ivan Olmos Pineda Introducción Originalmente, la lógica trataba con argumentos en el lenguaje natural es el siguiente argumento válido? Todos los hombres son mortales Sócrates es hombre
(TALF- ITIS- C) Clase 3 5 de Octubre de 2010
(TALF- ITIS- C) Clase 3 5 de Octubre de 2010 Ac=vidades de par=cipación de alumnos 2 Alumnos : Blog de la Asignatura: hip://talf.blogspot.es/ 1 Alumno: BiograMa relacionada con la asignatura ACTIVIDADES
Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.
0 Temas Definición de autómata de pila Autómata de pila determinístico y no determinístico Objetivo Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2)
Lógica de Predicados de Primer Orden
Lógica de Predicados: Motivación Todo natural es entero y 2 es un natural. Luego 2 es entero. p q r p, q r es claramente un razonamiento válido pero no es posible demostrarlo desde la Lógica Proposicional
Capítulo 2 Conjuntos. 2.1 Introducción. 2.2 Determinación de conjuntos. Definición:
Capítulo 2 Conjuntos 2.1 Introducción El concepto de conjunto, de singular importancia en la ciencia matemática y objeto de estudio de una de sus disciplinas más recientes, está presente, aunque en forma
Sobre funciones reales de variable real. Composición de funciones. Función inversa
Sobre funciones reales de variable real. Composición de funciones. Función inversa Cuando en matemáticas hablamos de funciones pocas veces nos paramos a pensar en la definición rigurosa de función real
Derivada de la función compuesta. Regla de la cadena
Derivada de la función compuesta. Regla de la cadena Cuando en las matemáticas de bachillerato se introduce el concepto de derivada, su significado y su interpretación geométrica, se pasa al cálculo de
Ejercicios de Lógica Proposicional *
Ejercicios de Lógica Proposicional * [email protected] Notación. El lenguaje proposicional que hemos definido, aquel que utiliza los cinco conectivos,,, y, se denota como L {,,,, }. Los términos
Tema 6: Teoría Semántica
Tema 6: Teoría Semántica Sintáxis Lenguaje de de las las proposiciones Lenguaje de de los los predicados Semántica Valores Valores de de verdad verdad Tablas Tablas de de verdad verdad Tautologías Satisfacibilidad
Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos
Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo Complementos Contenidos Clase 1: Elementos de lógica: Conectivos, tablas de verdad, tautologías y contingencias.
Semana03[1/17] Funciones. 16 de marzo de Funciones
Semana03[1/17] 16 de marzo de 2007 Introducción Semana03[2/17] Ya que conocemos el producto cartesiano A B entre dos conjuntos A y B, podemos definir entre ellos algún tipo de correspondencia. Es decir,
6.1. Anillos de polinomios.
1 Tema 6.-. Anillo de polinomios. División y factorización. Lema de Gauss. 6.1. Anillos de polinomios. Definición 6.1.1. Sea A un anillo. El anillo de polinomios en la indeterminada X con coeficientes
1 Conjuntos y propiedades de los números naturales
Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023 Clase #1: martes, 31 de mayo de 2016. 1 Conjuntos y propiedades de los números
Introducción. El uso de los símbolos en matemáticas.
Introducción El uso de los símbolos en matemáticas. En el estudio de las matemáticas lo primero que necesitamos es conocer su lenguaje y, en particular, sus símbolos. Algunos símbolos, que reciben el nombre
Cálculo Diferencial: Enero 2016
Cálculo Diferencial: Enero 2016 Selim Gómez Ávila División de Ciencias e Ingenierías Universidad de Guanajuato 9 de febrero de 2016 / Conjuntos y espacios 1 / 21 Conjuntos, espacios y sistemas numéricos
Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que
Capítulo II Cardinalidad Finita II.1. Cardinalidad Definimos I n para n N como I n = {k N : 1 k n}. En particular I 0 =, puesto que 0 < 1. Esto es equivalente a la definición recursiva { si n = 0 I n =
Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.
NÚMEROS REALES Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. Un conjunto es una colección bien definida
CONTINUIDAD DE FUNCIONES. SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos.
CAPÍTULO IV. CONTINUIDAD DE FUNCIONES SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos. 121 A. DEFINICIÓN DE FUNCIÓN CONTINUA. Una función
Capítulo 4: Polinomios
Capítulo 4: Polinomios Miguel Ángel Olalla Acosta [email protected] Departamento de Álgebra Universidad de Sevilla Diciembre de 2015 Olalla (Universidad de Sevilla) Capítulo 4: Polinomios Diciembre de
Funciones y Cardinalidad
Funciones y Cardinalidad Definición 1 Llamaremos función f entre dos conjuntos A y B a una relación que verifica las siguientes propiedades: i) Dom(f) = A ii) Si (a, b), (a, c) f entonces b = c Dicho de
COMPLEMENTO DEL TEÓRICO
ÁLGEBRA I PRIMER CUATRIMESTRE - AÑO 2016 COMPLEMENTO DEL TEÓRICO El material de estas notas fue dictado en las clases teóricas pero no se encuentra en el texto que seguimos en las mismas ( Álgebra I -
ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros
Resumen teoría Prof. Alcón ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Z = N {0} N Enteros Las operaciones + y. son cerradas en Z, es decir la suma de dos números enteros es un número entero y el producto
Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica
Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 1: Fundamentos:
ELEMENTOS DE LA MATEMATICA
ELEMENTOS DE LA MATEMATICA SEMESTRE: Primero CODIGO ANTERIOR: 22G7 CODIGO: 8101 REQUISITOS: No tiene CREDITOS: 6 HORAS DE TEORIA: 4 HORAS DE PRACTICA : 4 TEMA 1: Lógica simbólica. Las conectivas lógicas.
Conjuntos Infinitos. Ramón Espinoza Armenta AVC APOYO VIRTUAL PARA EL CONOCIMIENTO
Ramón Espinoza Armenta AVC APOYO VIRTUAL PARA EL CONOCIMIENTO El estudio de los conjuntos infinitos se inicia con Las Paradojas del Infinito, la última obra del matemático checo Bernard Bolzano, publicada
1. Números reales. Análisis de Variable Real
1. Números reales Análisis de Variable Real 2014 2015 Índice 1. Sistemas numéricos 2 1.1. Números naturales. Principio de Inducción... 2 1.2. Números enteros... 4 1.3. Números racionales... 6 2. Los números
Conjuntos finitos y conjuntos numerables
Tema 3 Conjuntos finitos y conjuntos numerables En este tema vamos a usar los números naturales para contar los elementos de un conjunto, o dicho con mayor precisión, para definir los conjuntos finitos
Autómatas Finitos Deterministicos (DFA)
Autómatas Finitos Deterministicos (DFA) Introducción a la Lógica y la Computación Fa.M.A.F., Universidad Nacional de Córdoba 26/0/6 Info útil Bibliografía: Introducción a la teoría de autómatas, lenguajes
Teoría de Números. Divisibilidad. Olimpiada de Matemáticas en Tamaulipas
Teoría de Números Divisibilidad Olimpiada de Matemáticas en Tamaulipas 1. Introducción Divisibilidad es una herramienta de la aritmética que nos permite conocer un poco más la naturaleza de un número,
Recordemos que utilizaremos, como es habitual, la siguiente notación para algunos conjuntos de números que son básicos.
Capítulo 1 Preliminares Vamos a ver en este primer capítulo de preliminares algunos conceptos, ideas y propiedades que serán muy útiles para el desarrollo de la asignatura. Se trata de resultados sobre
Grupos libres. Presentaciones.
S _ Tema 12.- Grupos libres. Presentaciones. 12.1 Grupos libres. En el grupo Z de los enteros vimos una propiedad (cf. ejemplos.5), que lo caracteriza como grupo libre. Lo enunciamos al modo de una Propiedad
R no es enumerable. Por contradicción, supongamos que existe una biyección f : N! R. diagonalización de Cantor. Para cada i 2 N:
R no es enumerable Por contradicción, supongamos que existe una biyección f : N! R. I Vamos a obtener una contradicción usando el método de diagonalización de Cantor. Para cada i 2 N: f (i) = n i.d i,0
Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
Complejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.
Universidad de Puerto Rico Recinto de Mayagüez Facultad de Artes y Ciencias DEPARTAMENTO DE CIENCIAS MATEMÁTICAS Programa de Autómata y Lenguajes Formales Curso: Autómata y Lenguajes Formales Codificación:
TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN
1 TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN 1. INTRODUCCIÓN Los números naturales aparecen debido a la necesidad que tiene el hombre para contar. Para poder construir este conjunto N, podemos seguir
Los fundamentos de la matemática y los teoremas de Gödel
Los fundamentos de la matemática y los teoremas de Gödel Mario A. Natiello Centre for Mathematical Sciences Lund University Sweden Los fundamentos de la matemática y los teoremas de Gödel p.1/23 Contenido
Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.
Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en
Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad
Estructuras Discretas Relaciones Definición: relación Relaciones Claudio Lobos, Jocelyn Simmonds clobos,[email protected] Universidad Técnica Federico Santa María Estructuras Discretas INF 152 Sean
Espacios Vectoriales
Espacios Vectoriales Espacios Vectoriales Verónica Briceño V. noviembre 2013 Verónica Briceño V. () Espacios Vectoriales noviembre 2013 1 / 47 En esta Presentación... En esta Presentación veremos: Espacios
MATEMÁTICAS BÁSICAS. Autoras: Margarita Ospina Pulido Jeanneth Galeano Peñaloza Edición: Rafael Ballestas Rojano
MATEMÁTICAS BÁSICAS Autoras: Margarita Ospina Pulido Jeanneth Galeano Peñaloza Edición: Rafael Ballestas Rojano Universidad Nacional de Colombia Departamento de Matemáticas Sede Bogotá Enero de 2015 Universidad
Estructuras Algebraicas
Tema 1 Estructuras Algebraicas Definición 1 Sea A un conjunto no vacío Una operación binaria (u operación interna) en A es una aplicación : A A A Es decir, tenemos una regla que a cada par de elementos
Teoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014
Teoría de Lenguajes Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014 aterial compilado por el Profesor Julio Jacobo, a lo largo de distintas ediciones
Clase 4 Funciones polinomiales y racionales
Clase 4 Instituto de Ciencias Básicas Facultad de Ingeniería Universidad Diego Portales Marzo de 2014 Polinomios Definición Se llama polinomio en x a toda expresión de la forma p(x) = a 0 + a 1x+ +a n
Estatutos de Control C# Estatutos de Decisión (Selección)
SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente
En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse
En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse lógicamente como un término no definido. Un conjunto se
Anillo de polinomios con coeficientes en un cuerpo
Capítulo 2 Anillo de polinomios con coeficientes en un cuerpo En el conjunto Z se ha visto cómo la relación ser congruente módulo m para un entero m > 1, es compatible con las operaciones suma y producto.
Problemas fáciles, difíciles y muy difíciles
Problemas fáciles, difíciles y muy difíciles Santiago Figueira Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computación Semana de la Computación 2006 Métodos efectivos
UNIDAD II. INTEGRAL DEFINIDA Y LOS MÉTODOS DE INTEGRACIÓN. Tema: LA INTEGRAL DEFINIDA
UNIDAD II. INTEGRAL DEFINIDA Y LOS MÉTODOS DE INTEGRACIÓN Tema: LA INTEGRAL DEFINIDA La integral definida Anteriormente se mencionó que la Integral Indefinida da como resultado una familia de funciones
Pregunta 1 Es correcta esta definición? Por qué?
TEORÍA DE CONJUNTOS. En un libro de COU de 1975 puede leerse la siguiente definición de conjunto: Un conjunto es una colección de objetos, cualquiera que sea su naturaleza. Pregunta 1 Es correcta esta
Introducción a la Lógica
Tema 0 Introducción a la Lógica En cualquier disciplina científica se necesita distinguir entre argumentos válidos y no válidos. Para ello, se utilizan, a menudo sin saberlo, las reglas de la lógica. Aquí
Una topología de los números naturales*
Una topología de los números naturales* Divulgación Gabriel Ruiz Hernández Instituto de Matemáticas, UNAM 1 de septimebre de 1997 resumen En este trabajo vamos a describir un espacio topológico X con las
El lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.
ESTRUCTURAS ALGEBRAICAS GRADO EN MATEMÁTICAS. CURSO 215/216 Tema 2: Teorema de estructura de los grupos abelianos finitamente generados. 1.1. Grupo abeliano libre. Bases. Definición 1.1. El grupo Z n con
Eliminación de cuantificadores
Eliminación de cuantificadores Teorema Si una teoría admite eliminación de cuantificadores, y existe un algoritmo que construye ϕ sc a partir de ϕ, entonces es decidible. Cómo se demuestra este teorema?
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Guía práctica de estudio 05: Diagramas de flujo
Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de
En general, un conjunto A se define seleccionando los elementos de un cierto conjunto U de referencia que cumplen una determinada propiedad.
nidad 3: Conjuntos 3.1 Introducción Georg Cantor [1845-1918] formuló de manera individual la teoría de conjuntos a finales del siglo XIX y principios del XX. Su objetivo era el de formalizar las matemáticas
Límites y continuidad. Cálculo 1
Límites y continuidad Cálculo 1 Razones de cambio y límites La rapidez promedio de un móvil es la distancia recorrida durante un intervalo de tiempo dividida entre la longitud del intervalo. Ejemplo 1
Métodos de Inteligencia Artificial
Métodos de Inteligencia Artificial L. Enrique Sucar (INAOE) [email protected] ccc.inaoep.mx/esucar Tecnologías de Información UPAEP Contenido Lógica proposicional Lógica de predicados Inferencia en lógica
b) Sea una relación de equivalencia en A y una operación en A. Decimos que y son compatibles si a b a c b c y c a c b para todo a, b, c A
APENDICE Relaciones y Operaciones Compatibles 1 Definición: a) Sea A un conjunto y una relación entre elementos de A. Decimos que es una relación de equivalencia si es: i Reflexiva: a A, a a. ii Simétrica:
AMPLIACIÓN DE MATEMÁTICAS
AMPLIACIÓN DE MATEMÁTICAS TEOREMA DE EXTENSIÓN DE KRONECKER. Los polinomios irreducibles sobre un cuerpo no tienen raíces sobre ese cuerpo, salvo que sean de grado uno. Ya hemos visto que Ejemplo 1. x
Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas
Tema 3.1: Autómatas Finitos Deterministas Luis Peña [email protected] http://www.ia.urjc.es/cms/es/docencia/ic-msal Sumario Tema 3.1: Autómatas Finitos Deterministas. 1. Concepto de AFD 2. Equivalencia
El Autómata con Pila: Transiciones
El Autómata con Pila: Transiciones El Espacio de Configuraciones Universidad de Cantabria Esquema Introducción 1 Introducción 2 3 Transiciones Necesitamos ahora definir, paso por paso, como se comporta
Guía práctica de estudio 06: Lenguaje binario
Guía práctica de estudio 06: Lenguaje binario Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 06: Lenguaje binario
El Teorema Fundamental del Álgebra
El Teorema Fundamental del Álgebra 1. Repaso de polinomios Definiciones básicas Un monomio en una indeterminada x es una expresión de la forma ax n que representa el producto de un número, a, por una potencia
Tema 3: El Método Simplex. Algoritmo de las Dos Fases.
Tema 3: El Método Simplex Algoritmo de las Dos Fases 31 Motivación Gráfica del método Simplex 32 El método Simplex 33 El método Simplex en Formato Tabla 34 Casos especiales en la aplicación del algoritmo
3 Polinomios y funciones racionales
Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023 Clase #19: viernes, 24 de junio de 2016. 3 Polinomios y funciones racionales
Tema 1. Espacios Vectoriales Definición de Espacio Vectorial
Tema 1 Espacios Vectoriales. 1.1. Definición de Espacio Vectorial Notas 1.1.1. Denotaremos por N, Z, Q, R, C, a los conjuntos de los números Naturales, Enteros, Racionales, Reales y Complejos, respectivamente.
Una (muy) breve introducción a la teoría de la computación
Una (muy) breve introducción a la teoría de la computación Marcelo Arenas M. Arenas Una (muy) breve introducción a la teoría de la computación 1 / 48 Ciencia de la computación Cuál es el objeto de estudio
Capítulo 2: Inducción y recursión Clase 2: El principio de Inducción Fuerte
Capítulo 2: Inducción y recursión Clase 2: El principio de Inducción Fuerte Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 2: Inducción y Recursión 1 / 20 Motivación
Tema 3: Espacios vectoriales
Tema 3: Espacios vectoriales K denotará un cuerpo. Definición. Se dice que un conjunto no vacio V es un espacio vectorial sobre K o que es un K-espacio vectorial si: 1. En V está definida una operación
Introd. al Pens. Científico Nociones básicas de la lógica ClasesATodaHora.com.ar
ClasesATodaHora.com.ar > Exámenes > UBA - UBA XXI > Introd. al Pensamiento Científico Introd. al Pens. Científico Nociones básicas de la lógica ClasesATodaHora.com.ar Razonamientos: Conjunto de propiedades
Tema 3: Conjuntos y Funciones
Tema 3: Conjuntos y Funciones Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Lógica y Computabilidad Curso 2008 09 LC, 2008 09 Conjuntos y Funciones 3.1 Conjuntos Escribimos
Espacios topológicos. 3.1 Espacio topológico
Capítulo 3 Espacios topológicos 3.1 Espacio topológico Definición 3.1.1. Un espacio topológico es un par (X, τ), donde X es un conjunto, y τ es una familia de subconjuntos de X que verifica las siguientes
Algoritmos para determinar Caminos Mínimos en Grafos
Problemas de camino mínimo Algoritmos para determinar Caminos Mínimos en Grafos Algoritmos y Estructuras de Datos III DC, FCEN, UBA, C 202 Problemas de camino mínimo Dado un grafo orientado G = (V, E)
Por ser f continua y R compacto, existen x 0, y 0 en R tales que f(x 0 ) = sup{f(t) : t R} y f(y 0 ) = inf{f(t) : t R}
Proposición. Sea un rectángulo en R n, y sea f : R una función continua. Entonces f es integrable en. Conjuntos de Demostración: Como f es continua en, y es compacto, f es acotada en, y uniformemente continua.
Criterios de divisibilidad y Congruencias
Criterios de divisibilidad y Congruencias Rafael F. Isaacs G. * Fecha: 9 de marzo de 2007 Cuando tenemos un número muy grande escrito en base 10 y deseamos saber si es múltiplo por ejemplo de 9 no necesitamos
Espacios Topológicos 1. Punto de Acumulación. Al conjunto de puntos de acumulación de A se le denomina el conjunto derivado de A (A a Notación).
Espacios Topológicos 1 Punto de Acumulación Definición: Sea A un subconjunto arbitrario de R n, se dice que x R n es un punto de acumulación de A si toda bola abierta con centro x contiene un punto A distinto
Espacios compactos. Capítulo Cubiertas. En este capítulo estudiaremos el concepto de compacidad en un espacio métrico.
Capítulo 3 Espacios compactos 1. Cubiertas En este capítulo estudiaremos el concepto de compacidad en un espacio métrico. Definición 3.1. Sea (X, d) un espacio métrico y A X. Una cubierta de A es una familia
Algebra lineal y conjuntos convexos
Apéndice A Algebra lineal y conjuntos convexos El método simplex que se describirá en el Tema 2 es de naturaleza algebraica y consiste en calcular soluciones de sistemas de ecuaciones lineales y determinar
Matemáticas I: Hoja 1
Matemáticas I: Hoja 1 1. Números complejos Hasta ahora, hemos visto que los números reales son aquellos que poseen una expresión decimal y que podemos representar en una recta infinita. No obstante, para
