Tecnología de la Programación

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

Download "Tecnología de la Programación"

Transcripción

1 Tecnología de la Programación Semántica Operacional David Cabrero Souto Facultad de Informática Universidade da Coruña Curso 2007/2008

2 Verificación formal Recordar descriptores BOE: Diseño de algoritmos Análisis de algoritmos Lenguajes de programación Diseño de programas: Descomposición modular y documentación Técnicas de verificación Pruebas de programas Pruebas de programas: validación Ejecución de un conjunto de tests generados sintética o manualmente. Prueba formal de propiedades: verificación Demostración formal de propiedades. Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

3 Verificación formal Recordar descriptores BOE: Diseño de algoritmos Análisis de algoritmos Lenguajes de programación Diseño de programas: Descomposición modular y documentación Técnicas de verificación Pruebas de programas Pruebas de programas: validación Ejecución de un conjunto de tests generados sintética o manualmente. Prueba formal de propiedades: verificación Demostración formal de propiedades. Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

4 Verificación formal Recordar descriptores BOE: Diseño de algoritmos Análisis de algoritmos Lenguajes de programación Diseño de programas: Descomposición modular y documentación Técnicas de verificación Pruebas de programas Pruebas de programas: validación Ejecución de un conjunto de tests generados sintética o manualmente. Prueba formal de propiedades: verificación Demostración formal de propiedades. Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

5 Verificación formal Recordar descriptores BOE: Diseño de algoritmos Análisis de algoritmos Lenguajes de programación Diseño de programas: Descomposición modular y documentación Técnicas de verificación Pruebas de programas Pruebas de programas: validación Ejecución de un conjunto de tests generados sintética o manualmente. Prueba formal de propiedades: verificación Demostración formal de propiedades. Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

6 Verificación formal Recordar descriptores BOE: Diseño de algoritmos Análisis de algoritmos Lenguajes de programación Diseño de programas: Descomposición modular y documentación Técnicas de verificación Pruebas de programas Pruebas de programas: validación Ejecución de un conjunto de tests generados sintética o manualmente. Prueba formal de propiedades: verificación Demostración formal (base matemática) de propiedades. Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

7 Verificación formal Recordar descriptores BOE: Diseño de algoritmos Análisis de algoritmos Lenguajes de programación Diseño de programas: Descomposición modular y documentación Técnicas de verificación Pruebas de programas Pruebas de programas: validación Ejecución de un conjunto de tests generados sintética o manualmente. Prueba formal de propiedades: verificación Demostración formal (base matemática) de propiedades (para todos los casos). Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

8 Verificación formal Recordar descriptores BOE: Diseño de algoritmos Análisis de algoritmos Lenguajes de programación Diseño de programas: Descomposición modular y documentación Técnicas de verificación Pruebas de programas Pruebas de programas: validación Ejecución de un conjunto de tests generados sintética o manualmente. Prueba formal de propiedades: verificación Demostración formal (base matemática) de propiedades (para todos los casos). Necesitamos una definición formal del significado (semántica) de los lenguajes de programación.

9 Lenguaje de ejemplo IMP (IMPerativo) Estructuras básicas: Secuencia Alternativa Repetición Cambio de estado: variables y asignación. Tipos básicos: enteros, strings. Tipos compuestos: arrays. Funciones.

10 IMP. Sintaxis aproximada IMP ::= eof CMDS eof CMDS ::= CMD ; CMD ; CMDS CMD ::= skip Type Variable := EXP Variable := EXP Type Variable [ Exp ] := EXP Variable [ Exp ] := EXP if EXP then CMDS else CMDS fi while EXP do CMDS done print EXP

11 Semántica operacional Define la semántica de un lenguaje de programación en función de los cambios de estado que producen cada una de las instrucciones del lenguaje. No es adecuado para todo tipo de lenguajes. El estado se representa mediante un modelo o abstracción.

12 IMP- Definición (I) Conjuntos sintácticos asociados con IMP. números N Booleanos T = {true, false} Posiciones de memoria Loc Expresiones aritméticas Aexp Expresiones booleanas Bexp Comandos Com

13 IMP- Definición (I) Conjuntos sintácticos asociados con IMP. números N Booleanos T = {true, false} Posiciones de memoria Loc Expresiones aritméticas Aexp Expresiones booleanas Bexp Comandos Com

14 IMP- Definición (I) Conjuntos sintácticos asociados con IMP. números N Booleanos T = {true, false} Posiciones de memoria Loc Expresiones aritméticas Aexp Expresiones booleanas Bexp Comandos Com

15 IMP- Definición (I) Conjuntos sintácticos asociados con IMP. números N Booleanos T = {true, false} Posiciones de memoria Loc Expresiones aritméticas Aexp Expresiones booleanas Bexp Comandos Com

16 IMP- Definición (I) Conjuntos sintácticos asociados con IMP. números N Booleanos T = {true, false} Posiciones de memoria Loc Expresiones aritméticas Aexp Expresiones booleanas Bexp Comandos Com

17 IMP- Definición (I) Conjuntos sintácticos asociados con IMP. números N Booleanos T = {true, false} Posiciones de memoria Loc Expresiones aritméticas Aexp Expresiones booleanas Bexp Comandos Com

18 IMP- Definición (II) Convenciones n, m son variables en N n, m N X, Y son variables en Loc X, Y Loc a i son variables en Aexp a i Aexp b i son variables en Bexp b i Bexp c i son variables en Com c i Com

19 IMP- Definición (II) Convenciones n, m son variables en N n, m N X, Y son variables en Loc X, Y Loc a i son variables en Aexp a i Aexp b i son variables en Bexp b i Bexp c i son variables en Com c i Com

20 IMP- Definición (II) Convenciones n, m son variables en N n, m N X, Y son variables en Loc X, Y Loc a i son variables en Aexp a i Aexp b i son variables en Bexp b i Bexp c i son variables en Com c i Com

21 IMP- Definición (II) Convenciones n, m son variables en N n, m N X, Y son variables en Loc X, Y Loc a i son variables en Aexp a i Aexp b i son variables en Bexp b i Bexp c i son variables en Com c i Com

