Introducción al lambda cálculo

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Introducción al lambda cálculo"

Transcripción

1 Introducción al lambda cálculo Del libro: An Introduction to Lambda Calculi for Computer Scientists, Chris Hankin Diciembre 2007

2 Algoritmos Qué es un algoritmo? distintos modelos de cómputo:

3 Algoritmos Qué es un algoritmo? distintos modelos de cómputo: máquinas de Turing (formalismo de estilo operacional, máquinas con estado... )

4 Algoritmos Qué es un algoritmo? distintos modelos de cómputo: máquinas de Turing (formalismo de estilo operacional, máquinas con estado... ) teoría de funciones recursivas (formalismo abstracto)

5 Algoritmos Qué es un algoritmo? distintos modelos de cómputo: máquinas de Turing (formalismo de estilo operacional, máquinas con estado... ) teoría de funciones recursivas (formalismo abstracto) lambda (λ) cálculo. Introducido por Church en los años 30, orientado a programas en vez de a la máquina. También es un formalismo abstracto. Inspiró los lenguajes funcionales (Lisp, ML,... Haskell)

6 Abstracción funcional Los métodos en Java, las funciones de C, C++ o Pascal, las funciones de Haskell... todos ellos comparten la misma idea de abstracción funcional: bloques de código parametrizados por uno o más argumentos.

7 Abstracción funcional Los métodos en Java, las funciones de C, C++ o Pascal, las funciones de Haskell... todos ellos comparten la misma idea de abstracción funcional: bloques de código parametrizados por uno o más argumentos.... después llegaron los módulos, las clases y los objetos, los tipos, etc. Pero, qué es una función?

8 Qué es una función? En teoría de conjuntos puede representarse/identificarse con su grafo. Por ejemplo, la suma de naturales sería: {((0, 0), 0), ((0, 1), 1), ((0, 2), 2),..., ((1, 0), 1), ((1, 1), 2),...} ({((m, n), p) m, n IN, m + n = p}) Este conjunto representa los pares input/output de la función suma. Dos funciones son iguales si tienen (son) el mismo grafo igualdad extensional.

9 Qué es una función? En teoría de conjuntos puede representarse/identificarse con su grafo. Por ejemplo, la suma de naturales sería: {((0, 0), 0), ((0, 1), 1), ((0, 2), 2),..., ((1, 0), 1), ((1, 1), 2),...} ({((m, n), p) m, n IN, m + n = p}) Este conjunto representa los pares input/output de la función suma. Dos funciones son iguales si tienen (son) el mismo grafo igualdad extensional. Pero esto no es muy útil desde el punto de vista computacional... nos dice poco sobre cómo computa esa función sus valores...

10 Qué es una función? En teoría de conjuntos puede representarse/identificarse con su grafo. Por ejemplo, la suma de naturales sería: {((0, 0), 0), ((0, 1), 1), ((0, 2), 2),..., ((1, 0), 1), ((1, 1), 2),...} ({((m, n), p) m, n IN, m + n = p}) Este conjunto representa los pares input/output de la función suma. Dos funciones son iguales si tienen (son) el mismo grafo igualdad extensional. Pero esto no es muy útil desde el punto de vista computacional... nos dice poco sobre cómo computa esa función sus valores... todas las funciones/algoritmos de ordenación de vectores tienen el mismo grafo (son iguales extensionalmente).

11 Qué es una función? (cont) Nos gustaría representar una función mediante una regla de correspondencia (algoritmo) que describa cómo se calcula el resultado, en vez de tener que manejar el grafo asociado formalismo en el que definir funciones

12 Qué es una función? (cont) Nos gustaría representar una función mediante una regla de correspondencia (algoritmo) que describa cómo se calcula el resultado, en vez de tener que manejar el grafo asociado formalismo en el que definir funciones Dos funciones serán iguales si están definidas mediante reglas iguales (o equivalentes) igualdad intensional. Supongamos dos funciones con grafos: G 1 = {(1, 2), (2, 4), (3, 6),...} G 2 = {(1, 2), (2, 4), (3, 6),...} Son iguales?

13 Qué es una función? (cont) Nos gustaría representar una función mediante una regla de correspondencia (algoritmo) que describa cómo se calcula el resultado, en vez de tener que manejar el grafo asociado formalismo en el que definir funciones Dos funciones serán iguales si están definidas mediante reglas iguales (o equivalentes) igualdad intensional. Supongamos dos funciones con grafos: G 1 = {(1, 2), (2, 4), (3, 6),...} G 2 = {(1, 2), (2, 4), (3, 6),...} Son iguales? Supongamos dos funciones, ambas de un argumento (natural). La primera devuelve el resultado de sumar el argumento a sí mismo; la segunda devuelve el resultado de multiplicar su argumento por 2. Son iguales?

14 λ-cálculo: funciones como reglas de cálculo Dos aspectos a estudiar: Sintaxis o notación o gramática para los λ-términos Teorías: axiomas y reglas para relacionar términos (y también para evaluar/computar con λ-términos)

15 λ-cálculo: funciones como reglas de cálculo Dos aspectos a estudiar: Sintaxis o notación o gramática para los λ-términos Teorías: axiomas y reglas para relacionar términos (y también para evaluar/computar con λ-términos) Modelos: interpretación semántica (apoyada en la matemática). Nota: nos referimos al λ-cálculo puro. Hay otros λ-cálculos (con tipos, indeterminista,... ).

16 Sintaxis de los λ-términos Signatura (alfabeto): variables x, y, z,... (cto. infinito) símbolo λ paréntesis ( y ) λ-términos: <term> ::= <var> (elto de V) (λ <var><term>) (abs) (<term> <term>) (app) Λ: cto. de los λ-términos construidos de este modo.

17 Sintaxis de los λ-términos Signatura (alfabeto): variables x, y, z,... (cto. infinito) símbolo λ paréntesis ( y ) λ-términos: <term> ::= <var> (elto de V) (λ <var><term>) (abs) (<term> <term>) (app) Λ: cto. de los λ-términos construidos de este modo. Por ejemplo, son λ-términos: x (x z) ((x z) (y z)) (λx(λy(λz((x z) (y z)))))

18 Sintaxis de los λ-términos Signatura (alfabeto): variables x, y, z,... (cto. infinito) símbolo λ paréntesis ( y ) λ-términos: <term> ::= <var> (elto de V) (λ <var><term>) (abs) (<term> <term>) (app) Λ: cto. de los λ-términos construidos de este modo. Por ejemplo, son λ-términos: Intuición: x (x z) ((x z) (y z)) (λx(λy(λz((x z) (y z))))) (abs) definición de función, donde la variable (variable ligada por la abstracción) corresponde al parámetro formal (app) aplicación de funciones.

19 Observaciones Asumimos que la aplicación asocia por la izda: M N 1... N n (... (M N 1 )... N n )

20 Observaciones Asumimos que la aplicación asocia por la izda: M N 1... N n (... (M N 1 )... N n ) aparentemente las λ-abstracciones solo permiten definir funciones unarias puesto que solo operan con un argumento, pero no es así. Para definir la suma de naturales haríamos λx (λy (x + y))... supuesto que está definido el símbolo +!!

21 Observaciones Asumimos que la aplicación asocia por la izda: M N 1... N n (... (M N 1 )... N n ) aparentemente las λ-abstracciones solo permiten definir funciones unarias puesto que solo operan con un argumento, pero no es así. Para definir la suma de naturales haríamos λx (λy (x + y))... supuesto que está definido el símbolo +!! Variantes sintácticas: algunos textos escriben la λ-abstracción λx (λ y (xy)) como (λ x.(λy.(xy))) (pueden omitirse los paréntesis externos) en general se permite la agrupación de variables λx y.(xy) se admite también la notación λx.m como abreviatura de λx 1 x 2... x n.m, que a su vez es λx 1.(λx 2. λx n.m) en Haskell se escriben como \ x y -> x y

