Introducción al Lambda Cálculo (C)

Documentos relacionados
PARADIGMAS DE PROGRAMACIÓN CALCULO LAMBDA CALCULO LAMBDA

El λ cálculo (sin tipos y con tipos)

Lambda-Cálculo. Mauro Jaskelioff 6/9/2011

14/02/2017. TEMA 3: EL CUERPO DE LOS NUMEROS REALES Esp. Prof. Liliana N. Caputo

Estructuras algebraicas

Un elemento de un monoide se dice que es inversible si tiene elemento inverso.

Conjuntos, relaciones y funciones Susana Puddu

Guía 4: Demostraciones en Cálculo Proposicional

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- V V V V F F F V F F F V

Lenguaje de programación S (Davis/Sigal/Weyuker) Lógica y Computabilidad. Ejemplo 1. Ejemplo 2

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Los Teoremas de Incompletitud de Gödel: Parte II: Coherencia y completitud

Capítulo 2: Asistentes de Pruebas para Programadores 3. Cálculo de Construcciones

LógicaS Modales. Ricardo Oscar Rodríguez Departamento de Computación, Fac. Ciencias Exactas y Naturales, Universidad de Buenos Aires, Argentina.

Tema 2: Teoría de la Demostración

1. Conjuntos y funciones

Vamos a introducir el concepto de sustitución e ilustrar su aplicación en el razonamiento

Conjuntos, Aplicaciones y Relaciones

Teoremas: Condiciones Necesarias, Condiciones Suficientes y Condiciones Necesarias y Suficientes

CIENCIAS FORMALES CIENCIAS FÁCTICAS

Capítulo II. Pruebas en Matemáticas

Axiomas del Cálculo de Predicados

Programación Funcional en LISP Lógica para Ciencias de la Computación

Lógica de proposiciones

Teoría de la Dimensión

El axioma del innito

Contenido del curso Fundamentos de Lenguajes de Programación

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

Grupos y Subgrupos El concepto de grupo Sea G un conjunto no vacío y sea G G G

Teorema de incompletitud de Gödel

Tema 2: Métodos de Deducción para la Lógica Proposicional

Tema 4: Definición de funciones

Máquinas de estado finito y expresiones regulares

Departamento de Ingeniería Matemática - Universidad de Chile

Lenguajes Libres del Contexto

Los números naturales. Definición y propiedades

Hacia las Gramáticas Propias

Operaciones extendidas de conjuntos

Expresiones Regulares

Formulaciones equivalentes del Axioma de Elección

Funciones continuas. Definición y propiedades

Guía 6: Demostraciones en Cálculo Proposicional

ÁLGEBRA I. Curso Grado en Matemáticas

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

Semana 14 [1/19] Polinomios. 8 de junio de Polinomios

Contenido. Prólogo... Prólogo a la edición en español Argumentos y proposiciones lógicas Introducción

Para mensajes:

Estructuras Algebraicas

Conjuntos, relaciones de equivalencia y aplicaciones

Isabelle como un lenguaje funcional

Funciones y Cardinalidad

Tema 1 CÁLCULO MATRICIAL y ECUACIONES LINEALES

Conjuntos. Relaciones. Aplicaciones

1. Si están situados en rectas paralelas: la recta que une los orígenes, deja sus extremos en un mismo semiplano.

Propiedades de lenguajes independientes del contexto

Tema 4: Definición de funciones

Capítulo VI. Diferenciabilidad de funciones de varias variables

Terminaremos el capítulo con una breve referencia a la teoría de cardinales.

Pablo Cobreros Tema 6. El tamaño del infinito

Relaciones Binarias. Matemática Discreta. Agustín G. Bonifacio UNSL. Relaciones Binarias

TEMA 1. Teoría de Conjuntos. Ejercicio 1.1. Decidir si A = B, A B ó A B en los siguientes casos:

Introducción al Cálculo Lambda

Tema 1: Sintaxis y Semántica de la Lógica Proposicional

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES

Tema 3: Características de la programación funcional. Sesión 5: El paradigma funcional (1)

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

Tema 9: Declaraciones de tipos y clases

1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:? (3 > 2) (2 > 5)