22 IMP- Definición (II) Convenciones n, m son variables en N n, m N X, Y son variables en Loc X, Y Loc a i son variables en Aexp a i Aexp b i son variables en Bexp b i Bexp c i son variables en Com c i Com

23 IMP- Definición (Aexp) Expresiones aritméticas Aexp ::= n X a 0 + a 1 a 0 a 1 a 0 a 1

24 IMP- Definición (Bexp) Expresiones booleanas Bexp ::= true false a 0 = a 1 a 0 <= a 1 not b b 0 and b 1 b 0 or b 1

25 IMP- Definición (Comm) Instrucciones Comm ::= skip X := a c 0 ; c 1 if b then c 0 else c 1 fi while b do c done

26 Estados El conjunto de estados Σ está formado por las funciones: σ : Loc > N (Sólo variables enteras) Dado un estado σ, representaremos el valor de la posicion X como: σ(x) Y la extensión de un estado σ[x m]: { m Y = X, σ[x m](y ) = σ(y ) si Y X. Indistintamente σ[x m] ó σ[m/x]

27 Evaluación Evaluación de una expresión aritmética a en un estado σ < a, σ > n Evaluación de una expresión booleana b en un estado σ < b, σ > {true, false} Ejecución de una instrucción c en un estado σ < c, σ > σ

28 Secuentes Si las premisas son ciertas, se puede deducir la conclusión. < premisas > < conclusion > F 1... F n F G 1... G 1... F n G 1... G m m Las usaremos para definir la semántica operacional.

29 Evaluación de expresiones aritméticas Constantes Variables Suma Resta Multiplicación < n, σ > n < X, σ > σ(x) < a 0, σ > n < a 1, σ > m < a 0 + a 1, σ > n + m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m

30 Evaluación de expresiones aritméticas Constantes Variables Suma Resta Multiplicación < n, σ > n < X, σ > σ(x) < a 0, σ > n < a 1, σ > m < a 0 + a 1, σ > n + m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m

31 Evaluación de expresiones aritméticas Constantes Variables Suma Resta Multiplicación < n, σ > n < X, σ > σ(x) < a 0, σ > n < a 1, σ > m < a 0 + a 1, σ > n + m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m

32 Evaluación de expresiones aritméticas Constantes Variables Suma Resta Multiplicación < n, σ > n < X, σ > σ(x) < a 0, σ > n < a 1, σ > m < a 0 + a 1, σ > n + m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m

33 Evaluación de expresiones aritméticas Constantes Variables Suma Resta Multiplicación < n, σ > n < X, σ > σ(x) < a 0, σ > n < a 1, σ > m < a 0 + a 1, σ > n + m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m < a 0, σ > n < a 1, σ > m < a 0 a 1, σ > n m

34 Evaluación de expresiones booleanas (I) Constantes < true, σ > true < false, σ > false Comparación aritmética < a 0, σ > n < a 1, σ > m < a 0 = a 1, σ > true < a 0, σ > n < a 1, σ > m < a 0 = a 1, σ > false < a 0, σ > n < a 1, σ > m < a 0 <= a 1, σ > true < a 0, σ > n < a 1, σ > m < a 0 <= a 1, σ > false n = m n m n <= m n > m

35 Evaluación de expresiones booleanas (I) Constantes < true, σ > true < false, σ > false Comparación aritmética < a 0, σ > n < a 1, σ > m < a 0 = a 1, σ > true < a 0, σ > n < a 1, σ > m < a 0 = a 1, σ > false < a 0, σ > n < a 1, σ > m < a 0 <= a 1, σ > true < a 0, σ > n < a 1, σ > m < a 0 <= a 1, σ > false n = m n m n <= m n > m

36 Evaluación de expresiones booleanas (II) Negación < b, σ > true < not b, σ > false Conectivas lógicas < b, σ > false < not b, σ > true < b 0, σ > t 0 < b 1, σ > t 1 < b 0 and b 1, σ > t < b 0, σ > t 0 < b 1, σ > t 1 < b 0 or b 1, σ > t t = t 0 t 1 t = t 0 t 1

37 Evaluación de expresiones booleanas (II) Negación < b, σ > true < not b, σ > false Conectivas lógicas < b, σ > false < not b, σ > true < b 0, σ > t 0 < b 1, σ > t 1 < b 0 and b 1, σ > t < b 0, σ > t 0 < b 1, σ > t 1 < b 0 or b 1, σ > t t = t 0 t 1 t = t 0 t 1

38 Evaluación de and optimizada Implementación habitual < b 0, σ > false < b 0 and b 1, σ > false < b 0, σ > true < b 1, σ > false < b 0 and b 1, σ > false < b 0, σ > true < b 1, σ > true < b 0 and b 1, σ > true

39 Ejecución de instrucciones (I) Skip Asignación Secuencia < skip, σ > σ < a, σ > m < X := a, σ > σ[x m] < c 0, σ > σ < c 1, σ > σ < c 0 ; c 1, σ > σ

40 Ejecución de instrucciones (I) Skip Asignación Secuencia < skip, σ > σ < a, σ > m < X := a, σ > σ[x m] < c 0, σ > σ < c 1, σ > σ < c 0 ; c 1, σ > σ

41 Ejecución de instrucciones (I) Skip Asignación Secuencia < skip, σ > σ < a, σ > m < X := a, σ > σ[x m] < c 0, σ > σ < c 1, σ > σ < c 0 ; c 1, σ > σ

42 Ejecución de instrucciones (II) If < b, σ > true < c 0, σ > σ < if b then c 0 else c 1 fi, σ > σ While < b, σ > false < c 1, σ > σ < if b then c 0 else c 1 fi, σ > σ < b, σ > false < while b do c done, σ > σ < b, σ > true < c, σ > σ < while b do c done, σ > σ < while b do c done, σ > σ

43 Ejecución de instrucciones (II) If < b, σ > true < c 0, σ > σ < if b then c 0 else c 1 fi, σ > σ While < b, σ > false < c 1, σ > σ < if b then c 0 else c 1 fi, σ > σ < b, σ > false < while b do c done, σ > σ < b, σ > true < c, σ > σ < while b do c done, σ > σ < while b do c done, σ > σ

44 Derivaciones Derivación. Secuencia de aplicación de reglas. Axioma. Regla sin premisas. Instancia de un regla. Sustituimos las metavariables por valores concretos. Las derivaciones representan ejecuciones de las instrucciones o evaluaciones de las expresiones. Ejemplo. a (X + 5) + (7 + 9) y σ 0 = {X 0} < a, σ 0 >? < X, σ 0 > 0 < 5, σ 0 > 5 < 7, σ 0 > 7 < 9, σ 0 > 9 < (X + 5), σ 0 > 5 < (7 + 9), σ 0 > 16 < (X + 5) + (7 + 9), σ 0 > 21 >

45 Terminación Si w while true do skip, σ, σ t.q. < w, σ > σ?

46 Preguntas Son iguales? skip b := 1 > 2; x := 1; while b do x := x *2; b := x < 500; done Después de este código, X es par? while x < 3000 do x := x * 2; done

47 Relaciones de equivalencia a 0 a 1 iff ( n N, σ Σ, < a 0, σ > n < a 1, σ > n) b 0 b 1 iff ( t σ Σ, < b 0, σ > t < b 1, σ > t) c 0 c 1 iff ( σ, σ Σ, < c 0, σ > σ < c 1, σ > σ )

48 Prueba simple Proposición Sea w while b do c done con b Bexp, c Comm entonces: w if b then c; w else skip fi Demostración. Método menos laborioso: inducción de reglas.

49 Inducción matemática Sea P(n) una propiedad de los números naturales. El principio de inducción matemática dice que para demostrar que P(n) es cierto para todos los números naturales es suficiente con demostrar que: P(0) es cierto. Si P(m) es cierto, entonces también lo es P(m+1), para cualquier número natural m. Es decir, (P(0) & ( m ω.p(m) P(m + 1))) n ω.p(n) Ejercicio. Demostrar que la propiedad P(n) se cumple para los números naturales. P(n) n (2i 1) = n 2 i=1

50 Inducción estructural Cómo demostramos que la evaluación de expresiones aritméticas en IMP es determinista? < a, σ > m & < a, σ > m m = m Sea P(a) una propiedad de las expresiones aritméticas. Para demostrar que (P(a) se cumple para todas las expresiones artiméticas es suficiente con demostrar que: Se cumple para todos los número P(m). Se cumple para todas la variables P(X). Para todas la expresiones aritméticas a 0, a 1, si P(a 0 ) y P(a 1 ) se cumplen, entonces también se cumple P(a 0 + a 1 ). Para todas la expresiones aritméticas a 0, a 1, si P(a 0 ) y P(a 1 ) se cumplen, entonces también se cumple P(a 0 a 1 ). Para todas la expresiones aritméticas a 0, a 1, si P(a 0 ) y P(a 1 ) se cumplen, entonces también se cumple P(a 0 a 1 ).

51 Inducción estructural Cómo demostramos que la evaluación de expresiones aritméticas en IMP es determinista? < a, σ > m & < a, σ > m m = m Sea P(a) una propiedad de las expresiones aritméticas. Para demostrar que (P(a) se cumple para todas las expresiones artiméticas es suficiente con demostrar que: Se cumple para todos los número P(m). Se cumple para todas la variables P(X). Para todas la expresiones aritméticas a 0, a 1, si P(a 0 ) y P(a 1 ) se cumplen, entonces también se cumple P(a 0 + a 1 ). Para todas la expresiones aritméticas a 0, a 1, si P(a 0 ) y P(a 1 ) se cumplen, entonces también se cumple P(a 0 a 1 ). Para todas la expresiones aritméticas a 0, a 1, si P(a 0 ) y P(a 1 ) se cumplen, entonces también se cumple P(a 0 a 1 ).

52 Inducción estructural cont. ( m N.P(m)) & ( X Loc.P(X)) & ( a 0, a 1 Aexp.P(a 0 ) y P(a 1 ) P(a 0 + a 1 )) & ( a 0, a 1 Aexp.P(a 0 ) y P(a 1 ) P(a 0 a 1 )) & ( a 0, a 1 Aexp.P(a 0 ) y P(a 1 ) P(a 0 a 1 )) a Aexp.P(a)

53 Inducción estructural cont. Proposición Para toda expresión aritmética a y números m y m Demostración < a, σ > m & < a, σ > m m = m

54 Inducción bien fundada Las anteriores son casos particulares. Relación bien fundada Es una relación binaria sobre un conjunto A tal que no hay cadenas descendientes infinitas a i a 1 a 0 Si a b decimos que a es un predecesor de b. Es irreflexiva. a/a a a b a = b o a b Proposición Sea una relación binaria en el conjunto A. La relacion está bien fundada iff todos los subconjuntos no vacíos Q de A tienen un elemento minimal, i.e. un elemento m tal que m Q& b m.b Q

55 Inducción bien fundada Las anteriores son casos particulares. Relación bien fundada Es una relación binaria sobre un conjunto A tal que no hay cadenas descendientes infinitas a i a 1 a 0 Si a b decimos que a es un predecesor de b. Es irreflexiva. a/a a a b a = b o a b Proposición Sea una relación binaria en el conjunto A. La relacion está bien fundada iff todos los subconjuntos no vacíos Q de A tienen un elemento minimal, i.e. un elemento m tal que m Q& b m.b Q

56 Inducción bien fundada Las anteriores son casos particulares. Relación bien fundada Es una relación binaria sobre un conjunto A tal que no hay cadenas descendientes infinitas a i a 1 a 0 Si a b decimos que a es un predecesor de b. Es irreflexiva. a/a a a b a = b o a b Proposición Sea una relación binaria en el conjunto A. La relacion está bien fundada iff todos los subconjuntos no vacíos Q de A tienen un elemento minimal, i.e. un elemento m tal que m Q& b m.b Q

57 Inducción bien fundada (cont.) Demostración está bien fundada m Q& b m.b Q Supongamos que todo conjunto no vacio de A tiene un elemento minimal. Si... a i... a 1 a 0 es una cadena infinita descendente, entonces el conjunto Q = {a i i w} sería no vacío sin un elemento minimal. Por lo tanto está bien fundada. está bien fundada m Q& b m.b Q Suponer que Q es un subconjunto no vacío de A. Construimos una cadena de elementos de esta forma: tomamos un elemento a 0 de Q. Inductivamente, asumimos que hemos construido en Q una cadena de elememntos a n... a 0. Si no existe un b Q t.q. b a n parar la construcción. En caso contrario tomar a n+1 = b. Como es bien fundada la cadena... a i... a 1... a 0 no puede ser infinita. Si es finita, de la forma a n... a 0 con b a n.b Q. Tomar como elemento minimal a n.

58 El principio de Inducción bien fundada Sea una relacion bien fundada en un conjunto A. Sea P una propiedad. Entonces a A.P(a) iff: a A.([ b a.p(b)] P(a)) Prueba La prueba se basa en la observación de que cualquier subconjunto no vacío Q de un conjunto A con una relación bien fundada tiene un elemento minimal. Trivial Asumimos a A.([ b a.p(b)] P(a)) y producimos una contradicción suponiendo que P(a) para algún a A. Entonces, tiene que existir un elemento minimal m para el conjunto {a A P(a)}. Pero entonces P(m) y sin embargo b m.p(m), lo cual contradice la asumción.

59 El principio de Inducción bien fundada Sea una relacion bien fundada en un conjunto A. Sea P una propiedad. Entonces a A.P(a) iff: a A.([ b a.p(b)] P(a)) Prueba La prueba se basa en la observación de que cualquier subconjunto no vacío Q de un conjunto A con una relación bien fundada tiene un elemento minimal. Trivial Asumimos a A.([ b a.p(b)] P(a)) y producimos una contradicción suponiendo que P(a) para algún a A. Entonces, tiene que existir un elemento minimal m para el conjunto {a A P(a)}. Pero entonces P(m) y sin embargo b m.p(m), lo cual contradice la asumción.

60 El principio de Inducción bien fundada Sea una relacion bien fundada en un conjunto A. Sea P una propiedad. Entonces a A.P(a) iff: a A.([ b a.p(b)] P(a)) Prueba La prueba se basa en la observación de que cualquier subconjunto no vacío Q de un conjunto A con una relación bien fundada tiene un elemento minimal. Trivial Asumimos a A.([ b a.p(b)] P(a)) y producimos una contradicción suponiendo que P(a) para algún a A. Entonces, tiene que existir un elemento minimal m para el conjunto {a A P(a)}. Pero entonces P(m) y sin embargo b m.p(m), lo cual contradice la asumción.

61 El principio de Inducción bien fundada Sea una relacion bien fundada en un conjunto A. Sea P una propiedad. Entonces a A.P(a) iff: a A.([ b a.p(b)] P(a)) Prueba La prueba se basa en la observación de que cualquier subconjunto no vacío Q de un conjunto A con una relación bien fundada tiene un elemento minimal. Trivial Asumimos a A.([ b a.p(b)] P(a)) y producimos una contradicción suponiendo que P(a) para algún a A. Entonces, tiene que existir un elemento minimal m para el conjunto {a A P(a)}. Pero entonces P(m) y sin embargo b m.p(m), lo cual contradice la asumción.

62 Ejemplos Inducción matemática n m m = n + 1 Inducción estructural a b a es una subexpresión directa de b

63 Ejemplos Inducción matemática n m m = n + 1 Inducción estructural a b a es una subexpresión directa de b

64 Ejercicio Algoritmo de Euclides (máximo común divisor) Euclid while (not (M = N)) do if (M <= N) then N := N - M; else M := M - N; fi done Teorema (Terminación). Para todos los estados σ σ(m) 1 & σ(n) 1 σ. < Euclid, σ > σ

65 Ejercicio Algoritmo de Euclides (máximo común divisor) Euclid while (not (M = N)) do if (M <= N) then N := N - M; else M := M - N; fi done Teorema (Terminación). Para todos los estados σ σ(m) 1 & σ(n) 1 σ. < Euclid, σ > σ

66 Ejercicio. Prueba Deseamos probar que la propiedad P(σ) σ. < Euclid, σ > σ se cumple σ S = {σ Σ σ(m) 1 & σ(n) 1} Usaremos inducción bien fundada sobre la relación: σ σ iff (σ (M) σ(m) & σ (N) σ(n)) & (σ (M) σ(m) o σ (N) σ(n))

67 Ejercicio. Prueba Deseamos probar que la propiedad P(σ) σ. < Euclid, σ > σ se cumple σ S = {σ Σ σ(m) 1 & σ(n) 1} Usaremos inducción bien fundada sobre la relación: σ σ iff (σ (M) σ(m) & σ (N) σ(n)) & (σ (M) σ(m) o σ (N) σ(n))

Algoritmos en teoría de números

Algoritmos 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 detalles

Lenguajes de programación LÓGICA COMPUTACIONAL LENGUAJES DE PROGRAMACIÓN. Sintaxis y semántica formales. Lenguaje IMP

Lenguajes de programación LÓGICA COMPUTACIONAL LENGUAJES DE PROGRAMACIÓN. Sintaxis y semántica formales. Lenguaje IMP Lenguajes de programación LÓGICA COMPUTACIONAL LENGUAJES DE PROGRAMACIÓ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 detalles

Lenguajes de programación ANÁLISIS LÓGICO LENGUAJES DE PROGRAMACIÓN. Sintaxis y semántica formales. Lenguaje IMP

Lenguajes de programación ANÁLISIS LÓGICO LENGUAJES DE PROGRAMACIÓN. Sintaxis y semántica formales. Lenguaje IMP Lenguajes de programación ANÁLISIS LÓGICO LENGUAJES DE PROGRAMACIÓ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 detalles

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

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

Más detalles

Lenguajes funcionales: λ-cálculo

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

Más detalles

El lenguaje While. Yolanda Ortega Mallén. Dpto. de Sistemas Informáticos y Computación Universidad Complutense de Madrid

El lenguaje While. Yolanda Ortega Mallén. Dpto. de Sistemas Informáticos y Computación Universidad Complutense de Madrid Yolanda Ortega Mallén Dpto. de Sistemas Informáticos y Computación Universidad Complutense de Madrid Yolanda Ortega Mallén (UCM) TPRO 15-16 1/12 Sumario Sintaxis. Semántica de expresiones. Propiedades.

Más detalles

Verificación de programas. Algoritmos y Estructuras de Datos I. Semánticas formales: Primer cuatrimestre de 2016

Verificación de programas. Algoritmos y Estructuras de Datos I. Semánticas formales: Primer cuatrimestre de 2016 Verificación de programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2016 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 14 Verificación automática de programas

Más detalles

Análisis lógico Cálculo de proposiciones

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

Más detalles

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

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

Más detalles

Resumen ANÁLISIS LÓGICO INDUCCIÓN Y RECURSIÓN. Conjuntos inductivos. Definiciones circulares

Resumen ANÁLISIS LÓGICO INDUCCIÓN Y RECURSIÓN. Conjuntos inductivos. Definiciones circulares Resumen ANÁLISIS LÓGICO INDUCCIÓN Y RECURSIÓ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 En este

Más detalles

LENGUAJES Y COMPILADORES

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

Más detalles

Un tercer ejemplo: verificación de primalidad

Un tercer ejemplo: verificación de primalidad Un tercer ejemplo: verificación de primalidad Vamos a ver un algoritmo aleatorizado para verificar si un número es primo. I Este algoritmo es más eficiente que los algoritmos sin componentes aleatorias

Más detalles

MEL* Ejercicios - Inducción 1

MEL* Ejercicios - Inducción 1 Ejercicios 8. Teo: Principio del Buen Orden Principio de inducción. ( ) Supóngase el Principio del Buen Orden. Sea p un predicado sobre nat tal que p.0 y ( n:nat : p.n p(n+)}. Se quiere demostrar que también

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

AMPLIACIÓN DE MATEMÁTICAS. DIVISIBILIDAD DE NÚMEROS ENTEROS. En el conjunto de los números enteros

AMPLIACIÓN DE MATEMÁTICAS. DIVISIBILIDAD DE NÚMEROS ENTEROS. En el conjunto de los números enteros AMPLIACIÓN DE MATEMÁTICAS DIVISIBILIDAD DE NÚMEROS ENTEROS. En el conjunto de los números enteros Z = {..., n,..., 2, 1, 0, 1, 2, 3,..., n, n + 1,...} tenemos definidos una suma y un producto para los

Más detalles

Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica

Introducció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 detalles

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

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

Más detalles

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

Terminaremos 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 detalles

Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica

Introducció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 detalles

Esquema. Condicionales. Ejemplo de condicional. Demostración. P { if (B) uno else dos } Q. P { while (B) cuerpo } Q

Esquema. Condicionales. Ejemplo de condicional. Demostración. P { if (B) uno else dos } Q. P { while (B) cuerpo } Q Esquema Teórica Imperativo 2 Estructuras de control Instrucción de asignación P{v=e Q // estado 1; vale P: true v:=e; // vale Q: v == e@1 && para toda vi: vi == vi@1 Instrucciones de Control de Flujo P

Más detalles

Inducció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. 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 detalles

Construcción Formal de Programas en Teoría de Tipos

Construcción Formal de Programas en Teoría de Tipos Construcción Formal de Programas en Teoría de Tipos http://www.fing.edu.uy/inco/grupos/mf/tppsf Gustavo Betarte Carlos Luna Grupo de Métodos Formales www.fing.edu.uy/~mf/ Instituto de Computación (InCo)

Más detalles

Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid

Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid LÓGICA FORMAL Lógica Proposicional: Teorema de Efectividad Departamento de Inteligencia Artificial Facultad de Informática Universidad Politécnica de Madrid Lógica Proposicional 1 La lógica proposicional

Más detalles

DE LOS NÚMEROS NATURALES Y ENTEROS

DE LOS NÚMEROS NATURALES Y ENTEROS Capítulo 2 DE LOS NÚMEROS NATURALES Y ENTEROS Objetivo general Presentar y afianzar algunos conceptos de los números naturales y números enteros relacionados con el estudio de la matemática discreta. Objetivos

Más detalles

Resumen LÓGICA COMPUTACIONAL INDUCCIÓN Y RECURSIÓN. Conjuntos inductivos. Definiciones circulares

Resumen LÓGICA COMPUTACIONAL INDUCCIÓN Y RECURSIÓN. Conjuntos inductivos. Definiciones circulares Resumen LÓGICA COMPUTACIONAL INDUCCIÓN Y RECURSIÓ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 detalles

INTRODUCCIÓN A LA PROGRAMACIÓN. 1º Bachillerato

INTRODUCCIÓN A LA PROGRAMACIÓN. 1º Bachillerato INTRODUCCIÓN A LA PROGRAMACIÓN 1º Bachillerato Qué es un programa? Componente informático que se utiliza para realizar una determinada tarea. Se compone de algoritmos y estructuras de datos Algoritmos:

Más detalles

La lógica de segundo orden: Sintaxis

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

Más detalles

Inducció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. 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 detalles

Lógica - Conjuntos inductivos

Lógica - Conjuntos inductivos Lógica - Conjuntos inductivos Matemática discreta y Lógica I Mayo de 2017 Las transparencias son tomadas del curso de Lógica del instituto de computación de Facultad de Ingeniería. Inducción - Plan Conjuntos

Más detalles

Algoritmos y estructuras de datos II Inducción estructural

Algoritmos y estructuras de datos II Inducción estructural Algoritmos y estructuras de datos II Inducción estructural Carlos Gustavo Lopez Pombo (Charlie) Departamento de Computación, Facultad de ciencias exactas y naturales, Universidad de Buenos Aires Qué es

Más detalles

Aritmética Entera MATEMÁTICA DISCRETA I. F. Informática. UPM. MATEMÁTICA DISCRETA I () Aritmética Entera F. Informática.

Aritmética Entera MATEMÁTICA DISCRETA I. F. Informática. UPM. MATEMÁTICA DISCRETA I () Aritmética Entera F. Informática. Aritmética Entera MATEMÁTICA DISCRETA I F. Informática. UPM MATEMÁTICA DISCRETA I () Aritmética Entera F. Informática. UPM 1 / 18 Estructura de los números enteros Estructura de los números enteros Definición

Más detalles

GUÍA BÁSICA DE SCHEME v.4

GUÍ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 detalles

LEYES, ESTRUCTURAS BÁSICAS Y COCIENTES LÓGICA DE PROPOSICIONES

LEYES, ESTRUCTURAS BÁSICAS Y COCIENTES LÓGICA DE PROPOSICIONES Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Lógica Matemática. Contenido. Definición. Finalidad de la unidad. Proposicional. Primer orden

Lógica Matemática. Contenido. Definición. Finalidad de la unidad. Proposicional. Primer orden Contenido Lógica Matemática M.C. Mireya Tovar Vidal Proposicional Definición Sintaxis Proposición Conectivos lógicos Semántica Primer orden cuantificadores Finalidad de la unidad Definición Traducir enunciados

Más detalles

Introducción a la Lógica

Introducció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 detalles

Teorema de incompletitud de Gödel

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

Más detalles

PROBLEMAS RESUELTOS DE PREPARACIÓN PARA OPOSICIONES. Problemas 02

PROBLEMAS RESUELTOS DE PREPARACIÓN PARA OPOSICIONES. Problemas 02 PROBLEMAS RESUELTOS DE PREPARACIÓN PARA OPOSICIONES Problemas 0 Salvador Pérez Gómez pies3coma14@hotmail.com 4 de abril de 007 PROBLEMA 1 Sea n un número natural. Sea A n = n + n + 3n. a) Demostrar que

Más detalles

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

Contenido. Prólogo... Prólogo a la edición en español Argumentos y proposiciones lógicas Introducción CONTENIDO vii Contenido Prólogo... Prólogo a la edición en español... XVIl XXI 1 Cálculo proposicional... 1 1.1 Argumentos y proposiciones lógicas 1.1.1 Introducción 1 1 1.1.2 Algunos argumentos lógicos

Más detalles

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

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

Más detalles

Lógica Instituto de Computación. 27 de febrero

Lógica Instituto de Computación. 27 de febrero Inducción Lógica 2018 Instituto de Computación 27 de febrero Instituto de Computación (InCo) Inducción Curso 2018 1 / 1 Inducción - Plan Conjuntos inductivos Inducción como mecanismo primitivo para definir

Más detalles

Tema 1: El cuerpo de los números reales

Tema 1: El cuerpo de los números reales Una definición axiomática debe ser: tal que: Tema 1: El cuerpo de los números reales - Ningún axioma se debe deducir o demostrar de otro anterior - Han de ser los mínimos para demostrar una teoría Axiomas

Más detalles

Ampliación Matemática Discreta. Justo Peralta López

Ampliación Matemática Discreta. Justo Peralta López Justo Peralta López UNIVERSIDAD DE ALMERíA DEPARTAMENTO DE ÁLGEBRA Y ANÁLISIS MATEMÁTICO 1 2 cíclicos 3 Subgrupos 4 Algoritmos 5 ElGamal Definición Un grupo es un conjunto de elementos sobre los cuales

Más detalles

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

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

Más detalles

INDUCCIÓN. Inducción - 2

INDUCCIÓN. Inducción - 2 INDUCCIÓN Inducción - 1 Inducción - Plan Conjuntos Inductivos Inducción como mecanismo primitivo para definir conjuntos Pruebas Inductivas Principios de inducción asociados a los conjuntos inductivos como

Más detalles

INDUCCIÓN Instituto de Computación Lógica Inducción - 1

INDUCCIÓN Instituto de Computación Lógica Inducción - 1 INDUCCIÓN Inducción - 1 Inducción - Plan Conjuntos Inductivos Inducción como mecanismo primitivo para definir conjuntos Pruebas Inductivas Principios de inducción asociados a los conjuntos inductivos como

Más detalles

Tema 4: Recursión e inducción en ACL2

Tema 4: Recursión e inducción en ACL2 Tema 4: Recursión e inducción en ACL2 José Luis Ruiz Reina Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Razonamiento automático, 2012/13 José L. Ruiz Reina

Más detalles

Matemáticas Discretas Lógica

Matemáticas Discretas Lógica Coordinación de Ciencias Computacionales - INAOE Matemáticas Discretas Lógica Cursos Propedéuticos 2010 Ciencias Computacionales INAOE Lógica undamentos de Lógica Cálculo proposicional Cálculo de predicados

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS 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 detalles

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

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

Más detalles

Lógicas no clásicas: Introducción a la lógica modal

Lógicas no clásicas: Introducción a la lógica modal Lógicas no clásicas: Introducción a la lógica modal Pedro Arturo Góngora Luna pedro.gongora@gmail.com Índice 1. Repaso 1 1.1. Relaciones binarias............................... 1 1.2. Relaciones binarias

Más detalles

Sistemas deductivos. Lógica Computacional. Curso 2005/2006. Departamento de Matemática Aplicada Universidad de Málaga

Sistemas deductivos. Lógica Computacional. Curso 2005/2006. Departamento de Matemática Aplicada Universidad de Málaga Sistemas deductivos Lógica Computacional Departamento de Matemática plicada Universidad de Málaga Curso 2005/2006 Contenido 1 Sistema axiomático de Lukasiewicz Sistema proposicional Extensión a predicados

Más detalles

MEL* Ejercicios - Conjuntos 1

MEL* Ejercicios - Conjuntos 1 Ejercicios 7 1 Teo B (Formas normales para nat) Sea X {n:nat n0 ( m:nat : ns.m)}. Claramente, 0 X. Además, si x X, también S.x X, porque S.xS.x y, por tanto ( m:nat : S.x S.m). El Axioma e permite afirmar

Más detalles

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

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

Más detalles

Demostración Contraejemplo. Métodos Indirectos

Demostración Contraejemplo. Métodos Indirectos DEMOSTRACION Una demostración de un teorema es una verificación escrita que muestra que el teorema es verdadero. Informalmente, desde el punto de vista de la lógica, una demostración de un teorema es un

Más detalles

Números primos y compuestos

Números primos y compuestos Números primos y compuestos Jorge Tipe Villanueva Sabemos que cualquier entero positivo n tiene como divisores a 1 y n. Si asumimos que n > 1 entonces n tendrá al menos dos divisores pues 1 y n son diferentes.

Más detalles

CIENCIAS FORMALES CIENCIAS FÁCTICAS

CIENCIAS 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 detalles

Algebras booleanas. B2) Leyes Distributivas. Cada operación es distributiva con respecto a la otra:

Algebras booleanas. B2) Leyes Distributivas. Cada operación es distributiva con respecto a la otra: Algebras booleanas AXIOMAS DEL ALGEBRA DE BOOLE Sea B un conjunto en el cual se han definido dos operaciones binarias, + y * (En algunos casos se definen en términos de y respectivamente), y una operación

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

Introducción a la Matemática Discreta

Introducción a la Matemática Discreta Introducción a la Matemática Discreta Lógica proposicional y Álgebras de Boole Luisa María Camacho Camacho Introd. a la Matemática Discreta 1 / 25 Introducción a la Matemática Discreta Temario Tema 1.

Más detalles

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

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

Más detalles

los lenguajes WHILE y LOOP X2 := X1; while X2 0 do X1 := X1 + 1; X2 := X2 1 od

los lenguajes WHILE y LOOP X2 := X1; while X2 0 do X1 := X1 + 1; X2 := X2 1 od los lenguajes WHILE y LOOP X2 := X1; while X2 0 do X1 := X1 + 1; X2 := X2 1 od índice de materias introducción histórica modelos de cálculo lenguajes WHILE y LOOP funciones µ-recursivas teorema de equivalencia

Más detalles

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De

Más detalles

1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN

1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN 1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN Las estructuras de datos bien definidas no son adecuadamente utilizadas si no se realiza una buena programación. La programación estructurada tiene la finalidad de

Más detalles

Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos

Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos Programación imperativa Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 6 Ciclos y arreglos Entidad fundamental:

Más detalles

Ampliación Matemática Discreta. Justo Peralta López

Ampliació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 detalles

Qué es la lógica? Esfuerzos por modelar estas leyes del pensamiento humano. Han existido desde la antigüedad.

Qué es la lógica? Esfuerzos por modelar estas leyes del pensamiento humano. Han existido desde la antigüedad. Qué es la lógica? La definición del Diccionario General de la Lengua Española dice: Disciplina que estudia los principios formales del conocimiento humano, es decir, las formas y las leyes más generales

Más detalles

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

Teorema de Lagrange. En esta sección demostramos algunos hechos básicos sobre grupos, que se pueden deducir de la definición Teorema de Lagrange Capítulo 3 3.1 Introducción En este capítulo estudiaremos uno de los teoremas más importantes de toda la teoría de grupos como lo es el Teorema de Lagrange. Daremos en primer lugar

Más detalles

Lógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42

Ló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 detalles

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

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

Más detalles

Lógica Proposicional IIC2213. IIC2213 Lógica Proposicional 1/42

Ló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 detalles

Tema I Testing Estructurado

Tema I Testing Estructurado Tema I Testing Estructurado 4ta Parte Verificación y Validación de Software UNS Contenido Testing de Unidad: Caja Negra Grafos Causa Efecto Clases de Equivalencia Valores Límite Verificación y Validación

Más detalles

Variables, expresiones y sentencias

Variables, expresiones y sentencias Introducción a la Programación Pontificia Universidad Javeriana Generado con LAT E X Febrero de 2010 Recorderis Recorderis Algoritmo Colección de instrucciones junto con un orden en el cual deben ser ejecutados.

Más detalles

Matemática y programación

Matemática y programación NI FCC - EI FING UDELAR CES ANEP 2014 Clase 1 Breve historia la ciencia de la computación o informática programación: paradigmas filosóficos en el sistema educativo Este curso Problemas, soluciones, implementaciones

Más detalles

Con los dos conectivos y en las formulas que tienen una sola variable proposicional distinta, no hay forma de construir una contradicción.

Con los dos conectivos y en las formulas que tienen una sola variable proposicional distinta, no hay forma de construir una contradicción. 1) No se puede formar una contradicción usando solamente los dos conectivos, {*,->}, en las formulas que tienen una sola variable proposicional distinta. Con los dos conectivos y en las formulas que tienen