22 Variables libres y ligadas el símbolo λ liga la variable que tiene a continuación de manera análoga a como lo hacen los cuantificarores, en lógica de primer orden. En la expresión λx M, la variable x está ligada por el símbolo λ. Podemos definir variables libres y ligadas de un λ-término de modo análogo a como se hace con las fórmulas de la lógica. Se definen inductivamente (sobre la estructura de los λ-términos): Variables ligadas BV : Λ P(V) BV x = BV (λx M) = {x} (BV M) BV (MN) = (BV M) (BV N) Variables libres FV : Λ P(V) FV x = {x} FV (λx.m) = (FV M) {x} FV (MN) = (FV M) (FV N)

23 Variables libres y ligadas (cont) cuando (FV M) =, se dice que M es cerrado o también que es un combinador. El conjunto de combinadores se denota como Λ 0.

24 Variables libres y ligadas (cont) cuando (FV M) =, se dice que M es cerrado o también que es un combinador. El conjunto de combinadores se denota como Λ 0. es cierto que var M = (FV M) (BV M)? (var M: cto. de vars. que aparecen en M)

25 Variables libres y ligadas (cont) cuando (FV M) =, se dice que M es cerrado o también que es un combinador. El conjunto de combinadores se denota como Λ 0. es cierto que var M = (FV M) (BV M)? (var M: cto. de vars. que aparecen en M) es cierto que para cualquier M se tiene (FV M) (BV M) =?

26 Variables libres y ligadas (cont) cuando (FV M) =, se dice que M es cerrado o también que es un combinador. El conjunto de combinadores se denota como Λ 0. es cierto que var M = (FV M) (BV M)? (var M: cto. de vars. que aparecen en M) es cierto que para cualquier M se tiene (FV M) (BV M) =? es cierto que (FV M) = var M (BV M)?

27 Variables libres y ligadas (cont) cuando (FV M) =, se dice que M es cerrado o también que es un combinador. El conjunto de combinadores se denota como Λ 0. es cierto que var M = (FV M) (BV M)? (var M: cto. de vars. que aparecen en M) es cierto que para cualquier M se tiene (FV M) (BV M) =? es cierto que (FV M) = var M (BV M)? Nótese que estas definiciones se hacen sobre la estructura de los términos. Muchas de las demostraciones acerca de términos se hacen por inducción estructural. Por ejemplo, probar que todo λ-término tiene el mismo número de paréntesis abiertos que cerrados (está balanceado).

28 Subtérminos Definimos el conjunto de sub(λ)términos de una λ-expresión, Sub : Λ P(Λ) como: Sub x = {x} Sub (λx M) = (Sub M) {(λx M)} Sub (M N) = (Sub M) (Sub N) {(M N)}

29 Contextos Un contexto es un término con huecos representados como [] (que pueden rellenarse con términos para obtener otro término). Formalmente, la clase C[] de los contextos se define como la mínima que cumple: 1. x C[ ] 2. [ ] C[ ] 3. Si C 1 [ ], C 2 [ ] C[ ] entonces (C 1 [ ] C 2 [ ]), (λx C 1 [ ]) C[ ]

30 Contextos Un contexto es un término con huecos representados como [] (que pueden rellenarse con términos para obtener otro término). Formalmente, la clase C[] de los contextos se define como la mínima que cumple: 1. x C[ ] 2. [ ] C[ ] 3. Si C 1 [ ], C 2 [ ] C[ ] entonces (C 1 [ ] C 2 [ ]), (λx C 1 [ ]) C[ ] O también C[ ] ::= x [ ] (C 1 [ ] C 2 [ ]) (λ.c 1 [ ]), con C 1 [ ], C 2 [ ] C[ ].

31 Contextos Un contexto es un término con huecos representados como [] (que pueden rellenarse con términos para obtener otro término). Formalmente, la clase C[] de los contextos se define como la mínima que cumple: 1. x C[ ] 2. [ ] C[ ] 3. Si C 1 [ ], C 2 [ ] C[ ] entonces (C 1 [ ] C 2 [ ]), (λx C 1 [ ]) C[ ] O también C[ ] ::= x [ ] (C 1 [ ] C 2 [ ]) (λ.c 1 [ ]), con C 1 [ ], C 2 [ ] C[ ]. Por ejempo (λx.[ ] x) M es un contexto. En general si tomamos un término y reemplazamos cualquiera de sus subtérminos por [ ] tendremos un contexto. Y si tomamos un contexto y reemplazamos cualquiera de sus subtérminos por [ ]?...

32 Contextos Un contexto es un término con huecos representados como [] (que pueden rellenarse con términos para obtener otro término). Formalmente, la clase C[] de los contextos se define como la mínima que cumple: 1. x C[ ] 2. [ ] C[ ] 3. Si C 1 [ ], C 2 [ ] C[ ] entonces (C 1 [ ] C 2 [ ]), (λx C 1 [ ]) C[ ] O también C[ ] ::= x [ ] (C 1 [ ] C 2 [ ]) (λ.c 1 [ ]), con C 1 [ ], C 2 [ ] C[ ]. Por ejempo (λx.[ ] x) M es un contexto. En general si tomamos un término y reemplazamos cualquiera de sus subtérminos por [ ] tendremos un contexto. Y si tomamos un contexto y reemplazamos cualquiera de sus subtérminos por [ ]?...En general se pueden definir contextos de cualquier aridad (número de huecos), pero solo necesitaremos contextos de aridad 1.

33 Contextos (cont) Un contexto se puede entender como una función que toma un término y lo coloca en el hueco [ ]. En este sentido los contextos se aplican. Si C [ ] = (λx.[ ] x) M entonces C [λy.y] = (λx.(λy.y) x) M Los conjuntos de variables libres y ligadas pueden también definirse para contextos. Nótese que las variables libres de un término pueden ligarse al ponerlas en contexto (al utilizar ese término como argumento de un contexto). Por ejemplo, si M = x (FV (M) = {x}) y C [ ] = λx.[ ], tenemos C [x] = λx.x (la x queda ligada).

34 La teoría λ Es una teoría de igualdad para λ-términos ( convertibilidad entre λ-términos), regida por el λ-cálculo siguiente: M = M (REF ) M = N N = M (SIM) M = N N = L M = L (TRA)

35 La teoría λ Es una teoría de igualdad para λ-términos ( convertibilidad entre λ-términos), regida por el λ-cálculo siguiente: M = M (REF ) M = N N = M (SIM) M = N M Z = N Z (AP 1) M = N Z M = Z N (AP 2) M = N N = L M = L (TRA)

36 La teoría λ Es una teoría de igualdad para λ-términos ( convertibilidad entre λ-términos), regida por el λ-cálculo siguiente: M = M (REF ) M = N N = M (SIM) M = N N = L (TRA) M = L M = N M Z = N Z (AP 1) M = N Z M = Z N (AP 2) M = N λx.m = λx.n (ξ)

37 La teoría λ Es una teoría de igualdad para λ-términos ( convertibilidad entre λ-términos), regida por el λ-cálculo siguiente: M = M (REF ) M = N N = M (SIM) M = N N = L (TRA) M = L M = N M Z = N Z (AP 1) M = N Z M = Z N (AP 2) M = N λx.m = λx.n (ξ) (λx.m) N = M[x := N] (β)

38 La teoría λ (cont) Este cálculo define la relación = (REF ), (SIM) y (TRA) relación de equivalencia (AP 1 ) y (AP 2 ) intuitivamente indican que los términos iguales son iguales en cualquier contexto. (ξ) es una regla de extensionalidad débil, que puede leerse como: si dos términos son iguales, entonces tienen el mismo comportamiento como cuerpo de funciones. (β) corresponde a la aplicación funcional (β-reducción). La expresión [x := N] es una sustitución: reemplazar las apariciones libres de x por N (en el término al que se aplique, M en este caso).