Álgebra Lineal y Estructuras Matemáticas. J. C. Rosales y P. A. García Sánchez. Departamento de Álgebra, Universidad de Granada

Teorema de Lagrange. En esta sección demostramos algunos hechos básicos sobre grupos, que se pueden deducir de la definición

Principio de inducción y Sumatorias

Ing. Bruno López Takeyas. Relaciones

El grupo lineal proyectivo. Homologías. Afinidades.

un conjunto cuyos elementos denominaremos vectores y denotaremos por es un espacio vectorial si verifica las siguientes propiedades:

Tipos de datos algebraicos

4. Sistemas de ecuaciones lineales

TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN

TEMA 5: NÚMEROS RACIONALES ÍNDICE:

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Teorema de Hahn-Banach

Sistemas de Ecuaciones Lineales y Matrices

Práctica N o 1 - Programación Funcional

Departamento de Ingeniería Matemática - Universidad de Chile

Teorema del Valor Medio

Ejercicios resueltos. Computación. Tema 3

Introducción a los números reales

Sucesiones. Una sucesión de números reales es una tira, o una lista, de nḿeros reales que generalmente denotamos como

Cálculo Lambda - primera parte. Paradigmas de Lenguajes de Programación. Primer cuatrimestre

1. Espacio vectorial. Subespacios vectoriales

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Lógica Proposicional (LP)

Parte II CALCULO DIFERENCIAL.

5 RELACIONES DEFINICION

Figura 9. Convención: Si B está entre el punto A y el punto C lo notamos A-B-C ó C-B-A.

Aprendizaje y extensiones mixtas

Acciones de grupos. Para ω Ω, la órbita de ω bajo la acción de G es el conjunto. Gω := {gω g G}.

APUNTES DE ÁLGEBRA LINEAL TEMA 2. SISTEMAS DE ECUACIONES LINEALES

Ejemplo 66 Sea A = {los alumnos de este curso}, entonces podemos definir la siguiente relación el el conjunto A, dada por:

Espacios topológicos. 3.1 Espacio topológico

1. Números reales. Análisis de Variable Real

Transcripción:

Introducción al Lambda Cálculo (C) Francisco Rafael Yépez Pino Programación Declarativa Avanzada

Introducción al -Cálculo: 1. δ-reducciones y -reducciones 1.1. Teorías 1.2. Eta-conversión y extensionalidad 1.3. Reducción generada por un programa 2. Formas Normales. Teoremas de Church-Rosser 3. Órdenes de Reducción. Teorema de Estandarización 4. -Definibilidad 4.1. Operaciones Lógicas 4.2. Computabilidad 4.3. Puntos Fijos y recursión 4.4. Listas en el -Cálculo

1. δ-reducciones y -reducciones Evaluación de una expresión = serie de pasos de reducción, obtenidos cada uno por reescritura, e é ; e se reescribe mediante un paso en é, usando una reducción indicada por Semantica Operacional de un lenguaje funcional = a partir de una expresión inicial, mediante un computo (= sucesivas reescrituras), se obtiene una expresión final, p.e.: ei 1 e2 2. n-1 en n ef Semántica Operacional de una expresión = computo al que da lugar tal expresión, p.e.: S.O.(en)= e1 1 e2 2. n-1 en

1. δ-reducciones y -reducciones (II) Redex (reducible expresión) = cada una de las subexpresiones que son factibles de ser reemplazadas al hacer una reducción en una expresión de acuerdo a ciertas reglas. P.e.: cond (> 3 2) (- 3 2) (- 2 3) tiene 3 redexes: > 3 2-3 2 y - 2 3, que pueden ser reemplazados por: True 1 y -1 Cómputo finalizado = aquél en el que ya no aparecen más redexes Dos tipos de Reglas: Reglas predefinidas = operaciones primitivas del lenguaje, en particular las reglas para las constantes Reglas determinadas por un programa

δ-reducciones Son las reducciones que transforman constantes, descritas por p.e.: > 3 2 δ True y + 1 2 δ 3 y también, extendiéndolo: * (+ 1 2) (- 4 1) ó * (+ 1 2) (- 4 1) δ δ * (+ 1 2) 3 * 3 (- 4 1) * 3 3 * 3 3 δ δ δ δ 9 9 El orden de la evaluación es muy importante aunque el resultado no dependa de este Se dice que la extensión de la relación inicial δ es compatible o sustutiva, ya que permite reducir una expresión a partir de reducciones de subexpresiones Usaremos δ para indicar una reducción en varios pasos (cierre transitivo y reflexivo de δ ), y así: * (+ 1 2) (- 4 1) δ 9.