Más detalles

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION INTRODUCCIÓN A LA PROGRAMACIÓN POR COMPUTADORA Muchos usuarios creen que la programación es simplemente teclear palabras en una computadora. Eso es una parte, pero de ninguna manera todo. La programación

Más detalles

Total de horas: Horas de teoría: semana UNIDAD 1 OBJETIVO

Total de horas: Horas de teoría: semana UNIDAD 1 OBJETIVO PROGRAMA DE ESTUDIOS Nombre de la unidad de aprendizaje Seminario de solución de problemas de Matemáticas Discretas Modalidad: Presencial Departamento: Departamento de Ciencias Básicas, Aplicadas e Ingenierías

Más detalles

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros Resumen teoría Prof. Alcón ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Z = N {0} N Enteros Las operaciones + y. son cerradas en Z, es decir la suma de dos números enteros es un número entero y el producto

Más detalles

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

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

Más detalles

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos

Más detalles

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

ALGEBRA 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 detalles

Técnicas de prueba y corrección de algoritmos

Técnicas de prueba y corrección de algoritmos Técnicas de prueba y corrección de algoritmos Diseño y Análisis de Algoritmos Cátedra de Programación Carrera de Ingeniería de Sistemas Prof. Isabel Besembel Carrera Un algoritmo A define una secuencia

