Lambda Cálculo Tipado (1/3)
|
|
- Carlos Ruiz Saavedra
- hace 7 años
- Vistas:
Transcripción
1 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, de abril, 2007
2 Qué es el Lambda Cálculo? Modelo de computación basado en funciones da origen a la programación funcional Introducido por Alonzo Church en 1934 Computacionalmente completo (i.e. Turing completo) También considerado como modelo fiable de lenguajes de programación en general The next 700 programming languages, Peter Landin, 1966 Lema: Usar lambda cálculo para probar nuevos conceptos de programación
3 Por qué Lambda Cálculo? En un lenguaje industrial-strength es difícil determinar con precisión/rigurosidad propiedades básicas sobre semántica y sistema de tipos efecto de extender el lenguaje con nuevas construcciones la relación con otros lenguajes o paradigmas Es conveniente restringir el lenguaje a un subconjunto que sea representativo (del paradigma o área de problemas) conciso reducido en cuanto a primitivas riguroso en su formulación
4 Qué vamos a estudiar sobre Lambda Cálculo? La formulación original es sin tipos Dado nuestro interés en lenguajes de programación, vamos a estudiar el Lambda Cálculo Tipado (A. Church, 1941) En el marco del Lambda Cálculo Tipado vamos a presentar 1. Tipos, términos, tipado, evaluación (Clase 1/3 y 2/3) 2. Inferencia de tipos (Clase 3/3) Comenzaremos con Lambda Cálculo Tipado con expresiones booleanas y luego iremos enriqueciendo el lenguaje con otras construcciones
5 Expresiones de tipos Las expresiones de tipos (o simplemente tipos) de LC b son σ ::= Bool σ τ Descripción informal: Bool es el tipo de los booleanos, σ τ es el tipo de las funciones de tipo σ en tipo τ
6 Términos de LC b Sea X un conjunto infinito enumerable de variables y x X. Los términos de LC b están dados por M ::= x true false if M then P else Q λx : σ.m M N
7 Términos de LC b Descripción informal: x es una variable de términos, true y false son las constantes de verdad, if M then P else Q es el condicional, λx : σ.m es una función que cuyo parámetro formal es x y cuyo cuerpo es M y M N es la aplicación de la función denotada por el término M al argumento N.
8 Ejemplos λx : Bool.x λx : Bool.if x then false else true λf : σ τ.λx : σ.f x (λf : Bool Bool.f true)(λy : Bool.y) x y
9 Variables libres Una variable puede ocurrir libre o ligada en un término. Decimos que x ocurre libre si no se encuentra bajo el alcance de una ocurrencia de λx. Caso contrario ocurre ligada. λx : Bool.if }{{} x ligada λx : Bool.λy : Bool.if true then λx : Bool.if (λx : Bool.if x }{{} ligada x }{{} ligada then true else false x }{{} ligada then true else y }{{} libre then true else false) else x }{{} libre y }{{} ligada
10 Variables libres: Definición formal FV (x) FV (true) = FV (false) FV (if M then P else Q) FV (M N) FV (λx : σ.m) def = {x} def = def = FV (M) FV (P) FV (Q) def = FV (M) FV (N) def = FV (M) \ {x}
11 Sustitución M{x N} Sustituir todas las ocurrencias libres de x en el término M por el término N Operación importante que se usa para darle semántica a la aplicación de funciones (entre otras) Es sencilla de definir pero requiere cuidado en el tratamiento de los ligadores de variables (i.e. con λx )
12 Sustitución x{x N} a{x N} (if M then P else Q){x N} (M 1 M 2 ){x N} (λy : σ.m){x N} def = N def = a si a {true, false} def = if M{x N} then P{x N} else Q{x N} def = M 1 {x N} M 2 {x N} def =?
13 Captura de variables Sustituir el término z por la variable x (λz : σ.x){x z} = λz : σ.z Hemos convertido a la función constante λz : σ.x en la función identidad! El problema: λz : σ capturó la ocurrencia libre de z Hipótesis: los nombres de las variables ligadas no son relevantes la ecuación de arriba debería ser comparable con (λw : σ.x){x z} = λw : σ.z Conclusión: Para definir (λy : σ.m){x N} asumiremos que la variable ligada y se renombró de tal manera que no ocurre libre en M
14 α-equivalencia α-equivalencia Dos términos M y N que difieren solamente en el nombre de sus variables ligadas se dicen α-equivalentes α-equivalencia es una relación de equivalencia De aquí en más identificaremos términos α-equivalentes. λx : Bool.x = α λy : Bool.y λx : Bool.y = α λz : Bool.y λx : Bool.y α λx : Bool.z λx : Bool.λx : Bool.x α λy : Bool.λx : Bool.y
15 Sustitución - Revisada x{x N} a{x N} (if M then P else Q){x N} (M 1 M 2 ){x N} (λy : σ.m){x N} def = N def = a si a {true, false} def = if M{x N} then P{x N} else Q{x N} def = M 1 {x N} M 2 {x N} def = λy : σ.m{x N} x y, y / FV (N) 1. NB: la condición x y, y / FV (N) siempre puede cumplirse renombrando apropiadamente 2. Técnicamente, la sust. está definida sobre clases de α-equivalencia de términos
16 Sistema de tipado Sistema formal de deducción (o derivación) que utiliza axiomas y reglas de tipado para caracterizar un subconjunto de los términos llamados tipados. Los axiomas de tipado establecen que ciertos juicios de tipado son derivables. Las reglas de tipado establecen que ciertos juicios de tipado son derivables siempre y cuando ciertos otros lo sean. Motivar juicios de tipado: Qué tipo le asignaría a true? Y a if x then true else false?
17 Sistema de tipado Un contexto de tipado es un conjunto de pares x i : σ i, anotado {x 1 : σ 1,..., x n : σ n } donde los {x i } i 1..n son distintos. Usamos letras Γ,,... para contextos de tipado. Un juicio de tipado es una expresión de la forma Γ M : σ que se lee: el término M tiene tipo σ asumiendo el contexto de tipado Γ
18 Sistema de tipado El significado de Γ M : σ se establece a través de la introducción de axiomas y reglas de tipado. Si Γ M : σ puede derivarse usando los axiomas y reglas de tipado decimos que es derivable. A continuación presentaremos los axiomas y reglas de tipado de LC b
19 Axiomas de tipado x : σ Γ (T-Var) Γ x : σ (T-True) Γ true : Bool (T-False) Γ false : Bool
20 Reglas de tipado Γ M : Bool Γ P : σ Γ Q : σ (T-If) Γ if M then P else Q : σ Γ, x : σ M : τ Γ λx : σ.m : σ τ (T-Abs) Γ M : σ τ Γ M N : τ Γ N : σ (T-App)
21 Ejemplos de derivaciones de juicios de tipado Vamos a mostrar que los siguientes juicios de tipado son derivables: 1. λx : Bool.λf : Bool Bool.fx : Bool 2. x : Bool, y : Bool if x then y else y : Bool 3. λf : ρ τ.λg : σ ρ.λx : σ.f (gx) : τ 4. Γ, σ tal que Γ x x : σ?
22 Resultados básicos Unicidad de tipos Si Γ M : σ y Γ M : τ son derivables, entonces σ = τ Weakening+Strengthening Si Γ M : σ es derivable y Γ Γ contiene a todas las variables libres de M, entonces Γ M : σ Sustitución Si Γ, x : σ M : τ y Γ N : σ son derivables, entonces Γ M{x N} : τ es derivable
23 Semántica Habiendo definido la sintaxis de LC b, nos interesa formular cómo se evalúan o ejecutan los términos Hay varias maneras de definir rigurosamente la semántica de un lenguaje de programación Operacional Denotacional Axiomática Vamos a definir una semántica operacional para LC b
24 Qué es semántica operacional? Consiste en interpretar a los términos como estados de una máquina abstracta y definir una función de transición que indica, dado un estado, cuál es el siguiente estado Significado de un término M: el estado final que alcanza la máquina al comenzar con M como estado inicial Formas de definir semántica operacional 1. Small-step: la función de transición describe un paso de computación 2. Big-step (o Natural Semantics): la función de transición, en un paso, evalúa el término a su resultado
25 Semántica operacional La formulación se hace a través de juicios de evaluación M N que se leen: el término M reduce, en un paso, al término N El significado de un juicio de evaluación se establece a través de: Axiomas de evaluación: establecen que ciertos juicios de evaluación son derivables. Reglas de evaluación establecen que ciertos juicios de evaluación son derivables siempre y cuando ciertos otros lo sean.
26 Semántica operacional small-step de LC b Vamos a presentar una semántica operacional small-step para LC b Lo haremos por partes Primero abordamos las expresiones booleanas Luego el resto de las expresiones Además de introducir la función de transición es conveniente introducir también los valores Valores: Los posibles resultados de evaluación de términos bien-tipados y cerrados
27 Semántica Operacional - Expr. booleanas Valores V ::= true false Todo término bien-tipado y cerrado de tipo Bool evalúa, en cero o más pasos, a true o false Este resultado se demuestra formalmente
28 Semántica Operacional - Expr. booleanas Juicio de evaluación en un paso (E-IfTrue) if true then M 2 else M 3 M 2 (E-IfFalse) if false then M 2 else M 3 M 3 M 1 M 1 if M 1 then M 2 else M 3 if M 1 then M 2 else M 3 (E-If)
29 Ejemplos (E-IfFalse) if false then false else true true (E-If) if (if false then false else true) then false else true if true then false else true Observar que No existe M tal que true M (idem con false).
30 Ejemplos if true then (if false then false else true) else true if true then true else true La estrategia de evaluación corresponde con el orden habitual en leng. de prog. 1. Primero evaluar la guarda del condicional 2. Una vez que la guarda sea un valor, seguir con la expresión del then o del else, según corresponda
31 Propiedades Lema (Determinismo del juicio de evaluación en un paso) Si M M y M M, entonces M = M
32 Propiedades Una forma normal es un término que no puede evaluarse más (i.e. M tal que no existe N, M N) Recordar que un valor es resultado al que puede evaluar un término bien-tipado y cerrado Lema Todo valor está en forma normal No vale el recíproco: ejemplos if x then true else false x
33 Evaluación en muchos pasos El juicio de evaluación de muchos pasos es la clausura reflexiva, transitiva de. Es decir, la menor relación tal que 1. Si M M, entonces M M 2. M M para todo M 3. Si M M y M M, entonces M M if true then (if false then false else true) else true true
34 Evaluación en muchos pasos - Propiedades Lema (Unicidad de formas normales) Si M U y M V con U, V formas normales, entonces U = V Lema (Terminación) Para todo M existe una forma normal N tal que M N
35 Semántica operacional - funciones Valores V ::= true false λx : σ.m Todo término bien-tipado y cerrado de tipo Bool evalúa, en cero o más pasos, a true, false σ τ evalúa, en cero o más pasos, a λx : σ.m, para alguna variable x y término M
36 Semántica operacional - funciones Juicio de evaluación en un paso M 1 M 1 M 1 M 2 M 1 M 2 (E-App1) M 2 M 2 (E-App2) V 1 M 2 V 1 M 2 (E-AppAbs) (λx : σ.m) V M{x V }
37 Ejemplo (λy : Bool.y) true true (λx : Bool Bool.x true) (λy : Bool.y) (λy : Bool.y) true (λz : Bool.z) ((λy : Bool.y) true) (λz : Bool.z) true No existe M tal que x M x está en forma normal pero no es un valor
38 Estados de error Estado de error Estado (=término) que no es un valor pero en el que la evaluación está trabada NB: Representa estado en el cual el sistema de run-time en una implementación real generaría una excepción Objetivo de un sistema de tipos: garantizar la ausencia de estados de error Si un término cerrado está bien tipado (y termina!), entonces evalúa a un valor C.f. Type systems, Luca Cardelli, The Computer Science and Engineering Handbook, CRC Press, 2004.
39 Correctitud Correctitud = Progreso + Preservación Progreso Si M es cerrado y bien tipado entonces 1. M es un valor 2. o bien existe M tal que M M La evaluación no puede trabarse para términos cerrados, bien tipados que no son valores Preservación Si Γ M : σ y M N, entonces Γ N : σ La evaluación preserva tipos
40 Tipos y términos σ ::= Bool Nat σ ρ M ::=... 0 succ(m) pred(m) iszero(m) Descripción informal: succ(m): evaluar M hasta arrojar un número e incrementarlo pred(m): evaluar M hasta arrojar un número y decrementar iszero(m): evaluar M hasta arrojar un número, luego retornar true/false según sea cero o no
41 Tipado (T-Zero) Γ 0 : Nat Γ M : Nat Γ M : Nat (T-Succ) (T-Pred) Γ succ(m) : Nat Γ pred(m) : Nat Γ M : Nat (T-IsZero) Γ iszero(m) : Bool
42 Valores y evaluación en un paso (1/2) Valores V ::=... n donde n abrevia succ n (0). Juicio de evaluación en un paso (1/2) M 1 M 1 (E-Succ) succ(m 1 ) succ(m 1) (E-PredZero) pred(0) 0 (E-PredSucc) pred(n + 1) n M 1 M 1 (E-Pred) pred(m 1 ) pred(m 1)
43 Valores y evaluación en un paso (2/2) Juicio de evaluación en un paso (2/2) (E-IsZeroZero) iszero(0) true (E-IsZeroSucc) iszero(n + 1) false M 1 M 1 (E-IsZero) iszero(m 1 ) iszero(m 1)
44 Tipos y términos σ ::=... Unit M ::=... unit Descripción informal: Unit es un tipo unitario y el único valor posible de una expresión de ese tipo es unit. Cumple rol similar a void en C o Java
45 Tipado (T-Unit) Γ unit : Unit NB: No hay reglas de evaluación y extendemos el conjunto de valores V con unit.
46 Utilidad Su utilidad principal es en lenguajes con efectos laterales (próxima clase) En estos lenguajes es útil poder evaluar varias expresiones en secuencia M 1 ; M 2 def = (λx : Unit.M 2 ) M 1 x / FV (M 2 ) La evaluación de M 1 ; M 2 consiste en primero evaluar M 1 y luego M 2 Con la definición dada, este comportamiento se logra con las reglas de evaluación definidas previamente
47 Tipos y términos M ::=... let x = M in N Descripción informal: let x = M in N: evaluar M a un valor V, ligar x a V y evaluar N Mejora la legibilidad La extensión con let no implica agregar nuevos tipos
48 Ejemplo let x = 2 in succ(x) pred (let x = 2 in x) let x = 2 in let x = 3 in x
49 Tipado Γ M : σ 1 Γ, x : σ 1 N : σ 2 (T-Let) Γ let x = M in N : σ 2
50 Semántica operacional M 1 M 1 (E-Let) let x = M 1 in M 2 let x = M 1 in M 2 (E-LetV) let x = V 1 in M 2 M 2 {x V 1 }
51 Tipos y términos Sea L un conjunto de etiquetas σ ::=... {l i : σ i i 1..n } {nombre : String, edad : Nat} {persona : {nombre : String, edad : Nat}, cuil : Nat} {nombre : String, edad : Nat} {edad : Nat, nombre : String}
52 Tipos y términos M ::=... {l i = M i i 1..n } M.l Descripción informal: El registro {l i = M i i 1..n } evalúa a {l i = V i i 1..n } donde V i es el valor al que evalúa M i, i 1..n M.l: evaluar M hasta que arroje {l i = V i i 1..n }, luego proyectar el campo correspondiente
53 Ejemplos λx : Nat.λy : Bool.{edad = x, sexo = y} λp : {edad : Nat, sexo : Bool}.p.edad (λp : {edad : Nat, sexo : Bool}.p.edad) {edad = 20, sexo = false}
54 Tipado Γ M i : σ i para cada i 1..n (T-Rcd) Γ {l i = M i 1..n i } : {l i : σ i 1..n i } Γ M : {l i : σ i i 1..n } j 1..n (T-Proj) Γ M.l j : σ j
55 Semántica operacional Valores V ::=... {l i = V i i 1..n }
56 Semántica operacional j 1..n {l i = V i i 1..n }.l j V j (E-ProjRcd) M M (E-Proj) M.l M.l M j M j {l i = V i i 1..j 1, l j = M j, l i = M i i j+1..n } {l i = V i i 1..j 1, l j = M j, l i = M i i j+1..n } (E-Rcd)
Nociones 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 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 detallesTipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S
Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,
Más detallesGUÍA BÁSICA DE SCHEME v.4
Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los
Más detallesIIC2213. IIC2213 Teorías 1 / 42
Teorías IIC2213 IIC2213 Teorías 1 / 42 Qué es una teoría? Una teoría es un cúmulo de información. Debe estar libre de contradicciones. Debe ser cerrada con respecto a lo que se puede deducir de ella. Inicialmente
Más detallesMMAF: Espacios normados y espacios de Banach
MMAF: Espacios normados y espacios de Banach Licenciatura en Estadística R. Álvarez-Nodarse Universidad de Sevilla Curso 2011/2012 Espacios vectoriales Definición Sea V un conjunto de elementos sobre el
Más detallesTema 1 Programación Funcional
Tema 1 Programación Funcional Curso de Python Avanzado Juan Pedro Boĺıvar Puente Instituto de Astrofísica de Andalucía Mayo de 2011 Juan Pedro Boĺıvar Puente (Instituto de Astrofísica Tema de Andalucía)
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 detallesTrabajo Práctico Final
Trabajo Práctico Final Paradigmas de Lenguajes de Programación (1er cuatrimestre de 2009) Integrante LU Correo electrónico Castillo, Gonzalo 164/06 gonzalocastillo 086@hotmail.com Martínez, Federico 17/06
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 detallesMétodos de Inteligencia Artificial
Métodos de Inteligencia Artificial L. Enrique Sucar (INAOE) esucar@inaoep.mx ccc.inaoep.mx/esucar Tecnologías de Información UPAEP Contenido Lógica proposicional Lógica de predicados Inferencia en lógica
Más detalles4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Más detallesGrupos libres. Presentaciones.
S _ Tema 12.- Grupos libres. Presentaciones. 12.1 Grupos libres. En el grupo Z de los enteros vimos una propiedad (cf. ejemplos.5), que lo caracteriza como grupo libre. Lo enunciamos al modo de una Propiedad
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 detallesTema 9: Cálculo Deductivo
Facultad de Informática Grado en Ingeniería Informática Lógica PARTE 2: LÓGICA DE PRIMER ORDEN Tema 9: Cálculo Deductivo Profesor: Javier Bajo jbajo@fi.upm.es Madrid, España 24/10/2012 Introducción a la
Más detallesManual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Más detallesEstatutos de Control C# Estatutos de Decisión (Selección)
SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente
Más detallesTipos Abstractos de Datos
Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal
Más detallesTema 3.- Predicados y sentencias condicionales
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Más detallesCurso de Java Introducción a la Programación III
Curso de Java Introducción a la Programación III Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Operadores relacionales e igualdad 2 Estructuras de control condicional
Más detallesSemánticas de procesos y aplicaciones
Semánticas de procesos y aplicaciones Clase 09: Manipulación básica de procesos, parte 2 Qué vimos Definición precisa de lo que es que una derivación en lógica ecuacional. Reglas de derivación. Axiomas
Más detallesALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.
ALGEBRA y ALGEBRA LINEAL 520142 Primer Semestre CAPITULO I LOGICA Y CONJUNTOS. DEPARTAMENTO DE INGENIERIA MATEMATICA Facultad de Ciencias Físicas y Matemáticas Universidad de Concepción 1 La lógica es
Más detallesAutómatas de Pila y Lenguajes Incontextuales
Autómatas de Pila y Lenguajes Incontextuales Elvira Mayordomo Universidad de Zaragoza 5 de noviembre de 2012 Contenido de este tema 1. Introducción a los autómatas de pila 2. Definiciones 3. Equivalencia
Más detallesSemana02[1/23] Conjuntos. 9 de marzo de Conjuntos
Semana02[1/23] 9 de marzo de 2007 Introducción Semana02[2/23] La teoría de conjuntos gira en torno a la función proposicional x A. Los valores que hacen verdadera la función proposicional x A son aquellos
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 detallesObjetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)
Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma
Más detallesMáquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45
Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 45 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales
Más detallesMáquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42
Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 42 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales
Más detallesALGEBRA DE BOOLE George Boole C. E. Shannon E. V. Hungtington [6]
ALGEBRA DE BOOLE El álgebra booleana, como cualquier otro sistema matemático deductivo, puede definirse con un conjunto de elementos, un conjunto de operadores y un número de axiomas no probados o postulados.
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
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 detallesSemántica Denotacional
Semántica Denotacional Idea: El significado de un programa es la función denotada por el programa Componentes del metalenguaje para la definición semántica denotacional de un L.P.: Dominios sintácticos
Más detallesIngeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto
Universidad Autónoma del Estado de México Centro Universitario UAEM Texcoco Departamento de Ciencias Aplicadas. Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer,
Más detallesSemana03[1/17] Funciones. 16 de marzo de Funciones
Semana03[1/17] 16 de marzo de 2007 Introducción Semana03[2/17] Ya que conocemos el producto cartesiano A B entre dos conjuntos A y B, podemos definir entre ellos algún tipo de correspondencia. Es decir,
Más detallesTeoría de la Computabilidad
Teoría de la Computabilidad Módulo 7: Lenguajes sensibles al contexto 2016 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Es este programa en Pascal sintácticamente
Más detallesEl ente básico de la parte de la matemática conocida como ANÁLISIS, lo constituye el llamado sistema de los número reales.
EL SISTEMA DE LOS NÚMEROS REALES Introducción El ente básico de la parte de la matemática conocida como ANÁLISIS, lo constituye el llamado sistema de los número reales. Números tales como:1,3, 3 5, e,
Más detallesIntroducción a la Programación en MATLAB
Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos
Más detallesAmpliación Matemática Discreta. Justo Peralta López
Justo Peralta López UNIVERSIDAD DE ALMERíA DEPARTAMENTO DE ÁGEBRA Y ANÁLISIS MATEMÁTICO 1 Introducción 2 Definición semántica de las proposiciones 3 Diagrama de valores de certeza 4 Evaluación de fórmulas.
Más detallesJohn Venn Matemático y filósofo británico creador de los diagramas de Venn
Georg Cantor Matemático Alemán creador de la teoría de conjuntos John Venn Matemático y filósofo británico creador de los diagramas de Venn August De Morgan Matemático ingles creador de leyes que llevan
Más detalles1. Sucesiones y redes.
1. Sucesiones y redes. PRACTICO 7. REDES. Se ha visto que el concepto de sucesión no permite caracterizar algunas nociones topológicas, salvo en espacios métricos. Esto empieza con algunas definiciones
Más detallesTerminaremos el capítulo con una breve referencia a la teoría de cardinales.
TEMA 5. CARDINALES 241 Tema 5. Cardinales Terminaremos el capítulo con una breve referencia a la teoría de cardinales. Definición A.5.1. Diremos que el conjunto X tiene el mismo cardinal que el conjunto
Más detallesConjuntos, relaciones y funciones Susana Puddu
Susana Puddu 1. Repaso sobre la teoría de conjuntos. Denotaremos por IN al conjunto de los números naturales y por ZZ al de los enteros. Dados dos conjuntos A y B decimos que A está contenido en B o también
Más detallesInducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática
Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx
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 detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Más detallesINTRODUCCION A LA INTELIGENCIA ARTIFICIAL MÓDULO 6- CÁLCULO DE PREDICADOS Y LÓGICA DE PRIMER ORDEN
INTRODUCCION A LA INTELIGENCIA ARTIFICIAL MÓDULO 6- CÁLCULO DE PREDICADOS Y LÓGICA DE PRIMER ORDEN Referencias: Inteligencia Artificial Russell and Norvig Cap.6. Artificial Intellingence Nils Nilsson Ch.4
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 detallesPHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Más detallesUNIVERSIDADES DE ANDALUCÍA PRUEBA DE ACCESO A LA UNIVERSIDAD
Opción A Ejercicio 1.- Sea f : R R definida por f(x) = x 3 +ax 2 +bx+c. a) [1 75 puntos] Halla a,b y c para que la gráfica de f tenga un punto de inflexión de abscisa x = 1 2 y que la recta tangente en
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 detalles$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
Más detallesUniversidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS
Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin
Más detallesCompiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.
Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en
Más detallesLógica proposicional. Ivan Olmos Pineda
Lógica proposicional Ivan Olmos Pineda Introducción Originalmente, la lógica trataba con argumentos en el lenguaje natural es el siguiente argumento válido? Todos los hombres son mortales Sócrates es hombre
Más detallesAPENDICE REGLAS Y LEYES DE LA LOGICA DE PRIMER ORDEN
LOGICA (FCE-UBA) APENDICE REGLAS Y LEYES DE LA LOGICA DE PRIMER ORDEN Una regla lógica, o regla de inferencia (deductiva), es una forma válida de razonamiento que es empleada para inferir deductivamente
Más detallesUNIVERSIDAD LIBRE PROGRAMAS ANALÍTICOS SECCIONAL: PEREIRA FACULTAD: INGENIERIAS. PROGRAMA ACADÉMICO: Ingeniería de Sistemas
PROGRAMAS ANALÍTICOS SECCIONAL: PEREIRA FACULTAD: INGENIERIAS PROGRAMA ACADÉMICO: Ingeniería de Sistemas JORNADA: DIURNA 1.- INFORMACION DEL DOCENTE E-mail institucional: E-mail personal: 2.- ESTUDIOS
Más detallesTema 3 - Modelado con HDL a nivel RTL
- Modelado con HDL a nivel RTL Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx
Más detallesEconometría de series de tiempo aplicada a macroeconomía y finanzas
Econometría de series de tiempo aplicada a macroeconomía y finanzas Series de Tiempo no Estacionarias Carlos Capistrán Carmona ITAM Tendencias Una tendencia es un movimiento persistente de largo plazo
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 Matemática, Sistemas Formales, Cláusulas de Horn
Lógica Matemática, Sistemas Formales, Cláusulas de Horn Lic. José Manuel Alvarado La lógica se ocupa de las argumentaciones válidas. Las argumentaciones ocurren cuando se quiere justificar una proposición
Más detallesProgramación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática
Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos
Más detallesCapítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica
Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica Matemática Discreta - CC3101 Profesor: Pablo Barceló P. Barceló Matemática Discreta - Cap. 1: Fundamentos:
Más detallesRESOLUCIÓN DE SISTEMAS MEDIANTE DETERMINANTES
UNIDD 4 RESOLUCIÓN DE SISTEMS MEDINTE DETERMINNTES Página 00 Resolución de sistemas mediante determinantes x y Resuelve, aplicando x = e y =, los siguientes sistemas de ecuaciones: x 5y = 7 5x + 4y = 6x
Más detallesElementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
Más detallesUniversidad de Managua
Universidad de Managua Introducción a la Programación Tema 7 Introducción a la programación en lenguaje C# Objetivos - Describir la estructura básica de un programa en Lenguaje C# - Explicar las estructuras
Más detallesLógica Proposicional. Sergio Stive Solano Sabié. Marzo de 2012
Lógica Proposicional Sergio Stive Solano Sabié Marzo de 2012 Lógica Proposicional Sergio Stive Solano Sabié Marzo de 2012 Proposiciones Definición 1.1 Una proposición (o declaración) es una oración declarativa
Más detallesESCUELA: UNIVERSIDAD DEL ISTMO
1.-IDENTIFICACIÓN ESCUELA: UNIVERSIDAD DEL ISTMO CLAVE: 3041 GRADO: ING. EN COMPUTACIÓN, CUARTO SEMESTRE TIPO DE TEÓRICA/PRÁCTICA ANTECEDENTE CURRICULAR: 3033.- OBJETIVO GENERAL Proporcionar al alumno
Más detallesSESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES
SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES RELACIONES BINARIAS PAR ORDENADO Es un arreglo de dos elementos que tienen un orden determinado donde a es llamada al primera componente y b es llamada la
Más detallesESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Más detalles13.3. MT para reconocer lenguajes
13.3. MT para reconocer lenguajes Gramática equivalente a una MT Sea M=(Γ,Σ,,Q,q 0,f,F) una Máquina de Turing. L(M) es el lenguaje aceptado por la máquina M. A partir de M se puede crear una gramática
Más detallesControl de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
Más detalles5. Sentencias selectivas o condicionales
60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado
Más detallesEn matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse
En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse lógicamente como un término no definido. Un conjunto se
Más detallesMatemáticas Básicas para Computación
Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 6 Nombre: Álgebra Booleana Objetivo Durante la sesión el participante identificará las principales características
Más detallesModelos Estocásticos I Tercer Examen Parcial Respuestas
Modelos Estocásticos I Tercer Examen Parcial Respuestas. a Cuál es la diferencia entre un estado recurrente positivo y uno recurrente nulo? Cómo se define el período de un estado? Demuestre que si el estado
Más detallesLA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesPráctico 5. Definiciones Inductivas - Segunda Parte -
Práctico 5 Definiciones Inductivas - Segunda Parte - Objetivos: Trabajar con tipos inductivos. Realizar pruebas por inducción y análisis de casos. Familiarizarse con los lemas de inversión y las tácticas
Más detallesCONTINUIDAD DE FUNCIONES. SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos.
CAPÍTULO IV. CONTINUIDAD DE FUNCIONES SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos. 121 A. DEFINICIÓN DE FUNCIÓN CONTINUA. Una función
Más detallesAnálisis Matemático I: Numeros Reales y Complejos
Contents : Numeros Reales y Complejos Universidad de Murcia Curso 2008-2009 Contents 1 Definición axiomática de R Objetivos Definición axiomática de R Objetivos 1 Definir (y entender) R introducido axiomáticamente.
Más detallesMAT2715 VARIABLE COMPLEJA II Ayudantia 5 Rodrigo Vargas. g(z) e u(z) 1. u(z) a log z + b
PONTIFICIA UNIVERSIDAD CATÓLICA DE CHILE FACULTAD DE MATEMÁTICAS MAT2715 VARIABLE COMPLEJA II Ayudantia 5 Rodrigo Vargas 1. Sea u : C R una función armónica positiva. Pruebe que u es constante. Solución:
Más detallesMay 4, 2012 CAPÍTULO 5: OPTIMIZACIÓN
May 4, 2012 1. Optimización Sin Restricciones En toda esta sección D denota un subconjunto abierto de R n. 1.1. Condiciones Necesarias de Primer Orden. Proposición 1.1. Sea f : D R diferenciable. Si p
Más detallesEJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL
EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL María Alpuente y María José Ramírez 1 LENGUAJES Y PARADIGMAS: INTRODUCCIÓN 1. Indica cuál de las siguientes
Más detallesPolaridad. Tangentes. Estudio geométrico de cónicas y cuádricas
Tema 6- Polaridad Tangentes Estudio geométrico de cónicas y cuádricas En este tema pretendemos estudiar propiedades de V(Q), especialmente en los casos real y complejo, con n =2,3 Para ello, necesitamos
Más detallesLógicas para la inteligencia natural y artificial
1er día virtual de la comunidad de Inteligencia Artificial Lógicas para la inteligencia natural y artificial México DF, 18 de junio de 2015 Contenido La lógica humana: comprender y razonar sobre lo natural
Más detallesProgramación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.
Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria
Más detallesConjuntos. () April 4, / 32
Conjuntos En general, un conjunto A se de ne seleccionando los elementos de un cierto conjunto U de referencia (o universal) que cumplen una determinada propiedad. () April 4, 2014 1 / 32 Conjuntos En
Más detallesLenguajes de Dominio Específico (o Lenguajes para Todos)
Lenguajes de Dominio Específico (o Lenguajes para Todos) Mauro Jaskelioff 20/11/2015 Lenguajes para Todos Todo sistema que acepte entrada de un usuario es un procesador de lenguaje. John Reynolds Los lenguajes
Más detallesJava para no Programadores
Java para no Programadores Programa de Estudio Java para no Programadores Aprende a programar con una de las tecnologías más utilizadas en el mercado de IT. Este curso está orientado a quienes no tienen
Más detallesInteligencia en Redes de Comunicaciones. Razonamiento lógico. Julio Villena Román.
Inteligencia en Redes de Comunicaciones Razonamiento lógico Julio Villena Román jvillena@it.uc3m.es Índice La programación lógica Lógica de predicados de primer orden Sistemas inferenciales IRC 2009 -
Más detallesIngeniería a de Software CC51A
Ingeniería a de Software CC51A Clase Auxiliar Auxiliar: Andrés s Neyem Oficina 418 de Doctorado aneyem@dcc.uchile.cl 19 de Marzo de 2007 Aspectos Generales Grupo CC51A Diseño Cliente Requisitos Usuario
Más detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería
Más detallesTema 2: Equivalencias y formas normales
Lógica informática Curso 2003 04 Tema 2: Equivalencias y formas normales José A. Alonso Jiménez Andrés Cordón Franco Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla
Más detalles4. Complementos sobre Problemas de Contorno para S.D.O. Lineales. 4. Complementos sobre Problemas de Contorno
para S.D.O. Lineales 4.1. Problemas de contorno para s.d.o. lineales. Teorema de alternativa 4.1. Problemas de contorno. Teorema de alternativa Fijemos A C 0 ([α, β]; L(R N )) y b C 0 ([α, β]; R N ), dos
Más detallesTeorema del Valor Medio
Tema 6 Teorema del Valor Medio Abordamos en este tema el estudio del resultado más importante del cálculo diferencial en una variable, el Teorema del Valor Medio, debido al matemático italo-francés Joseph
Más detallesMaterial diseñado para los estudiantes del NUTULA, alumnos del profesor Álvaro Moreno.01/10/2010 Lógica Proposicional
Lógica Proposicional INTRODUCCIÓN El humano se comunica con sus semejantes a través de un lenguaje determinado (oral, simbólico, escrito, etc.) construido por frases y oraciones. Estas pueden tener diferentes
Más detallesCapitulo IV - Inecuaciones
Capitulo IV - Inecuaciones Definición: Una inecuación es una desigualdad en las que hay una o más cantidades desconocidas (incógnita) y que sólo se verifica para determinados valores de la incógnita o
Más detallesReceptor de Correlación. Sistemas de Comunicación
Receptor de Correlación Sistemas de Comunicación Facundo Mémoli * -Versión 2.- mayo, 22 * memoli@iie.edu.uy Índice. Introducción 3 2. Hipótesis y Planteo del Problema 3 3. Procedimiento 4 3.. Hipótesis
Más detallesTaller Matemático. Lógica. Cristóbal Pareja Flores antares.sip.ucm.es/cpareja Facultad de Estadística Universidad Complutense de Madrid
Taller Matemático Lógica Cristóbal Pareja Flores antares.sip.ucm.es/cpareja Facultad de Estadística Universidad Complutense de Madrid 1. Lógica 14 amigos aportan la misma cantidad de dinero, sobre un fondo
Más detallesPRODUCTO CARTESIANO RELACIONES BINARIAS
PRODUCTO CARTESIANO RELACIONES BINARIAS Producto Cartesiano El producto cartesiano de dos conjuntos A y B, denotado A B, es el conjunto de todos los posibles pares ordenados cuyo primer componente es un
Más detallesRepaso de Lógica de Primer Orden
Repaso de Lógica de Primer Orden IIC3260 IIC3260 Repaso de Lógica de Primer Orden 1 / 29 Lógica de primer orden: Vocabulario Una fórmula en lógica de primer orden está definida sobre algunas constantes
Más detalles