δ-reducciones (II) Las reglas condicionales están entre las δ-reglas más interesantes Cond True E F δ E Cond False E F δ F Estas condicionales se dicen estrictas en el primer argumento si éste está en forma normal o es True o False

-reducciones Con las -reducciones reescribimos una llamada f u a la función f si conocemos el cuerpo de la función f. Es decir, si para f u tenemos que f x.e, hay que reemplazar en el cuerpo E todas las ocurrencias de x por el argumento u: (x.e) u <x:=u>e P.e.: (x.x) y y La regla puede utilizarse también en el sentido opuesto: (x.e) u <x:=u>e y en ese caso se llama una -expansión. Si el sentido no se precisa se habla de - equivalencia: (x.e) u <x:=u>e tambien es sustitutiva: (x.x y) (z.z) (z.z) y y Por medio de denotamos el cierre transitivo y reflexivo de, teniendo: (x.x y) (z.z) y

Mezcla de -reducciones y -reducciones Indicadas por δ δ genera una relación de igualdad δ que es de equivalencia (reflexiva, simétrica y transitiva) y debe de cumlplir que: A δ B A δ B

Reducciones generadas por una relación Sea la relaciónr Λ Λ R R Entre estas relaciones resaltamos: Que inducen distintas nociones de reducción, que resultan ser compatibles. Definición : Se dice que R es una relación compatible si R R, R y x. x. R Λ Una reducción es una relación compatible, reflexiva y transitiva (no necesariamente simétrica). Una igualdad (sustitutiva) es una relación de equivalencia compatible.

Reducciones generadas por una relación (II) Definición: (Reducciones generadas por una relación)

Reducciones generadas por una relación (III) Lema: Las relaciones R, R, = R son todas compatibles, con lo cual R es una reducción y = R es una igualdad. Por tanto, las relaciones, δ y δ reducciones. son todas

1.1 Teorías La teoría tiene como fórmulas M = N, donde M y N son -expresiones y como reglas de derivación: Si la igualdad M = N es demostrable en tal teoría escribiremos simplemente: C teoría es una teoría con igualdad compatible donde es válida la -regla.

Teorías (II) En el C tenemos dos igualdades: La igualdad generada por La igualdad = descrita por la teoría Puede demostrarse que ambas representan el mismo concepto, es decir: M N C C como teoría es que podemos razonar sobre las igualdades de forma más simple.

Teorías (III) En una teoría T con igualdad donde son aplicables los siguientes axiomas (siendo A y B igualdades) Se cumple que los dos enunciados siguientes con equivalentes: T es consistente (p.e. existe una igualdad M = N no demostrable) No existen M, N tales que T T En nuestra Teoría incluiremos los axiomas anteriores. Luego son equivalentes: Λ C C es inconsistente Esto lo usaremos para encontrar inconsistencias.