Más detalles

Bases Formales de la Computación

Bases Formales de la Computación Modal Bases Formales de la Computación Pontificia Universidad Javeriana 3 de abril de 2009 Modal LÓGICAS MODALES Contenido Modal 1 Modal 2 3 Qué es la lógica Modal? Modal Variedad de diferentes sistemas

Más detalles

Introducción a la Inducción Matemática Seminario de Matemáticas

Introducción a la Inducción Matemática Seminario de Matemáticas Introducción a la Inducción Matemática Seminario de Matemáticas Julio Ariel Hurtado Alegría ahurtado@unicauca.edu.co 15 de marzo de 2013 Julio A. Hurtado A. Departamento de Sistemas 1 / 27 Agenda Motivación

Más detalles

Relaciones de orden. Definición 1. Llamamos conjunto ordenado a un par (E, ) donde E es un conjunto y es un orden definido en E

Relaciones de orden. Definición 1. Llamamos conjunto ordenado a un par (E, ) donde E es un conjunto y es un orden definido en E Relaciones de orden Diremos que una relación R es de orden si verifica las propiedades reflexiva, antisimétrica y transitiva. Generalmente usaremos la notación en lugar de R para expresar relaciones de

Más detalles

ARITMÉTICA ENTERA LOS NÚMEROS ENTEROS. = {..., n,..., 3, 2, 1, 0, 1, 2, 3,..., n,...} (Zahlen, en alemán, números)

