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
|
|
- Lorenzo Romero Rubio
- hace 6 años
- Vistas:
Transcripción
1 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 llamado Cálculo-λ y la noción de función computable en su sistema. Los lenguajes imperativos como Pascal, C, etc., así como el lenguaje ensamblador están basados en la máquina de Turing. Los lenguajes funcionales como ML, Miranda, Haskell etc., están basados en el cálculo-λ. Objetivo: Introducir el cálculo-λ y mostrar como este sistema captura todas las funciones computables Sintaxis: donde: x pertenece a un conjunto de variables. M ::= x λx.m MM λx.m representa la función cuyo argumento es x y cuya especificación es M (se les conoce como abstracciones). M 1 M 2 representa la aplicación de M 1 a M 2 (se les conoce como aplicaciones) Términos que corresponde en Java a: λx.x
2 2 Cálculo-λ public int id(int x){return x;} o en C a: int id(int x){return x;} 1.3. Asociaciones LM N se asocia hacía la izquierda λx.λy.m se asocia hacia la derecha λx.λy.xyz una aplicación tiene precedencia sobre una abstracción. si M,N son las expresiones respectivamente entonces y no M λx.x ((LM)N) (λx.(λy.m)) λx.λy.((xy)z) MN = (λx.x)y λx.(xy) Ejemplos: Decidir si son términos bien formados y asociar. Expresiones λ: λx.λy.xyλz.z λx.λy.λz.xzyz λx.λy.λz.xz(yz) λx.λy.λz.x(zy)z N y Más reglas: Para simplificar la notación los siguientes términos se tomarán como equivalentes: Considerando los ejemplos anteriores: λx.λy.xyλz.z λxy.xyλz.z λx.λy.λz.xzyz λxyz.xzyz λx.λy.λz.xz(yz) λxyz.xz(yz) λx.λy.λz.x(zy)z λxyz.x(zy)z λx 1.(λx 2.(...(λx n.m)...)) λx 1 x 2...x n.m
3 1.4 Variables Variables Conjunto de variables libres El conjunto de variables libres se define de manera inductiva como: FV (x) = {x} FV (λx.m) = FV (M) {x} FV (M 1 M 2 ) = FV (M 1 ) FV (M 2 ) Conjunto de variables acotadas El conjunto de variables acotadas se define de manera inductiva como: BV (x) = BV (λx.m) = BV (M) {x} BV (M 1 M 2 ) = BV (M 1 ) BV (M 2 ) 1.5. Término cerrado Un término M se llama cerrado si FV (M) =. En caso contrario el término se conoce como abierto. Note que los conjuntos de variables acotadas y libres no son necesariamente disjuntas; por ejemplo x(λxy.x) Considera el término: λxy.xyz Donde x y y son variables acotadas y z es una variable libre. El término λxy.xxy es cerrado. Subtérminos: Subtérminos de un término Un subtérmino de un término-λ es alguna parte del término que esta bien formada de acuerdo a la gramática. El conjunto de subtérminos se puede definir de la siguiente manera Sub :: T PT Sub(x) = {x} Sub(λx.M) = Sub(M) {(λx.m)} Sub(M 1 M 2 ) = Sub(M 1 ) Sub(M 2 ) {M 1 M 2 } Ejemplos: Calcular el conjunto de variables libres, acotadas y subtérminos de las siguientes expresiones λ λx.λy.xyλz.z
4 4 Cálculo-λ λx.λy.λz.xzyz λx.λy.λz.xz(yz) λx.λy.λz.x(zy)z 1.6. Conversión En esta sección introducimos el cáculo-λ de manera formal Definición El conjunto de términos-λ (notación Λ) se construye a partir de un conjunto infinito de variables V = x 1,x 2,x 3,... usando aplicación y abstracción. Ejemplos: Los siguientes son términos-λ x V x Λ M,N Λ (MN) Λ M Λ,x V (λx.m) Λ y (yx) 1.7. Sustitución Asumiendo que M y N son términos-λ y x una variable, la expresión se lee: M[x := N] sustituir las ocurrencias libres de la variable x por N en M. En algunos libros también se representa mediante {N/x}M. Definición inductiva de M[x := N]: 1. x[x := N] N; 2. y[x := N] y siempre que y x; 3. (PQ)[x := N] (P[x := N])(Q[x := N]);
5 1.8 Cambio de Variable: Axioma α 5 4. (λy.p)[x := N] λy.(p[x := N]), siempre que y x y y FV (N); 5. (λx.p)[x := N] (λx.p). Ejemplos λy.yz[z := λx.wx] λy.yz[z := λx.yx] 1.8. Cambio de Variable: Axioma α Definición Cambio de variables acotadas: M se genera a partir de M por un cambio de las variables acotadas si M λx.n y M λy.(n[x := y]) donde y no ocurre para nada en N. Axioma α M es α-equivalente a N, se escribe como M α N, si N es el resultado de aplicar a M una serie de cambios de variables acotadas. Es decir: λx.m = λy.m[x := y], siempre que y no ocurra en M. Ejemplo: Cuales expresiones son α-equivalentes?: λx.xy? α λz.zy λx.xy? α λy.yy Regla para la sustitución: (λxyz.x(λy.yz)w)? α (λtuv.t(λz.zv))w Si se desea sustituir M[x := N] no importando que términos denotan M y N, verifique que todas las variables acotadas de M sean diferentes de las variables libres de N. Si lo anterior no se cumple, aplique un cambio de variable en N o bien sustituya a M por un término α-equivalente, hasta que se cumpla el criterio anterior. Posteriormente se pueden aplicar las reglas de sustitución. Ejemplos: λy.yz[z := λx.yx] (λxyz.xzy)[x := λxz.x] (λxyz.xzy)(λxz.x) = (λyz.(λxw.x)zy) = (λyz.(λw.z)y) = (λyz.z)
6 6 Cálculo-λ 1.9. Teoría ecuacional del cálculo-λ (λx.m)n = M[x := N] regla β Relaciones de equivalencia: Reflexiva M = M Simétrica Transitiva: Otras reglas: M = N N = M M = N N = L M = L M = N MZ = NZ M = N ZM = ZN M = N λx.m = λx.n regla ξ Semántica operacional La evaluaci de una expresió se compone de pasos de reducción donde cada uno de los pasos se obtiene por reescritura: e e Partimos de un estado inicial (e) y mediante un proceso de reescritura (reducción) se obtiene un estado final. Cada reducción de e, reemplaza cierta subexpresión de acuerdo con ciertas reglas; tales subexpresiones se llaman redex (reducible expression). Se considera terminada la reducción cuando ya no hay más redex.
7 1.11 reducciones-λ reducciones-λ Las reglas de reescritura que se utilizan para reescribir un redex son: α-reduccíon β-reduccíon η-reduccíon La η-reducción (también llamada extensionalidad) expresa la idea de que dos funciones son lo mismo si dan el mismo resultado para todos sus argumentos λx.mx η M El λ-término λx.m x es un η-redex, es decir, se puede reducir mediante una η-reducción. También se dice que M se expande o se extiende a λx.mx. Ejemplos: λxy. + yx η λy. + y η + λx.(λy.y)x η λy.y Forma normal Si M = N es demostrable en el cálculo-λ, entonces se denota como λ M = N o sólo como M = N y se dice que M y N son β-reemplazables. M N denota que M y N son el mismo término o que uno se puede obtener a partir del otro a través de renombrar variables acotadas. Ejemplo: (λx.y)z (λx.y)z (λx.x)z (λy.y)z (λx.x)z (λx.y)z Definición: Forma Normal Si M es un término-λ, entonces M está en forma normal si, M no tiene subtérminos de la forma (λx.r)s Si M es un término-λ, entonces M tiene una forma normal si, existe un N tal que N = M y N esta en forma normal. Un λ-término está en forma normal si no contiene ningún redex. Si un λ-término M se reduce a una λ-término N en forma normal, es decir, M N. decimos que N es una forma normal de M. Ejemplo:
8 8 Cálculo-λ λx.x esta en forma normal. (λxy.x)(λx.x) no esta en forma normal, cuál es su forma normal?. (λx.xx)(λy.yy) no tiene una forma normal! Porqué? Teorema (de Church-Rosser) Para todo λ-término M, si M P y M Q, existe un λ-término E, tal que P E y Q E (propiedad del diamante). Si una secuencia M... termina, entonces lo hace en una forma normal. Es decir, M admite forma normal Combinadores estandar Define los combinadores: I λx.x, K λxy.y, K λxy.x, S λxyz.xz(yz), demostrar si las siguientes ecuaciones son válidas en el cálculo lambda: IM = M, KMN = M, K MN = N, SMNL = ML(NL), En el cálculo-λ se pueden representar expresiones booleanas T K λxy.x F K λxy.y if B then P else Q BPQ. T representa true, verdadero y F representa false, falso. Demuestre que if true then P else Q = P if false then P else Q = Q
9 1.14 Operaciones aritmeticas 9 Operadores lógicos not λt.tft and λxy.xyf or λxy.xty Imp λxy.xyt Demuestre: Las tablas de valores de verdad de cada conectivo Proponga el termino-λ para bicondicional y verifique su tabla de valores de verdad Ejercicios en clase En el cálculo-λ se pueden representar pares (a,b) = λx.if x then a else b fst λp.p true snd λp.p false. Demuestre que fst(a,b) = a snd(a,b) = b Operaciones aritmeticas En el cálculo-λ también se pueden representar numerales (de hecho existe más de una forma aquí se presenta la propuesta de Scott): 0 λxy.x 1 λxy.y 0 2 λxy.y 1 i.e n λxy.y(n 1) También se pueden representar funciones entre numerales succ λzxy.yz
10 10 Cálculo-λ pred λz.z 0(λx.x) iszero λz.z true(λx.false) Demostrar que: succ 2 = 3 pred 1 = 0 iszero 1 = F Numerales de Church 0 c 0 λs.λz.z; 1 c 1 λs.λz.sz; 2 c 2 λs.λz.s(sz); 3 c 3 λs.λz.s(s(sz)); etc. Cada número es representado por un combinador c n que toma dos argumentos, s y z (para sucesor y cero), y aplica s, n veces, a z. Sucesor Definiciones: Se define la función sucesor sobre los numerales de Church como sigue: scc λn.λs.λz.s(nsz) El término scc es un combinador que toma un numeral de Church n y regresa otro numeral de Church - es decir, nos da una función que toma argumentos s y z y aplica s repetidamente a z. Obtenemos el numero a la derecha de aplicaciones de s a z por primero pasar s y z como argumentos a n, y entonces explicitamente aplicamos s una vez más al resultado. La función sucesor aplicada a nuestra representación para cero da: scc λw.λy.λx.y(wyx) scc0 (λw.λy.λx.y(wyx))(λs.λz.z) = λy.λx.y((λs.λz.z)yx) = λy.λx.y((λz.z)x) = λy.λx.y(x) 1 Ejercicio: scc1 = 2 Observa que el proposito de aplicar el número λs.λz.s(z) a los argumentos y y x es sólo para renombrar las variables usadas en la definición del numero.
11 1.14 Operaciones aritmeticas 11 Suma Utilizando la definición anterior de scc, definimos la suma de = 5: 2scc3 = scc(scc3) = scc4 = 5 Similarmente, la suma de numerales de Church pude ejecutarse por un termino plus que toma dos numerales Church, m y n, como argumentos, y da otro numeral Church (función) que acepta argumentos s y z, aplica s iterando n veces a z (pasando s y z como argumentos a n), y entonces aplica s iterando m veces mas al resultado: Producto plus λm.λn.λs.λz.ms(nsz) La multiplicación de dos numeros x y y puede computarse usando la siguiente función: Ejemplo: El producto de 2 por 2 es: (λxyz.x(yz))22 = λz,2(2z) =... = 4 Otra forma de representar el producto es: prod λxyz.x(yz) times λm.λn.m(plus n)c 0 Ejercicio: Obtenga el resultado de times 2 1 = 2 Potencia excepto para m = 0 Ejercicio: exp 2 1 = 2 Demostrar que: exp λxy.yx succ 2 = 3 plus 1 0 = 1 times 1 2 = 2
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 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 detallesIntroducción al lambda cálculo
Introducción al lambda cálculo Del libro: An Introduction to Lambda Calculi for Computer Scientists, Chris Hankin Diciembre 2007 Algoritmos Qué es un algoritmo? distintos modelos de cómputo: Algoritmos
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 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 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 detallesFacultad de Ciencias de la Computación. Cálculo Lambda Reducción β Transformación:Gelfond-Lifchitz. Dr. Fernando Zacarías Flores
Facultad de Ciencias de la Computación Cálculo Lambda Reducción β Transformación:Gelfond-Lifchitz Dr. Fernando Zacarías Flores Primavera 2014 Cálculo-λ Antonio Almazán Faura Lidia Quintana Pancorbo Índice
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 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 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 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 detallesGuía 4: Demostraciones en Cálculo Proposicional
Introducción a los Algoritmos - 2do. cuatrimestre 2014 Guía 4: Demostraciones en Cálculo Proposicional Docentes: Walter Alini y Luciana Benotti. El objetivo principal de esta guía es lograr un buen entrenamiento
Más detallesLambda Cálculo Tipado (1/3)
Lambda Cálculo Tipado (1/3) Eduardo Bonelli Departamento de Computación FCEyN UBA There may, indeed, be other applications of the system other than its use as a logic Alonzo Church, 1932 3 de abril, 2007
Más detallesLAMBDA-CÁLCULO NO TIPADO
SISTEMAS NO TIPADOS LAMBDA-CÁLCULO NO TIPADO Convenciones: 1. La aplicación es asociativa por la izquierda 2. Los cuerpos de las abstracciones son asociativas por la derecha Estrategias de evaluación en
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 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 detallesNociones Básicas de Sémantica: Semántica Denotacional
Nociones Básicas de Sémantica: Semántica Denotacional Análisis de Lenguajes de Programación Mauro Jaskelioff 21/08/2015 Acerca de la Semántica Operacional En la semántica operacional el significado de
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 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 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 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 detallesCiencias de la Computación I
Ciencias de la Computación I Gramáticas Regulares Expresiones Regulares Gramáticas - Intuitivamente una gramática es un conjunto de reglas para formar correctamente las frases de un lenguaje - Por ejemplo,
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 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 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 detallesPráctico 6 Lógica de Predicados
Práctico 6 Lógica de Predicados Ejercicio 1 Considere un conjunto A de números reales que incluya al 0. Considere un lenguaje de primer orden con un símbolo de relación binario M que denota la relación
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 detallesGuía 4: Demostraciones en Cálculo Proposicional
Introducción a los Algoritmos - 1er. cuatrimestre 2015 Guía 4: Demostraciones en Cálculo Proposicional Cálculo Proposicional Tomando ideas de E. W. Dijkstra (EWD-999), proponemos el uso de lo que llamamos
Más detallesCIENCIAS FORMALES CIENCIAS FÁCTICAS
UNA CLASIFICACIÓN DE LAS CIENCIAS CIENCIAS FORMALES CIENCIAS FÁCTICAS CIENCIAS FORMALES MATEMÁTICA LÓGICA CIENCIAS FÁCTICAS FÍSICA BIOLOGÍA QUÍMICA CIENCIAS SOCIALES OTRAS CIENCIAS FORMALES VOCABULARIO
Más detallesAplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca
Aplicación de la Inducción Matemática Programación Funcional Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca Motivación Programación Imperativa Declarativa Procedimental Ejemplo:
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 detallesIntroducción a Haskell. Cecilia Manzino
Paradigmas de programación Un paradigma de programación representa un estilo particular o filosofía para la construcción del software. Los más comunes dan lugar a los siguientes tipos de programación:
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 detallesComponentes Básicos. InCo. InCo Componentes Básicos 1 / 28
Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes
Más detallesESPECIFICACIÓN DE SÍMBOLOS
1 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE COMPUTACIÓN ESPECIFICACIÓN DE SÍMBOLOS Elaborado el Sábado 24 de Julio de 2004 I.- COMPONENTES LÉXICOS, PATRONES Y LEXEMAS (extraído de
Más detallesAlgoritmos en teoría de números
Algoritmos en teoría de números IIC2283 IIC2283 Algoritmos en teoría de números 1 / 92 Para recordar: aritmética modular Dados dos números a, b Z, si b > 0 entonces existen α, β Z tales que 0 β < b y a
Más detallesTeoría de Autómatas y Lenguajes Formales.
Teoría de Autómatas y Lenguajes Formales Prueba de Evaluación de Lenguajes Regulares, Autómatas a Pila y Máquinas de Turing. Autores: Araceli Sanchis de Miguel Agapito Ledezma Espino Jose A. Iglesias Martínez
Más detallesTema II: Introducción al Lenguaje Funcional
Tema II: Introducción al Lenguaje Funcional Características de Haskell Lenguaje funcional de o. superior fuertemente tipificado. Clasifica los entes de un programa en: objetos (constantes y funciones)
Más detallesIntroducción a la Lógica
Tema 0 Introducción a la Lógica En cualquier disciplina científica se necesita distinguir entre argumentos válidos y no válidos. Para ello, se utilizan, a menudo sin saberlo, las reglas de la lógica. Aquí
Más detallesIsabelle como un lenguaje funcional
Capítulo 1 Isabelle como un lenguaje funcional 1.1 Introducción Nota 1.1.1. Esta notas son una introducción a la demostración asistida utilizando el sistema Isabelle/HOL/Isar. La versión de Isabelle utilizada
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 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 detallesConjuntos, relaciones de equivalencia y aplicaciones
CAPíTULO 1 Conjuntos, relaciones de equivalencia y aplicaciones 1. Conjuntos La idea de conjunto es una de las más significativas en Matemáticas. La mayor parte de los conceptos matemáticos están construidos
Más detallesÁlgebra Lineal y Estructuras Matemáticas. J. C. Rosales y P. A. García Sánchez. Departamento de Álgebra, Universidad de Granada
Álgebra Lineal y Estructuras Matemáticas J. C. Rosales y P. A. García Sánchez Departamento de Álgebra, Universidad de Granada Capítulo 1 Conjuntos, relaciones y aplicaciones 1. Conjuntos La idea de conjunto
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 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 detalles12 OTRO MUNDO ES POSIBLE: AL
12 OTRO MUNDO ES POSIBLE: AL En este capítulo presentaremos AL [12], un lenguaje tipificado para expresar algoritmos Este lenguaje tiene como objetivo expresar de manera precisa problemas computacionales,
Más detallesConjuntos, Aplicaciones y Relaciones
Conjuntos, Aplicaciones y Relaciones Curso 2017-2018 1. Conjuntos Un conjunto será una colección de objetos; a cada uno de estos objetos lo llamaremos elemento del conjunto. Si x es un elemento del conjunto
Más detallesLógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42
Lógica Proposicional IIC2213 IIC2213 Lógica Proposicional 1/42 Por qué necesitamos la lógica? Necesitamos un lenguaje con una sintaxis precisa y una semántica bien definida. Queremos usar este lenguaje
Más detallesIntroducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica
Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN 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 detallesGuía N 1 Introducción a las Matemáticas
Glosario: Guía N 1 Introducción a las Matemáticas - Aritmética: Es la rama de las matemáticas que se dedica al estudio de los números y sus propiedades bajo las operaciones de suma, resta, multiplicación
Más detallesLógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42
Lógica Proposicional IIC2213 IIC2213 Lógica Proposicional 1/42 Por qué necesitamos la lógica? Necesitamos un lenguaje con una sintaxis precisa y una semántica bien definida. Queremos usar este lenguaje
Más detallesDETERMINACIÓN DE UN CONJUNTO
CONJUNTO UNIVERSAL U A Gráficamente, al conjunto universal se lo representa mediante un rectángulo. Cualquier otro conjunto A es representado por una región cerrada, dentro del rectángulo, A este tipo
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 detallesDemostraciones. Demostraciones básicas. José de Jesús Angel Angel
Demostraciones Demostraciones básicas www.math.com.mx José de Jesús Angel Angel jjaa@math.com.mx MathCon c 2007-2017 Contenido 0.1. Demostraciones..................................... 2 0.1.1. Negación
Más detallesMultiplicación de matrices simétricas
Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =
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 detallesIntroducción. Tema 1. Fundamentos de informática. Universidad de Oviedo. Fundamentos de Informática. Departamento de Informática Universidad de Oviedo
Tema 1 Introducción. Fundamentos de informática Departamento de Informática Universidad de Oviedo 1-1 1.1 Visión general de la informática 1.2 Estructura y funcionamiento de un ordenador 1.3 Representación
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 4: Definición de funciones
Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Constantes como patrones Variables como
Más detallesOtras formas gramaticales de una disyunción serán: Otras formas gramaticales de la conjunción serán: p así mismo q
Otras formas gramaticales de una disyunción serán: p a menos que q p excepto q p o en tal sentido q p salvo que q p o de lo contrario q p y/o q Otras formas gramaticales de la conjunción serán: p y q p
Más detallesTema 4: Definición de funciones
Tema 4: Definición de funciones Informática (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 30 Tema 4: Definición
Más detallesIntroducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica
Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN 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 detallesUna manera de describir un conjunto es por extensión y consiste en enumerar sus elementos entre llaves
CONJUNTOS: DEFINICIÓN Y CARDINAL DE UN CONJUNTO : Un conjunto es una colección bien definida de objetos en la que el orden es irrelevante. Dichos objetos pueden ser reales o conceptuales y se llaman elementos
Más detallesInformática Haskell Matemáticas Curso Pepe Gallardo Universidad de Málaga. Temario
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Temario 1 Introducción y semántica operacional 2 Tipos predefinidos 3 Patrones y Definiciones de Funciones 4 Funciones
Más detallesTema 6: Teoría Semántica
Tema 6: Teoría Semántica Sintáxis Lenguaje de de las las proposiciones Lenguaje de de los los predicados Semántica Valores Valores de de verdad verdad Tablas Tablas de de verdad verdad Tautologías Satisfacibilidad
Más detallesEl lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Más detallesCiencias de la Computación I
Ciencias de la Computación I Nociones básicas de Computabilidad Problemas y Lenguajes Un problema se describe con un lenguaje Cuanto más formal el lenguaje, más precisa la formulación del problema Los
Más detallesLógica Proposicional. Significado de una Fórmula Proposicional
Proposicional Semántica Semántica Proposicional - Significado de una Fórmula Proposicional El significado de una proposición está dado por su valor de verdad (o sea, si es Verdadera o Falsa) que se obtiene
Más detallesLenguaje de programación S (Davis/Sigal/Weyuker) Lógica y Computabilidad. Ejemplo 1. Ejemplo 2
Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 4 Lenguaje S, estado, descripción instantánea, cómputo, funciones parciales computables, minimización
Más detallesTipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Más detallesEjemplo 8 Los niños nacidos en un país del continente americano.
UNIDAD 1: CONJUNTOS La teoría de conjuntos juega un papel muy importante en campos de la matemática como el cálculo, el análisis, el álgebra y la probabilidad. Gracias a los conjuntos se pueden construir
Más detallesArquitectura de Computadoras Algebra de Boole Basadas en las Notas de Teórico Versión 1.0 del Dpto. de Arquitectura-InCo-FIng
Basadas en las Versión.0 del Dpto. de Arquitectura-InCo-FIng ALGEBRA DE BOOLE Introducción. El álgebra de Boole es una herramienta de fundamental importancia en el mundo de la computación. Las propiedades
Más detallesLógica Proposicional
Proposicional Semántica Semántica Proposicional - Significado de una Fórmula Proposicional El significado de una proposición está dado por su valor de verdad (o sea, si es Verdadera o Falsa) que se obtiene
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 detallesFunciones Segunda parte
Expresiones condicionales Matemática Discreta usando el computador 2011 Funciones Segunda parte Una expresión condicional utiliza una expresión de tipo Bool para decidir entre dos opciones Estructura if...then...
Más detallesAnálisis semántico: Comprobación de tipos
Análisis semántico: Comprobación de tipos Expresiones de tipos, sistemas de comprobación de tipos, equivalencia, resolución de sobrecargas y unificación. Introducción Objetivo de comprobación estática:
Más detallesGRAMÁTICAS LIBRES DE CONTEXTO
GRAMÁTICAS LIBRES DE CONTEXTO Definición Una gramática libre de contexto (GLC) es una descripción estructural precisa de un lenguaje. Formalmente es una tupla G=, donde Vn es el conjunto
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 detallesTema 5. Series de Potencias
Tema 5. Series de Potencias Prof. William La Cruz Bastidas 21 de noviembre de 2002 Tema 5 Series de Potencias Definición 5.1 La sucesión de números complejos {z n } tiene un límite o converge a un número
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 detallesCapítulo 1: Fundamentos: Lógica y Demostraciones Clase 2: Lógica de Predicados y Métodos de Demostración
Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 2: Lógica de Predicados y Métodos de Demostración Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 1: Fundamentos:
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 detallesLógica Clásica de Predicados
Lógica Clásica de Predicados Lógica Computacional Departamento de Matemática Aplicada Universidad de Málaga 10 de enero de 2008 Contenido 1 Sintaxis 2 Variables y Sustituciones 3 Significado y verdad 4
Más detallesEjercicios de Lógica Proposicional *
Ejercicios de Lógica Proposicional * FernandoRVelazquezQ@gmail.com Notación. El lenguaje proposicional que hemos definido, aquel que utiliza los cinco conectivos,,, y, se denota como L {,,,, }. Los términos
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 detallesMatemáticas Discretas
Matemáticas Discretas Lógica Luis Dominguez Septiembre 2012 1 / 34 Luis Dominguez Matemáticas Discretas Abstract La lógica en ciencias computacionales proporciona herramientas para deliberar si un problema
Más detallesÁlgebra Booleana. Suma Booleana. El término suma es 1 si al menos uno de sus literales son 1. El término suma es 0 solamente si cada literal es 0.
Álgebra Booleana El álgebra de Boole son las matemáticas de los sistemas digitales. En el nivel de lógica digital de una computadora, lo que comúnmente se llama hardware y que está formado por los componentes
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 detalles3.3. TEORÍA BÁSICA DE CONJUNTOS Utilizar tablas de verdad para comprobar la equivalencia lógica p q p q.
3.3. TEORÍA BÁSICA DE CONJUNTOS 83 a) p q b) p q c) q p 7. Sabiendo que la proposición compuesta ( q) (q p) es falsa, indicar cuál es el valor de verdad de las proposiciones p y q. 8. Utilizar tablas de
Más detallesTema 1: Fundamentos.
Tema 1: Fundamentos. 1. Nociones básicas de la Teoría de Conjuntos. Definición. Un conjunto es una colección de objetos. A los objetos de un conjunto se les llama elementos del conjunto. Se denominará
Más detallesClase Práctica 1 - Inducción estructural, conectivos adecuados y consecuencia - Viernes 23 de marzo de 2012
Lógica y Computabilidad Primer Cuatrimestre 2012 Clase Práctica 1 - Inducción estructural, conectivos adecuados y consecuencia - Viernes 23 de marzo de 2012 Definición 1. Notaremos con Form al conjunto
Más detallesCapítulo 4. Lógica matemática. Continuar
Capítulo 4. Lógica matemática Continuar Introducción La lógica estudia la forma del razonamiento, es una disciplina que por medio de reglas y técnicas determina si un teorema es falso o verdadero, además
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 detallesListas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015
Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer]
Más detallesExamen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Examen IIC 2222 Teoría de Autómatas y Lenguajes Formales Segundo Semestre, 2003 Este examen tiene
Más detalles