39 La teoría λ (cont) Este cálculo define la relación = (REF ), (SIM) y (TRA) relación de equivalencia (AP 1 ) y (AP 2 ) intuitivamente indican que los términos iguales son iguales en cualquier contexto. (ξ) es una regla de extensionalidad débil, que puede leerse como: si dos términos son iguales, entonces tienen el mismo comportamiento como cuerpo de funciones. (β) corresponde a la aplicación funcional (β-reducción). La expresión [x := N] es una sustitución: reemplazar las apariciones libres de x por N (en el término al que se aplique, M en este caso). La presentación clásica del λ-calculo incluye la regla de α-conversión: λx.m = λy.m[x := y] (α) y FV M

40 La teoría λ (cont) Escribimos λ M = N cuando M = N es un teorema del λ-cálculo y se lee como M y N son convertibles.

41 La teoría λ (cont) Escribimos λ M = N cuando M = N es un teorema del λ-cálculo y se lee como M y N son convertibles. Nótese que el símbolo = ahora es una relación definida por las reglas de este cálculo. Para la igualdad/identidad sintáctica (símbolo a símbolo) utilizaremos el símbolo. M N N = N (por (REF )) pero no es cierto que M = N M N. Por ejemplo, (λx.x) y = y (por (β)), pero (λx.x) y y (no son idénticos).

42 Teorema del punto fijo Teorema F Λ, X Λ tal que F X = X diremos que X es un punto fijo para F

43 Teorema del punto fijo Teorema F Λ, X Λ tal que F X = X diremos que X es un punto fijo para F demo: Sea W λx.f (x x) y X W W. Veamos que X es el punto fijo buscado: X WW (λx.f (x x)) W β = F (W W ) F X

44 Teorema del punto fijo Teorema F Λ, X Λ tal que F X = X diremos que X es un punto fijo para F demo: Sea W λx.f (x x) y X W W. Veamos que X es el punto fijo buscado: X WW (λx.f (x x)) W β = F (W W ) F X Esta demostración es constructiva: permite hacer una construcción efectiva del punto fijo en cuestión.

45 Punto Fijo Si F λx.x es evidente que cualquier término es un punto fijo para ella...

46 Punto Fijo Si F λx.x es evidente que cualquier término es un punto fijo para ella... qué punto fijo nos da el teorema?