ARITMÉTICA ENTERA LOS NÚMEROS ENTEROS. = {..., n,..., 3, 2, 1, 0, 1, 2, 3,..., n,...} (Zahlen, en alemán, números) LOS NÚMEROS ENTEROS ARITMÉTICA ENTERA = {..., n,..., 3, 2, 1, 0, 1, 2, 3,..., n,...} (Zahlen, en alemán, números) Recordamos la estructura de sus propiedades aritméticas la relación de orden usual, compatible

Más detalles

Estructuras Discretas. Teoremas. Técnicas de demostración. Reglas de Inferencia. Reglas de Inferencia Ley de Combinación.

Estructuras Discretas. Teoremas. Técnicas de demostración. Reglas de Inferencia. Reglas de Inferencia Ley de Combinación. Estructuras Discretas Teoremas Técnicas de demostración Claudio Lobos, Jocelyn Simmonds clobos,jsimmond@inf.utfsm.cl Universidad Técnica Federico Santa María Estructuras Discretas INF 15 Definición: teorema

Más detalles

Conjuntos finitos y conjuntos numerables

Conjuntos finitos y conjuntos numerables Tema 3 Conjuntos finitos y conjuntos numerables En este tema vamos a usar los números naturales para contar los elementos de un conjunto, o dicho con mayor precisión, para definir los conjuntos finitos

