Introducción al lambda cálculo
|
|
- María Luz Rodríguez Macías
- hace 5 años
- Vistas:
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
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 detallesIntroducció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 detallesLambda-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 detallesLenguajes 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 detallesContenido 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 detallesAlgoritmos 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 detallesIntroducció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 detallesLÓ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 detallesLó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 detallesHacia 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 detallesPARADIGMAS 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 detallesCapí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 detallesEl λ 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 detallesLÓ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 detallesCompletitud 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 detallesDefiniciones 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 detallesLos 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 detallesCá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 detallesClase 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 detallesCOMPACIDAD 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 detallesTemas. 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 detallesLambda 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 detallesTema 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 detallesLó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 detallesResumen 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 detallesIntroducció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 detallesTema 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 detallesAná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 detallesLó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 detallesSistemas 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 detallesUn á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 detallesSintaxis 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 detallesCAPÍ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 detallesTEMA 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 detallesMá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 detallesTransformaciones 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 detallesDefiniciones 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 detallesFundamentos 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 detallesParte 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 detallesTecnologí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 detallesInducció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 detallesTema 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 detallesCAPÍ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 detallesLó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 detallesSintaxis 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 detallesTema 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 detallesEspacios 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 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 detallesLó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 detallesCÁ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 detallesClaú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 detallesAlejandro 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 detallesMá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 detalles58 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 detallesTema 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 detallesIntroducció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 detallesTeorema 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 detallesBases 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 detallesTransformaciones 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 detallesLos 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 detallesTeorí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 detallesMá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 detallesConjuntos. 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 detalles5 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 detallesEstructuras 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 detallesSistemas 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 detallesFundamentos 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 detalles1 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 detalles1. 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 detallesEscuela 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 detallesRelaciones. 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 detallesMatrices 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 detallesCapí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 detallesLa 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 detallesLó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 detallesLó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 detalles14/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 detallesTema 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 detallesCá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 Universidad de Los Andes () Álgebra Lineal Primer Semestre de 2007 1 / 50 Texto guía: Universidad de Los Andes
Más detallesCiencias 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 detallesLenguajes 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 detallesCircuitos 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 detallesTema 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 detallesTema 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 detallesOperaciones 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 detallesEl 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 detallesEn 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 detallesLENGUAJES 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 detallesLenguajes 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 detallesLOGICA 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 detallesTEMA 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 detallesPrá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 detalles1. 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 detallesExpresiones 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 detallesIntroducció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 detalles1. 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