47 Punto Fijo Si F λx.x es evidente que cualquier término es un punto fijo para ella... qué punto fijo nos da el teorema? Si F λx y.x y, veamos qué punto fijo nos da el teorema: definimos W λx.f (x x) λx.(λx y.x y) (x x) β = λx y.(x x)y el punto fijo que buscamos será X W W (λx y.(x x)y) (λx y.(x x)y) veamos que efectivamente es un punto fijo: X (λxy.(xx)y)(λxy.(xx)y) β = λy. ( (λxy.(xx)y)(λxy.(xx)y) ) y F X (λxy.xy) (λxy.(xx)y) (λxy.(xx)y) }{{}}{{} F X λy.(λxy.(xx)y) (λxy.(xx)y)y β =

48 Sustituciones La sustitución que se utiliza en la β-reducción puede plantear problemas de captura de variables, cuando sustituimos una variable por un término que contiene una variable libre en un ámbito en el que esa variable está ligada. tendríamos (λxy.yx)y β? = λy.yx[x := y] λy.yy... pero esto no es correcto!! (se confunde la y ligada con la y externa, libre)

49 Sustituciones La sustitución que se utiliza en la β-reducción puede plantear problemas de captura de variables, cuando sustituimos una variable por un término que contiene una variable libre en un ámbito en el que esa variable está ligada. tendríamos (λxy.yx)y β? = λy.yx[x := y] λy.yy... pero esto no es correcto!! (se confunde la y ligada con la y externa, libre) intuición: las variables ligadas en una λ-abstracción son mudas, i.e., la λ-abstracción λxz.zx debería ser equivalente (en algún sentido) a la anterior. Pero ahora tenemos (λxz.zx)y β = λz.zx[x := y] λz.zy... que no puede ser lo mismo que antes!! Tres aproximaciones para solucionar este problema...

50 Sustituciones. Aproximación clásica (Church) Definimos las sutituciones como: 1. x[x := N] N 2. y[x := N] y, si y es distinta de x 3. (λx.m)[x := N] λx.m 4. (λy.m)[x := N] λy.m[x := N] si x FV M o y FV N 5. (λy.m)[x := N] λz.(m[y := z])[x := N] si x FV M y y FV N, siendo z una nueva variable (fresca) 6. (M 1 M 2 )[x := N] (M 1 [x := N] M 2 [x := N]) (5) evita la captura de variables, haciendo previamente un renombramiento de la variable ligada en la λ-abstracción.

51 Sustituciones. Aproximación clásica (cont) Así tenemos (λxy.yx)y = β λy.(yx)[x := y] 5 λz.((yx)[y := z])[x := y] 6 λz.(y[y := z]x[y := z])[x := y] 1,2 λz.(zx)[x := y] 6 λz.(z[x := y]x[x := y]) 6,6 λz.(zy) Recordemos que la presentación clásica del λ-calculo incluía la α-conversión: λx.m = λy.m[x := y] (α) y FV M que es lo que se hace (o justifica) el renombramiento que se hace en (5)

52 Sustituciones. Clases de equivalencia para los λ-términos Cambio de variables ligadas: dado M C[λx.N] diremos que el término M C[λy.(N[x/y])] siendo y var N se obtiene a partir de M mediante cambio de variables ligadas. La expresión N[x/y] denota el resultado de reemplazar todas las apariciones de x por y en N (nótese que no hay problemas de caputura porque y var N. α-congruencia: M es α-congruente con N y se escribe M α N si N se obtiene mediante una serie de cambios de variables ligadas a partir de M. Tenemos λx.xy α λz.zy, pero λx.xy α λy.yy

53 Sustituciones. Clases de equivalencia (cont) Idea: la α-congruencia es una relación de equivalencia. Para aplicar una sustitución M[x := N] se toman representantes adecuados para N y M de modo que x BV M y (BV M) (FV N) =. En general se adopta una convención sobre las variables: si M 1,..., M n aparecen en un determinado contexto, entonces todas las variables ligadas de cada uno de ellos deben escogerse de modo que sean diferentes de todas las variables libres de los demás. De este modo, para aplicar la sustitución M[x := N] se garantiza previamente la convención de variables (para N y M) y el reemplazamiento de todas las apariciones de x por N en M. Nota: en la demo del th de pto fijo se ha utilizado la convención sobre vars. de modo impĺıcito.

54 Sustituciones. Clases de equivalencia (cont) Ejemplo: var con (λxyz.xzy)(λxz.x) = (λxyz.xzy)(λuv.u) β = λyz.(λuv.u)zy β = λyz.(λv.z)y β = λyz.z En lo que sigue utilizaremos esta aproximación porque es la más cómoda para trabajar manualmente... pero hay otra aproximación interesante (sobre todo para implementar máquinas de reducción).

55 Sustitucions. Notación de de Bruijn Elimina el problema de la captura de variables, prescindiendo de las variables en las λ-abstracciones: referencia los parámetros formales mediante números (naturales).

56 Sustitucions. Notación de de Bruijn Elimina el problema de la captura de variables, prescindiendo de las variables en las λ-abstracciones: referencia los parámetros formales mediante números (naturales). Por ejemplo, λxy.x se escribe como λ.λ.2 (el 2 se refiere al parámetro formal introducido por la λ más externa, i.e., el natural indica la distancia (número de λ s intermedias a la que se intrudce ese parámetro.

57 Sustitucions. Notación de de Bruijn Elimina el problema de la captura de variables, prescindiendo de las variables en las λ-abstracciones: referencia los parámetros formales mediante números (naturales). Por ejemplo, λxy.x se escribe como λ.λ.2 (el 2 se refiere al parámetro formal introducido por la λ más externa, i.e., el natural indica la distancia (número de λ s intermedias a la que se intrudce ese parámetro. Cualquier λ-término cerrado puede traducirse a esta notación: DB x (x 1,..., x n ) = i, si i es el mínimo tal que x x i DB (λx.m) (x 1,..., x n ) = λ(db M (x, x 1,..., x n )) DB (M N) (x 1,..., x n ) = (DB M (x 1,..., x n )) (DB N (x 1,..., x n ))

58 Ejemplo: Notación de de Bruijn (cont) se representa como λx.x(λy.xy(λz.xyz)) DB (λx.x(λy.xy(λz.xyz))) () λ.(db (x(λy.xy(λz.xyz))) (x)) λ.(db x (x)) (DB(λy.xy(λz.xyz)) (x)) λ.1 (λ.(db(xy(λz.xyz)) (y, x))) λ.1 (λ.(db x (y, x)) (DB y (y, x)) (DB (λz.xyz) (y, x))) λ.1 (λ.2 1 (λ.db (xyz) (z, y, x))) λ.1 (λ.2 1 (λ.3 2 1)) Nótese que se ha cambiado la definición de λ-términos. Es el mínimo conjunto que cumple: 1. cualquier n > 0 es un λ-término 2. Si M y N son λ-términos, entonces M N también lo es. 3. Si M es un λ-término, entonces (λm) también lo es.

59 Notación de de Bruijn (cont) La regla β se reemplaza por: (λp)q = P[1 := Q] donde: n si n < m n[m := N] n 1 si n > m rename n,1 (N) si n m (M 1 M 2 )[m := N] (M 1 [m := N] M 2 [m := N]) (λm)[m := N] λ(m[m + 1 := N]) (incremento de contador) rename se define como: { j si j < i rename m,i (j) j + m 1 si j i rename m,i (N 1 N 2 ) rename m,i (N 1 ) rename m,i (N 2 ) rename m,i (λn) λ(rename m,i+1 (N))

60 Notación de de Bruijn (cont) Ejemplo. En notación convencional: λx.(λyz.y)x λx.(λy.λz.y)x = β λx.λz.x En notación de de Bruijn : λ.(λ.λ.2)1 β = λ.(λ.2)[1 := 1] λ.λ.2[2 := 1] λ.λ.rename 2,1 (1) λ.λ.2 Esta notación es más incómoda para trabajar... pero es más adecuada para implementar la β-reducción. No se necesita α-conversión. En lo que sigue adoptamos la notación tradicional y la convención de variables para aplicar sustituciones

61 Lema de sustitución Lema Si x e y son variables distintas y x FV L, entonces M[x := N][y := L] M[y := L][x := N[y := L]] Demo: por inducción sobre la estructura de M Lema Otras propiedades de las sustituciones: 1. M = M M[x := N] = M [x := N] 2. N = N M[x := N] = M[x := N ] 3. M = M, N = N M[x := N] = M [x := N ] Demo:... (ver libro) Ejercicio la primera propiedad puede también demostrarse por inducción sobre la longitud de la demostración: número de pasos de derivación; si es un axioma la longitud es 0, si no, es 1 más la longitud de las derivaciones correspondientes a las premisas.

62 Transparencia referencial Lema Sea C[ ] un contexto y N, N Λ. Tenemos: N = N C[N] = C[N ] Demo: por induccion sobre la estructura de C[ ] (ver libro)

63 Extensionalidad La relación = definida por el λ-cálculo proporciona igualdad intensional: dos términos son iguales si codifican el mismo algoritmo (en algún sentido).... pero: consideremos M λx.yx y N y. Son iguales? Si aplicamos ambos a cualquier L Λ: M L (λx.yx)l β = yl NL yl

64 Extensionalidad La relación = definida por el λ-cálculo proporciona igualdad intensional: dos términos son iguales si codifican el mismo algoritmo (en algún sentido).... pero: consideremos M λx.yx y N y. Son iguales? Si aplicamos ambos a cualquier L Λ: M L (λx.yx)l β = yl NL yl son iguales!... pero esto no quiere decir que M = N: esta igualdad no es deducible en el λ-cálculo (no es un teorema de λ). Esta es la igualdad extensional.

65 Extensionalidad (cont) Si queremos tener este tipo de igualdad en nuestra teoría tenemos que añadir una nueva regla o axioma. Dos posibles formas: M x = N x (ext) M = N con x (FV M) (FV N) λx.mx = M (η), si x FV M Lema λ + (ext) y λ + (η) son equivalentes. (demo: ver libro)

66 Extensionalidad (cont) Si queremos tener este tipo de igualdad en nuestra teoría tenemos que añadir una nueva regla o axioma. Dos posibles formas: M x = N x (ext) M = N con x (FV M) (FV N) λx.mx = M (η), si x FV M Lema λ + (ext) y λ + (η) son equivalentes. (demo: ver libro) Es evidente que este cálculo extendido es más potente que el original (prueba todo lo que prueba el original y más cosas)... entonces por qué no se introduce esta extensión desde el principio?

67 Extensionalidad (cont) Si queremos tener este tipo de igualdad en nuestra teoría tenemos que añadir una nueva regla o axioma. Dos posibles formas: M x = N x (ext) M = N con x (FV M) (FV N) λx.mx = M (η), si x FV M Lema λ + (ext) y λ + (η) son equivalentes. (demo: ver libro) Es evidente que este cálculo extendido es más potente que el original (prueba todo lo que prueba el original y más cosas)... entonces por qué no se introduce esta extensión desde el principio? la regla η normalmente no se implementa y los términos λx.mx y M son distintos en lenguajes como Haskell o ML.

68 Consistencia Una ecuación es una fórmula de la forma M = N. Es cerrada si M, N Λ 0. Una teoría ecuacional es consistente cuando NO todas las fórmulas cerradas son teoremas suyos. Lema Tanto λ como λ + (η) son teorías consistentes.

69 Consistencia Una ecuación es una fórmula de la forma M = N. Es cerrada si M, N Λ 0. Una teoría ecuacional es consistente cuando NO todas las fórmulas cerradas son teoremas suyos. Lema Tanto λ como λ + (η) son teorías consistentes. La consistencia es frágil: puede destruirse añadiendo una sola ecuación. Por ejemplo, si consideramos S λxyz.xz(yz) y K λxy.x y añadimos la ecuación S = K a cualquiera de las teorías λ o λ + (η), éstas se convierten en inconsistentes. demo: ver libro

70 Incompatibilidad Dados M, N Λ diremos que son incompatibles, escrito M#N si λ + (M = N) es inconsistente. Ejemplo: xx#xy Supongamos xx = xy ξ,2 λxy.xx = λxy.xy (AP 1 ),2 (λxy.xx) M N = (λxy.xy) M N M, N Λ (β),2 M M = M N M, N Λ sea M I λx.x I = N N Λ Cualquier término es igual a la identidad!... entonces podemos probar cualquier igualdad! M = N, puesto que ambos son iguales a la identidad y por transitividad, lo tenemos... inconsistencia!! Esto quiere decir que xx#xy

71 Incompatibilidad (cont) La técnica utilizada en el ejemplo anterior es útil en general (ojo: no es un algoritmo!): 1. aplicar n veces (ξ) a ambos miembros para obtener una ecuación cerrada 2. aplicar ambos lados de la ecuación a los mismos términos arbitrarios (M 1, M 2,..., M n ) 3. aplicar β-conversiones 4. instanciar los téminos arbitrarios a constantes específicas para intentar derivar una ecuación de la forma término arbitrario = constante Ejercicio: demostrar que la aplicación no es asociativa, i.e., x(yz)#(xy)z

72 Formas normales Def (formas normales): M Λ es una β-forma normal (β-nf, o simplemente nf) si no tiene subtérminos de la forma (λx.r)s, i.e., no se le puede aplicar β. M Λ tiene una β-forma normal si existe N Λ tal que N = M y N es una forma normal. Por ejemplo, λx.x es una β-nf, (λxy.x)(λx.x) tiene λyx.x como β-nf, (λx.xx)(λx.xx) no tiene β-nf. Por analogía, una βη-forma normal será una β-forma normal que no contiene ningun subtérmino de la forma (λx.rx) con x FV R

73 Formas normales y completitud Teorema: 1. M tiene una βη-nf M tiene una β-nf 2. Si M y N son β-nf s distintas, entonces M = N no es un teorema del λ-cálculo (análogo para λ + η) 3. Si M y N son βη-nf s distintas, entonces M#N. El uso de βη-nf s es esencial en el ultimo punto: λx.yx e y son β-nf s distintas, pero no son incompatibles (son η-equivalentes). Teorema (completitud): Si M y N tienen λ + η formas normales entonces: λη M = N o λη + (M = N) es inconsistente.

En 1936 se introdujeron dos modelos computacionales: Alan Turing inventó la máquina de Turing y la noción de función computable en sus

En 1936 se introdujeron dos modelos computacionales: Alan Turing inventó la máquina de Turing y la noción de función computable en sus Capítulo 1 Cálculo-λ En 1936 se introdujeron dos modelos computacionales: Alan Turing inventó la máquina de Turing y la noción de función computable en sus máquinas. Alonzo Church inventó un sistema formal

Más detalles

Introducción al Cálculo Lambda

Introducción al Cálculo Lambda Introducción al Cálculo Lambda Dr. Alejandro Guerra-Hernández Departamento de Inteligencia Artificial Universidad Veracruzana Facultad de Física e Inteligencia Artificial Sebastián Camacho No 5, Xalapa,

Más detalles

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

Lambda-Cálculo. Mauro Jaskelioff 6/9/2011 Lambda-Cálculo Mauro Jaskelioff 6/9/2011 Origen del λ-cálculo El λ-cálculo fue inventado por Alonzo Church en la década de 1930. Originalmente fue inventado como parte de un sistema formal para modelar

Más detalles

Lenguajes funcionales: λ-cálculo

Lenguajes funcionales: λ-cálculo Lenguajes funcionales: λ-cálculo λ-cálculo (Church 1933) Cálculo para el estudio formal del comportamiento de las funciones Sintaxis: λ expresiones Reglas de reducción de λ expresiones Método matemático

Más detalles

Contenido del curso Fundamentos de Lenguajes de Programación

Contenido del curso Fundamentos de Lenguajes de Programación Contenido del curso Fundamentos de Lenguajes de Programación MC Mireya Tovar Vidal FCC- BUAP Cubículo 5 mtovar@cs.buap.mx Horario de atención: martes 11:00-12:00 Cálculo lambda sin tipos Cálculo lambda

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

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

Más detalles

Introducción al Lambda Cálculo (C)

Introducción al Lambda Cálculo (C) 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

Más detalles

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Sintaxis y semántica

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Sintaxis y semántica LÓGICA FORMAL TEORIAS DE PRIMER ORDEN Sintaxis y semántica Pedro López Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid Lenguajes de primer orden 1 La lógica

Más detalles

Lógica de Predicados, Sintaxis

Lógica de Predicados, Sintaxis Lógica de Predicados, Sintaxis Dante Zanarini LCC 16 de Septiembre de 2015 Dante Zanarini (LCC) Lógica de Predicados, Sintaxis 16 de Septiembre de 2015 1 / 15 Enriqueciendo el lenguaje Consideremos el

Más detalles

Hacia las Gramáticas Propias

Hacia las Gramáticas Propias Hacia las Gramáticas sin Ciclos Universidad de Cantabria Esquema 1 Introducción 2 3 Introducción Las gramáticas libres de contexto pueden presentar diferentes problemas. Ya hemos visto como eliminar los

Más detalles

PARADIGMAS DE PROGRAMACIÓN CALCULO LAMBDA CALCULO LAMBDA

PARADIGMAS DE PROGRAMACIÓN CALCULO LAMBDA CALCULO LAMBDA PARADIGMAS DE PROGRAMACIÓN 2006 CALCULO LAMBDA CALCULO LAMBDA El cálculo lambda fue desarrollado por Alonso Church en la década del 30 con el objeto de dar una teoría general de las funciones. El cálculo

Más detalles

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

Capítulo 2: Asistentes de Pruebas para Programadores 3. Cálculo de Construcciones Capítulo 2: Asistentes de Pruebas para Programadores 3. Cálculo de Construcciones InCo CFPTT - 3.1 1. Cálculo simplemente tipado Sintaxis Términos e ::= x x.e (e 1 e 2 ) c Tipos ::= t 1 2 x Var c Const

Más detalles

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

El λ cálculo (sin tipos y con tipos) El λ cálculo (sin tipos y con tipos) Blas Carlos Ruiz Jiménez Pablo Guerrero García Dpto. de Lenguajes y Ciencias de la Computación Dpto. de Matemática Aplicada Universidad de Málaga Pza. El Ejido s/n,

Más detalles

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Axiomática

LÓGICA FORMAL TEORIAS DE PRIMER ORDEN. Axiomática LÓGICA FORMAL TEORIAS DE PRIMER ORDEN Francisco Bueno Pedro López Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid Teoría de Primer Orden 1 Formalmente,

Más detalles

Completitud en Lógica de Predicados

Completitud en Lógica de Predicados Completitud en de Predicados Predicados - Completitud 1 Corrección. Significa que las derivaciones expresan una consecuencia lógica. Establece una correspondencia tal que partiendo de nociones sintácticas

Más detalles

Definiciones de computabilidad OTROS MODELOS COMPUTACIONALES. Computabilidad-Turing. Tesis de Church-Turing

Definiciones de computabilidad OTROS MODELOS COMPUTACIONALES. Computabilidad-Turing. Tesis de Church-Turing Definiciones de computabilidad OTROS MODELOS COMPUTACIONALES Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx Página Web: www.matematicas.unam.mx/fhq

Más detalles

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

Los Teoremas de Incompletitud de Gödel: Parte II: Coherencia y completitud Los Teoremas de Incompletitud de Gödel: Parte II: Coherencia y completitud Guillermo Morales Luna Departmento de Computación CINVESTAV-IPN gmorales@cs.cinvestav.mx 2-o Encuentro Nacional de Epistemología

Más detalles

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

Cálculo Lambda - primera parte. Paradigmas de Lenguajes de Programación. Primer cuatrimestre Cálculo Lambda - primera parte Paradigmas de Lenguajes de Programación Primer cuatrimestre - 2014 Para qué sirve el cálculo lambda? Provee un modelo de cómputo simple que permite representar todas las

Más detalles

Clase 02/10/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf

Clase 02/10/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf Clase 02/10/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf Escenas de episodios anteriores objetivo: estudiar formalmente el concepto de demostración matemática. caso de estudio: lenguaje

Más detalles

COMPACIDAD Y COMPLETITUD: DOS TEOREMAS CLÁSICOS DE LA TEORÍA DE MODELOS

COMPACIDAD Y COMPLETITUD: DOS TEOREMAS CLÁSICOS DE LA TEORÍA DE MODELOS COMPACIDAD Y COMPLETITUD: DOS TEOREMAS CLÁSICOS DE LA TEORÍA DE MODELOS JOEL TORRES DEL VALLE 1 1 Universidad Cartagena Resumen. Se presentan dos teoremas clásicos de la Teoría de Modelos: Teorema de La

Más detalles

Temas. Objetivo. Símbolo, alfabeto. Hileras y operaciones con hileras. Operaciones con lenguajes

Temas. Objetivo. Símbolo, alfabeto. Hileras y operaciones con hileras. Operaciones con lenguajes 0 1 Temas Símbolo, alfabeto Hileras y operaciones con hileras Operaciones con lenguajes Objetivo Que el estudiante logre conocer, comprender y manejar conceptos vinculados con la Teoría de Lenguajes Formales

Más detalles

Lambda cálculo no tipado

Lambda cálculo no tipado Capítulo 1 Lambda cálculo no tipado Vamos a revisar la definición y propiedades básicas del lambda cálculo puro o no tipado. A mediados de los 60s, Peter Landin observó que un lenguaje de programación

Más detalles

Tema 4. Funciones de orden superior

Tema 4. Funciones de orden superior Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 4. Funciones de orden superior 4.1 Funciones de orden superior 4.2 Expresiones lambda 4.3

Más detalles

Lógica de proposiciones

Lógica de proposiciones 1 Introducción Lenguaje lógico simbólico más sencillo. Permite representar sentencias simples del lenguaje natural mediante formulas atómicas, cuya composición representa sentencias más complejas: p temperatura

Más detalles

Resumen de aritmética de Peano

Resumen de aritmética de Peano Resumen de aritmética de Peano UDELAR/FING/IMERL 16 de febrero de 2017 1. Fundamentos de la Aritmética de Peano. Axioma 1.1. Existe un conjunto al que denotamos N, un elemento 0 N y una función s : N N

Más detalles

Introducción a la complejidad computacional

Introducción a la complejidad computacional Introducción a la complejidad computacional definida sobre anillos arbitrarios 18 de junio de 2016 Fuente: http://www.utmmcss.com/ Por qué otro modelo? Continuo vs discreto. Intuición interiorizada del

Más detalles

Tema 4. Funciones de orden superior

Tema 4. Funciones de orden superior Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 4. Funciones de orden superior 4.1 Funciones de orden superior 4.2 Expresiones lambda 4.3 Aplicación parcial Secciones

Más detalles

Análisis lógico Cálculo de proposiciones

Análisis lógico Cálculo de proposiciones Sintaxis Semántica Sistemas de demostración Análisis lógico Cálculo de proposiciones Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx Página Web: www.matematicas.unam.mx/fhq

Más detalles

Lógica de predicados. Sintaxis y Propiedades Lógica 2018

Lógica de predicados. Sintaxis y Propiedades Lógica 2018 Lógica de predicados. Sintaxis y Propiedades Lógica 2018 Instituto de Computación 8 de mayo Instituto de Computación (InCo) Lógica de predicados. Sintaxis y Propiedades Curso 2018 1 / 1 Estructuras Instituto

Más detalles

Sistemas de ecuaciones lineales

Sistemas de ecuaciones lineales Tema 1 Sistemas de ecuaciones lineales 11 Definiciones Sea K un cuerpo Una ECUACIÓN LINEAL CON COEFICIENTES EN K es una expresión del tipo a 1 x 1 + + a n x n = b, en la que n es un número natural y a

Más detalles

Un álgebra de Heyting satisface distributividad, es lo que demostramos un poco más arriba (la prueba es muy similar). Recíprocamente, si se define

Un álgebra de Heyting satisface distributividad, es lo que demostramos un poco más arriba (la prueba es muy similar). Recíprocamente, si se define 62 (Undécima clase: Ejemplos de exponenciales) Algunos ejemplos de lógica y computación. Álgebras de Heyting. La clase pasada vimos que una álgebra de Boole, vista como categoría, es cartesiana cerrada

Más detalles

Sintaxis y Propiedades. Estructuras

Sintaxis y Propiedades. Estructuras Sintaxis y Propiedades Predicados 1 Estructuras Def 2.2.1 [estructura] Una estructura es una secuencia ordenada M = tal que: A es un conjunto no vacío, ( Notacion: A =

Más detalles

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones

Más detalles

TEMA 2. ESPACIOS VECTORIALES

TEMA 2. ESPACIOS VECTORIALES TEMA 2. ESPACIOS VECTORIALES CÉSAR ROSALES GEOMETRÍA I En este tema comenzaremos el estudio de los objetos que nos interesarán en esta asignatura: los espacios vectoriales. Estos son estructuras básicas

Más detalles

Máquinas de estado finito y expresiones regulares

Máquinas de estado finito y expresiones regulares Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.

Más detalles

Transformaciones lineales y matrices

Transformaciones lineales y matrices CAPíTULO 5 Transformaciones lineales y matrices 1 Matriz asociada a una transformación lineal Supongamos que V y W son espacios vectoriales de dimensión finita y que T : V W es una transformación lineal

Más detalles

Definiciones generales. Alfabeto de la lógica proposicional. Conectivos. Conectivos

Definiciones generales. Alfabeto de la lógica proposicional. Conectivos. Conectivos Contenido BLOQUE II: Tema 1 SINTAXIS DE LA LÓGICA PROPOSICIONAL Lógica Grado en Ingeniería Informática Alessandra Gallinari URJC Alfabeto del lenguaje formal de la lógica proposicional Definición recursiva

Más detalles

Fundamentos de Ciencias de la Computación

Fundamentos de Ciencias de la Computación Fundamentos de Ciencias de la Computación Clase 16: Problema de Primer Cuatrimestre de 2005 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Un problema

Más detalles

Parte II. Cálculo Diferencial para Funciones de Varias Variables Reales

Parte II. Cálculo Diferencial para Funciones de Varias Variables Reales Parte II Cálculo Diferencial para Funciones de Varias Variables Reales Capítulo 5 Derivadas Direccionales y Derivadas Parciales Iniciamos, con este capítulo, el cálculo diferencial para funciones de varias

Más detalles

Tecnología de la Programación

Tecnología de la Programación Tecnología de la Programación Semántica Operacional David Cabrero Souto Facultad de Informática Universidade da Coruña Curso 2007/2008 Verificación formal Recordar descriptores BOE: Diseño de algoritmos

Más detalles

Inducción, Recursión y Alcance. Inducción, Recursión y alcance. Inducción, Recursión y Alcance. Inducción, Recursión y Alcance

Inducción, Recursión y Alcance. Inducción, Recursión y alcance. Inducción, Recursión y Alcance. Inducción, Recursión y Alcance Inducción, Recursión y alcance Especificación inductiva de tipos de datos Tipo de datos: Conjunto de valores Conjunto de operaciones sobre dichos valores ejemplo: Sea S el conjunto más pequeño tal que:

Más detalles

Tema 9: Resolución en lógica de primer orden

Tema 9: Resolución en lógica de primer orden de Tema 9: en lógica de no Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla Lógica Informática (Tecnologías Informáticas) Curso 2016 17 Contenido de no no Introducción Por

Más detalles

CAPÍTULO 4: DERIVADAS DE ORDEN SUPERIOR. En este capítulo D denota un subconjunto abierto de R n.

CAPÍTULO 4: DERIVADAS DE ORDEN SUPERIOR. En este capítulo D denota un subconjunto abierto de R n. April 15, 2009 En este capítulo D denota un subconjunto abierto de R n. 1. Introducción Definición 1.1. Dada una aplicación f : D R, definimos la derivada parcial segunda de f como D ij f = 2 f = ( ) x

Más detalles

Lógica de proposiciones (5)

Lógica de proposiciones (5) Lógica de proposiciones (5) Fundamentos de Informática I I..I. Sistemas (2005-06) César Llamas Bello Universidad de Valladolid 1 Lógica Índice Lógica proposicional ecuacional Lógica: semántica Semántica

Más detalles

Sintaxis LÓGICA COMPUTACIONAL CÁLCULO DE PROPOSICIONES. Funciones boolenas. Semántica

Sintaxis LÓGICA COMPUTACIONAL CÁLCULO DE PROPOSICIONES. Funciones boolenas. Semántica Proposiciones atómicas y compuestas Sintaxis LÓGICA COMPUTACIONAL CÁLCULO DE PROPOSICIONES Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@cienciasunammx Página

Más detalles

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.

Más detalles

Espacios vectoriales

Espacios vectoriales CAPíTULO 2 Espacios vectoriales 1. Definición de espacio vectorial Es frecuente representar ciertas magnitudes físicas (velocidad, fuerza,...) mediante segmentos orientados o vectores. Dados dos de tales

Más detalles

ÁLGEBRA LINEAL I NOTAS DE CLASE UNIDAD 2

ÁLGEBRA LINEAL I NOTAS DE CLASE UNIDAD 2 ÁLGEBRA LINEAL I NOTAS DE CLASE UNIDAD 2 Abstract Estas notas conciernen al álgebra de matrices y serán actualizadas conforme el material se cubre Las notas no son substituto de la clase pues solo contienen

Más detalles

Lógica Proposicional

Lógica Proposicional Proposicional Disciplina matemática Disciplina formal Se razona sobre la estructura de las cosas Se quiere estudiar el razonamiento, y no las verdades contingentes Se quiere estudiar la noción de consecuencia

Más detalles

CÁLCULO LAMBDA. Motivación: notación para no necesitar nombrar funciones. Por ejemplo, x + y puede ser: f(x) = x + y g(y) = x + y h(x, y) = x + y

CÁLCULO LAMBDA. Motivación: notación para no necesitar nombrar funciones. Por ejemplo, x + y puede ser: f(x) = x + y g(y) = x + y h(x, y) = x + y CÁLCULO LAMBDA Motivación: notación para no necesitar nombrar funciones. Por ejemplo, x + y puede ser: f(x) = x + y g(y) = x + y h(x, y) = x + y La notación lambda permite expresar sin dar nombre: λx.x

Más detalles

Claúsulas de Horn. Resolución SLD

Claúsulas de Horn. Resolución SLD Claúsulas de Horn. Resolución SLD 1 / 114 Refinando la resolución La resolución general es un mecanismo muy potente de demostración... pero tiene un alto grado de indeterminismo: en la selección de las

Más detalles

Alejandro Díaz-Caro. 16 de diciembre de 2007

Alejandro Díaz-Caro. 16 de diciembre de 2007 (de André van Tonder [vt04]) Departamento de Ciencias de la Computación Facultad de Ciencias Exactas, Ingeniería y Agrimensura Universidad Nacional de Rosario 16 de diciembre de 2007 Contenido de la presentación

Más detalles

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña Máquinas Secuenciales, Autómatas y Lenguajes Tema 4: Expresiones Regulares Luis Peña Sumario Tema 4: Expresiones Regulares. 1. Concepto de Expresión Regular 2. Teoremas de Equivalencia Curso 2012-2013

Más detalles

58 7. ESPACIOS COCIENTE

58 7. ESPACIOS COCIENTE CAPíULO 7 Espacios cociente En esta sección estudiamos el cociente de un espacio vectorial por un subespacio W. Este cociente se define como el conjunto cociente de por una relación de equivalencia conveniente.

Más detalles

Tema I 1. EL CUERPO DE LOS REALES, EL CUERPO DE LOS COMPLEJOS

Tema I 1. EL CUERPO DE LOS REALES, EL CUERPO DE LOS COMPLEJOS 1 Tema I 1. EL CUERPO DE LOS REALES, EL CUERPO DE LOS COMPLEJOS 1.1 Los Números Naturales. Los números naturales aparecen por la necesidad que tiene el hombre (primitivo) tanto de contar como de ordenar

Más detalles

Introducción a la programación. Cecilia Manzino

Introducción a la programación. Cecilia Manzino Paradigmas Un paradigma es un modelo o patrón en cualquier disciplina científica. Un paradigma de programación representa un estilo de programación en cual se escriben soluciones a problemas en términos

Más detalles

Teorema de incompletitud de Gödel

Teorema de incompletitud de Gödel Teorema de incompletitud de Gödel Theorem (Gödel) Th(N) es una teoría indecidible. IIC2213 Teorías 79 / 109 Teorema de incompletitud de Gödel Theorem (Gödel) Th(N) es una teoría indecidible. Corolario

Más detalles

Bases Formales de la Computación

Bases Formales de la Computación Bases Formales de la Computación Pontificia Universidad Javeriana 12 de septiembre de 2008 CÁLCULOS DE PROCESOS Contenido 1 2 Sistemas Concurrentes Múltiples agentes (procesos) que interactuan entre ellos.

Más detalles

Transformaciones lineales

Transformaciones lineales CAPíTULO 4 Transformaciones lineales En este capítulo estudiamos las primeras propiedades de las transformaciones lineales entre espacios vectoriales. 1. Construcciones de transformaciones lineales Lema

Más detalles

Los modelos abstractos de cómputo. Tema 1: Introducción. El modelo transductor. El modelo reconocedor. ordenador. datos. Modelo Abstracto de Cómputo

Los modelos abstractos de cómputo. Tema 1: Introducción. El modelo transductor. El modelo reconocedor. ordenador. datos. Modelo Abstracto de Cómputo Tema 1: Introducción Preliminares Los Modelos Abstractos de Cómputo El principio de inducción Palabras y Lenguajes Palabras Operadores sobre palabras Predicados sobre palabras Lenguajes Operadores sobre

Más detalles

Teorías. Una teoría acerca de una base de conocimiento Σ contendrá no sólo a Σ sino que a todo lo que se puede deducir de Σ.

Teorías. Una teoría acerca de una base de conocimiento Σ contendrá no sólo a Σ sino que a todo lo que se puede deducir de Σ. Teorías Qué es una teoría? Ya hemos usado antes la noción de base de conocimiento Este concepto se refiere a un conocimiento, representado a través de axiomas. Una teoría acerca de una base de conocimiento

Más detalles

Máquinas de Turing Definición y descripción

Máquinas de Turing Definición y descripción Capítulo 12 Máquinas de Turing 12.1. Definición y descripción Definición 1 Se llama máquina de Turing a toda séptupla M = (Γ,Σ,,Q,q 0,f,F), donde: Γ es el alfabeto de símbolos de la cinta. Σ Γ es el alfabeto

Más detalles

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R. Conjuntos Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por se entiende que a pertenece a R. a R Normalmente, podremos definir a un conjunto de dos maneras: Por

Más detalles

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

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

Más detalles

Estructuras Discretas. Conjuntos. Conjuntos & Funciones. Especificación de Conjuntos.

Estructuras Discretas. Conjuntos. Conjuntos & Funciones. Especificación de Conjuntos. Estructuras Discretas Conjuntos Conjuntos & Funciones Claudio Lobos clobos@inf.utfsm.cl niversidad Técnica Federico Santa María Estructuras Discretas INF 152 Definición: conjunto n conjunto es una colección

Más detalles

Sistemas de Reescritura Cristóbal Domínguez González Jorge García de la Nava Ruiz Michel Piliougine Rocha Miguel Ángel Rico Blanco

Sistemas de Reescritura Cristóbal Domínguez González Jorge García de la Nava Ruiz Michel Piliougine Rocha Miguel Ángel Rico Blanco Sistemas de Reescritura Cristóbal Domínguez González Jorge García de la Nava Ruiz Michel Piliougine Rocha Miguel Ángel Rico Blanco 13 de Marzo del 2001 PROGRAMACIÓN DECLARATIVA II Introducción Comenzamos

Más detalles

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto

Más detalles

1 El espacio afín ampliado.

1 El espacio afín ampliado. 1 El espacio afín ampliado. El objetivo de esta sección es describir algunas herramientas algebraicas que nos permitirán trabajar con los puntos del infinito de espacios y variedades afines. De esta forma

Más detalles

1. Problemas de inducción.

1. Problemas de inducción. Proyecto I: Más sobre números reales Objetivos: Profundizar el estudio de los números reales. 1. Problemas de inducción. Ejercicio 1.1 Sea n. Definiremos los coeficientes binomiales ( n ) mediante la expresión

Más detalles

Escuela Superior Politécnica del Litoral

Escuela Superior Politécnica del Litoral Escuela Superior Politécnica del Litoral Instituto de Ciencias Matemáticas Primera evaluación de Álgebra Lineal - Diciembre 1, 2011 Nombre y Appellido: Paralelo: Firma: Tema 1 (9 puntos) Dé la definición

Más detalles

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

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,jsimmond@inf.utfsm.cl Universidad Técnica Federico Santa María Estructuras Discretas INF 152 Sean

Más detalles

Matrices Inversas. Rango Matrices Elementales

Matrices Inversas. Rango Matrices Elementales Matrices Inversas. Rango Matrices Elementales Araceli Guzmán y Guillermo Garro Facultad de Ciencias UNAM Semestre 2018-1 doyouwantmektalwar.wordpress.com Matrices Matrices identidad La matriz identidad

Más detalles

Capítulo 2 El Método de Resolución

Capítulo 2 El Método de Resolución Capítulo 2 El Método de Resolución En este capítulo se realiza una descripción general del método de resolución, dado que el programa de razonamiento automático OTTER lo utiliza y prueba a través de refutación.

Más detalles

La lógica de segundo orden: Sintaxis

La lógica de segundo orden: Sintaxis La lógica de segundo orden: Sintaxis Dado: Vocabulario L Definición La lógica de segundo orden (LSO) sobre L es definida como la extensión de LPO que incluye las siguientes reglas: Si t 1,..., t k son

Más detalles

Lógica Proposicional. Del conjunto de hipótesis Γ se deduce α?

Lógica Proposicional. Del conjunto de hipótesis Γ se deduce α? Proposicional Metateoría: Corrección y Completitud Proposicional - 1 Del conjunto de hipótesis Γ se deduce α? Γ = α? -Tablas de verdad - Equivalencia lógicas Existen métodos que siempre responden SI o

Más detalles

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64 Lógica Proposicional IIC1253 IIC1253 Lógica Proposicional 1/64 Inicio de la Lógica Originalmente, la Lógica trataba con argumentos en el lenguaje natural. Ejemplo Es el siguiente argumento válido? Todos

Más detalles

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

14/02/2017. TEMA 3: EL CUERPO DE LOS NUMEROS REALES Esp. Prof. Liliana N. Caputo TEMA 3: EL CUERPO DE LOS NUMEROS REALES Esp. Prof. Liliana N. Caputo Así como al estudiar conjuntos hablamos de la existencia de términos primitivos (que no se definen), para definir algunos conjuntos,

Más detalles

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I Tema 3: Gramáticas regulares Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison

Más detalles

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

Cálculo Lambda - primera parte. Paradigmas de Lenguajes de Programación. Segundo cuatrimestre Cálculo Lambda - primera parte Paradigmas de Lenguajes de Programación Segundo cuatrimestre - 2010 Tipos y términos Las expresiones de tipos (o simplemente tipos) de C-λ b son σ ::= Bool σ τ Sea X un conjunto

Más detalles

Álgebra Lineal. Departamento de Matemáticas Universidad de Los Andes. Primer Semestre de 2007

Álgebra Lineal. Departamento de Matemáticas Universidad de Los Andes. Primer Semestre de 2007 Álgebra Lineal Departamento de Matemáticas Universidad de Los Andes Primer Semestre de 2007 Universidad de Los Andes () Álgebra Lineal Primer Semestre de 2007 1 / 50 Texto guía: Universidad de Los Andes

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Gramáticas Libres del Contexto y Lenguajes Libres del Contexto Gramáticas Formales Una gramática formal es una cuadrupla G = (N, T, P, S) N = conjunto finito de símbolos no

Más detalles

Lenguajes de Programación Programación funcional

Lenguajes de Programación Programación funcional Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una

Más detalles

Circuitos Electrónicos Digitales

Circuitos Electrónicos Digitales Circuitos Electrónicos Digitales Bloque 1: Circuitos Electrónicos y familias lógicas Tema 3: Familias lógicas Guión del tema Algebra de conmutación. Variables y operadores lógicos. Ejemplo de puertas lógicas.

Más detalles

Tema 1: Nociones básicas del Álgebra Lineal.

Tema 1: Nociones básicas del Álgebra Lineal. Nociones básicas del Álgebra Lineal 1 Tema 1: Nociones básicas del Álgebra Lineal 1 Conceptos fundamentales sobre espacios vectoriales y bases Definición Sea (K + ) un cuerpo y (V +) un grupo abeliano

Más detalles

Tema 4: (Tecnologías Informáticas) Curso Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla

Tema 4: (Tecnologías Informáticas) Curso Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla Tema 4: Proposicional Dpto. Ciencias de la Computación Inteligencia Artificial Universidad de Sevilla Lógica Informática (Tecnologías Informáticas) Curso 2015 16 Contenido Los tableros semánticos proporcionan

Más detalles

Operaciones extendidas de conjuntos

Operaciones extendidas de conjuntos 234 A. GENERALIDADES DE TEORÍA DE CONJUNTOS Tema 3. Operaciones extendidas de conjuntos En este tema extenderemos las operaciones de conjuntos anteriormente definidas a familias arbitrarias de conjuntos.

Más detalles

El lenguaje P. Lógica y Computabilidad ( ) símbolos p. Verano convenciones. Lógica Proposicional - clase 1

El lenguaje P. Lógica y Computabilidad ( ) símbolos p. Verano convenciones. Lógica Proposicional - clase 1 Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Lógica Proposicional - clase 1 Lenguaje de lógica proposicional, semántica, tautología, consecuencia semántica, conjunto satisfacible,

Más detalles

En varias ramas de las matemáticas y de las ciencias sociales, es común

En varias ramas de las matemáticas y de las ciencias sociales, es común Introducción En varias ramas de las matemáticas de las ciencias sociales, es común representar fenómenos mediante modelos que emplean funciones de variable vectorial. Es decir, funciones entre espacios

Más detalles

LENGUAJES Y COMPILADORES

LENGUAJES Y COMPILADORES LENGUAJES Y COMPILADORES Repaso. La clase pasada presentamos el lenguaje imperativo simple y dimos las ecuaciones para casi todas las construcciones del lenguaje. En efecto, teníamos que [ ] Σ

Más detalles

Lenguajes y Gramáticas

Lenguajes y Gramáticas Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas

Más detalles

LOGICA Y ALGORITMOS. Módulos

LOGICA Y ALGORITMOS. Módulos LOGICA Y ALGORITMOS Módulos!Cardinalidad y conjuntos inductivos "Lógica: proposicional y de 1er orden!formalismos de cálculo: FR y FL!Lenguajes y autómatas 1 Distintos Sistemas Lógicos: LOGICA PROPOSICIONAL

Más detalles

TEMA 8. GEOMETRÍA ANALÍTICA.

TEMA 8. GEOMETRÍA ANALÍTICA. TEMA 8. GEOMETRÍA ANALÍTICA. 8..- El plano. Definimos el plano euclideo como el conjunto de puntos ( x, y) R. Así, cada punto del plano posee dos coordenadas. Para representar puntos del plano utilizaremos

Más detalles

Práctica 1 Lambda Cálculo Tipado

Práctica 1 Lambda Cálculo Tipado Práctica 1 Lambda Cálculo Tipado Eduardo Bonelli TP para LP 2012C1 Ejercicio 1 Probar que el conjunto de las β-formas normales se pueden describir como sigue N ::= λx 1... λx n.y N 1... N m. Ejercicio

Más detalles

1. Corrección de un programa TEMA 2: ESPECIFICACIÓN Y CORRECCIÓN DE ALGORITMOS. 1. Corrección de un programa. 1. Corrección de un programa

1. Corrección de un programa TEMA 2: ESPECIFICACIÓN Y CORRECCIÓN DE ALGORITMOS. 1. Corrección de un programa. 1. Corrección de un programa Uno de los grandes problemas de la programación es la escritura de programas totalmente correctos. Al implementar un programa siempre se introducen errores. Técnicas de detección de errores: Mediante pruebas:

Más detalles

Expresiones Regulares

Expresiones Regulares Conjuntos Regulares y Una forma diferente de expresar un lenguaje Universidad de Cantabria Conjuntos Regulares y Esquema 1 Motivación 2 Conjuntos Regulares y 3 4 Conjuntos Regulares y Motivación El problema

Más detalles

Introducción. El uso de los símbolos en matemáticas.

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

Más detalles

1. Conjuntos y funciones

1. Conjuntos y funciones Centro de Matemática Facultad de Ciencias Universidad de la República Introducción a la Topología Curso 2016 PRACTICO 1: CONJUNTOS. 1 1. Conjuntos y funciones Ejercicio 1. Si I es un conjunto y A α es

Más detalles