Más detalles

Resumen de las clases teóricas del turno tarde a cargo de la Prof. Alcón.

Resumen de las clases teóricas del turno tarde a cargo de la Prof. Alcón. Resumen de las clases teóricas del turno tarde a cargo de la Prof. Alcón. 0.1. Definiciones básicas: subconjunto, conjunto vacío, complemento, conjunto de partes A lo largo de esta sección consideraremos

Más detalles

Clase 1: Divisibilidad

Clase 1: Divisibilidad Clase 1: Divisibilidad Dr. Daniel A. Jaume, * 5 de agosto de 2011 1. Enteros y el principio del buen orden El conjunto de los números enteros será denotado por Z. Z = {..., 3, 2, 1, 0, 1, 2, 3,...} A los

Más detalles

La Representación del Conocimiento CÓMO REPRESENTAR EL CONOCIMIENTO?

La Representación del Conocimiento CÓMO REPRESENTAR EL CONOCIMIENTO? La Representación del Conocimiento CÓMO REPRESENTAR EL CONOCIMIENTO? TIPOS DE CONOCIMENTO El epistemología es el estudio del conocimiento, hay dos tipos esenciales llamados a priori y posteriori. Algoritmo

Más detalles

MODULO II PROGRAMACIÓN ORIENTADA A EVENTOS