Convenio de Variables y definicion de sustitución <x:=u> e sustituir x por u en todas las apariciones libres de x en e La sustitución plantea problemas si en e aparece x ligada: F x x.( y & x, entonces ((x.( (y. x x Luego debe darse x y x x, que es absurdo e introduce inconsistencias: x y x x Λ C El problema está en la definición de sustitución, pues en estos casos es obligatorio realizar una -conversion ( ) o renombramiento de variables: ((x.( ((z.( r (r.r x y

Convenio de Variables y definicion de sustitución (II) Convenio (Convenio sobre Variables (CV)): Si una serie de términos aparecen juntos en cierto contexto, entonces todas las variables instanciables de tales términos se considerarán distintas de las libres. Definición: Teniendo en cuanta de ahora en adelante el convenio de variables se define: Para cualquier relación R se cumple: Pero no necesariamente se tiene: Una relación R es sustitutiva si: Si R sustitutiva, también: R, R, = R ; si sustitutiva, tambien = y si δ sustitutiva, tambien δ δ = δ

1.2. Eta-conversión y extensionalidad En el C siempre se tiene: (x.m) x = M Sin embago, la regla (): x.m x = M (el cuerpo de la función es M x) no es necesariamente cierta. P.e.:si consideramos la función suc x. -regla: (x.

1.2. Eta-conversión y extensionalidad (II) Curry demostró en 1941 que C (ext) es equivalente a, donde la siguiente regla (ext) captura el principio de extensionalidad: La (ext) se usa para obtener funciones vía parcialización. Como aplicación, veamos que en el δ-cálculo se tiene: COND TRUE 3 = x.3, comprobémoslo de dos formas:

1.3. Reducción generada por un programa Consideremos el siguiente programa Haskell junto sus evaluaciones en el intérprete: Que equivale formalmente a: Podemos formalizar la reducción

1.3. Reducción generada por un programa (II) Diremos que: e é si e* δ é* donde E* es la traslación al C de E

2. Formas Normales. Teoremas de Church-Rosser Un término M se dice que es un R redex si para algún término N se tiene que M R N está en R forma normal (R FN) si no contiene ningún R redex Por tanto definimos el conjunto FN de forma inductiva como: (1) x FN (2) si M1,,Mm FN entonces x M1 Mm FN (3) si M FN entoncesx.m FN Las FN se corresponden con la idea de fin de cómputo, así un evaluador deberá seguir mientras existan redexes, reducir uno de ellos. Lema (caracterización de formas normales): Si M es una R FN, entonces M R N M N. No todas las expresiones tienen FN, p.e. si (y.y y) (y.y y), es un redex y no es FN, pero además: (y.y y) (y.y y) <z:= y.y y>(z z) (y.y y) (y.y y) y el cómputo de la expresión no termina.

2. Formas Normales. Teoremas de Church-Rosser(II) Definición (Confluencia): (a) Se dice que una relación verifica la propiedad del diamante,donotada por, si se tiene, A,A 1,A 2, A A 1 A A Á. A 2 1 Á A 2 Á Tambien se indica diciendo que el siguiente diagrama es comutativo: O incluso también en la forma: (b) Una relación R se dice confluente o también que verifica la propiedad de Church-Rosser, que donotamos con R R R R

2. Formas Normales. Teoremas de Church-Rosser(III) Teorema (Teoremas de Church-Rosser, 1936)

2. Formas Normales. Teoremas de Church-Rosser(IV) Y ahora basta aplicar la transitividad de R y M R N

2. Formas Normales. Teoremas de Church-Rosser(V) Ejemplo: M 1 M1 M 2 M2 o lo que es igual: M1 M M2 Como 1 y 2 y por ser confluente, el diagrama anterior se puede completar con: M1 M R M2 Es decir, los dos evaluadores 1 y 2, computan el mismo valor, pero si el 1 produce una forma normal y el otro no, entonces sabemos que M2 M1; es decir, M1 puede obtenerse de M2 computándolo algo más por 2. M M1 M2 R

2. Formas Normales. Teoremas de Church-Rosser(VI) Corolario (Consistencia del C): Tanto el -Cálculo como el -Cálculo, son consistentes. Demostración (por reducción al absurdo): Supongamos que C sea inconsistente Entonces para cualquiera de las expresiones M y M se tiene que M=N En particular, siendo M y N dos formas normales tendremos que C C í ó C sea inconsistente es falsa el C es consistente.

3. Ordenes de reducción.teorema de estandarización Importancia de la elección del siguiente redex para la finalización del computo: (x.x x) (x.x x) La expresión (x.y) tiene dos redexes: uno interior () y otro exterior (toda la expresión) Y según por el que reduzcamos podemos tener y (reduciendo por el exterior) o la misma expresión (por el interior). Un redex es externo si no está contenido en otro redex, en cuyo caso será interno, por ejemplo:

3. Ordenes de reducción.teorema de estandarización (II) Se distinguen dos órdenes de reducción: Orden normal o estándar, que notaremos por s, donde se reduce el redex externo de más a la izquierda (x. s y (ejemplo que vimos antes (x.x x) (x.x x) ) Orden aplicativo, que notaremos por a donde se reduce el redex interno de más a la izquierda (x. a (x. a. y no terminaría el cómputo. Pero según uno de los teoremas de Church-Rosser, si una expresión tiene FN, ésta es única; en este caso y. Otro ejemplo:

Formas Normales por la cabeza. Cada término: Es una forma normal por la cabeza (FNC): M x 1 x 2. x n.x M1 Mm (n O es -reducible por la cabeza: M x 1 x 2. x n.(x.m0) M1 Mm (n (x.m0) se le llama redex de cabecera. M admite FNC si M = N con N en FNC. Teorema de Estandarización; Curry-Feys, 1958: Si M N, entonces también M s N. M tiene FNC si y sólo si su reducción por la cabeza termina, donde ésta consiste en la reducción reiterada del redex de cabecera. La reducción por la cabeza determina de forma única una secuencia de términos (que termina o no). En la reducción estandar está incluida la reducción de cabecera, teniendo: c es la reducción por cabecera y i indica reducciones internas.

Formas Normales por la cabeza. Ejemplo: (siendo = z.z):

Forma Dévil-Normal por la cabeza Se define el conjunto FDNC como: Toda constante es una FDNC x.e es una FDNC Si f es una constante o una función de aridad k > n Se diferencian de las FNC en que no se evalúan las -abstracciones internas. Clasificación de cinco -expresiones. x.i M no está en FNC pero si en FDNC, por no tener redexes externos. Una expresión que consista en una sola variable es, según la definición, una FDNC; sin embargo, el resultado de un programa funcional no debe contener variables libres (p.e., + x 1) y podemos limitarnos a FDNC cerradas. Una ventaja de la reducción a una FDNC es que se evita la -reducción en presencia de variables libres.

Forma Dévil-Normal por la cabeza (II) Por Ejemplo: está en FDNC, no reducir redex interno, pero no está en FDNC y hay que reducirla por orden normal:

4. -Definibilidad La noción de -Definibilidad es conceptualmente la base de la programación funcional Church introduce la noción de -Definibilidad de funciones f: N k N con objeto de capturar la noción de computabilidad. Establece que las funciones intuitivamente computables deben ser-definibles (tesis de Church), lo que motiva el desarrollo de lo que se conoce como teoría de las computabilidad o toría básica de las funciones recursivas. Además de la Aritmética y la Lógica, las estructuras de datos (lineales y arbóreas) también son representables (-definibles) en el C. En la sintaxis que hemos visto del C consideramos las funciones predefinidas (δ-reglas) como +, 0, -1, cond, etc. Ahora veremos como pueden definirse en un C puro.

4.1. Operaciones Lógicas Una -expesión sin variables libres es independiente del contexto. A tales expresiones las llamaremos Combinadores y las usaremos para obtener las funciones de orden superior.

4.1. Operaciones Lógicas (II)

4.2 Computabilidad

4.2 Computabilidad (II) Sistema adecuado de numerales de Church: Co fx.x Cn+1 fx.f n+1 (x) de forma que Suc abc.b (a b c) es una función sucesor: Suc Cn Cn+1 A partir de éstas es fácil definir funciones test-cero [n.(n(x.f))c], predecesor y sucesor de forma que resulte un sistema adecuado de numerales. Tambien podemos representar otras operaciones algebraicas (donde m ºn = x.m(nx).

4.2 Computabilidad (III) Consideremos ahora [n] Λ C del natural n

4.2 Computabilidad (IV)

Teorema de Kleene: La clase de las funciones recursivas es la misma que la clase de funciones -definibles. Por tanto, las funciones computables pueden representarse en el C

4.3. Puntos Fijos y recursión

4.3. Puntos Fijos y recursión (II)

4.3. Puntos Fijos y recursión (III)

4.3. Puntos Fijos y recursión (IV)

4.4 Listas en el C

4.4 Listas en el C (II)

4.4 Listas en el C (III)

Bibliografía: Razonando con Haskell: Una Introducción a la Programación Funcional; Blas C. Ruiz Jimenez, Fco. Gutierrez López, Pablo Guerrero García, José E. Gallardo Ruiz (2000). El -Cálculo (con tipos y sin tipos); Blas C. Ruiz Jimenez, Pablo Guerrero García (2002).

Muchas Gracias