MODULO II PROGRAMACIÓN ORIENTADA A EVENTOS MODULO II PROGRAMACIÓN ORIENTADA A EVENTOS Índice 1. Concepto Visual Basic 2. Elementos del lenguaje.- Ventana principal de Visual Basic. 3. Desarrollo de Aplicación. Concepto Visual Basic Visual Basic

Más detalles

Lógica Proposicional

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

Más detalles

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

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

Más detalles

Lenguajes de Programación Programación funcional

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

Más detalles

Lenguaje de Programación: C++ Repaso de Material C++

Lenguaje de Programación: C++ Repaso de Material C++ UG Lenguaje de Programación: C++ Repaso de Material C++ Universidad de Guanajuato Octubre 2010 Variables Tipos de Variables Operadores Variable Para poder leer algo, necesitamos un lugar donde poner lo

Más detalles

Lógica Clásica Proposicional

Lógica Clásica Proposicional Lógica Clásica Proposicional Lógica Computacional Departamento de Matemática Aplicada Universidad de Málaga 10 de enero de 2008 Contenido 1 Sintaxis Alfabeto Fórmulas bien formadas Funciones recursivas

Más detalles

como les va con las practicas?

como les va con las practicas? como les va con las practicas? Problemas NP-completos y Estructuras de datos básicas (representación de datos) mat-151 1 Una maquina de Turing Aceptation state Una maquina de Turing Maquina de Turing Determinística,

Más detalles

GENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS

GENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles