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

Documentos relacionados
Algoritmos y programas. Algoritmos y Estructuras de Datos I

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Práctico 5. Definiciones Inductivas - Segunda Parte -

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

Lenguajes, Gramáticas y Autómatas Conceptos

Capítulo 2 Conjuntos. 2.1 Introducción. 2.2 Determinación de conjuntos. Definición:

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

UNIDAD II: TEORÍA DE CONJUNTOS 2.1. INTRODUCCIÓN

PRODUCTO CARTESIANO RELACIONES BINARIAS

Isabelle como un lenguaje funcional

Teoría de la Computabilidad

TEMA 8. GEOMETRÍA ANALÍTICA.

Una operación interna: Suma Una operación externa: Multiplicación por un escalar

Álgebra y Trigonometría Clase 7 Sistemas de ecuaciones, Matrices y Determinantes

Tema 3: Tipos y clases

Tema 3: Tipos y clases

Lógica de Predicados de Primer Orden

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

Unidad Temática 3: Probabilidad y Variables Aleatorias

Nociones Básicas de Sémantica: Semántica Denotacional

ÁLGEBRA DE BOOLE. 1.- Postulados de HUNTINGTON

06 Análisis léxico II

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Números reales Conceptos básicos Algunas propiedades

Lic. Manuel de Jesús Campos Boc

Lenguajes No Regulares

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Ejercicios del Tema 2: Estructuras algebraicas básicas

Funciones de varias variables

EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL

Expresiones Regulares y Derivadas Formales

1. Computadores y programación

Herramientas digitales de auto-aprendizaje para Matemáticas

Capítulo 4: Polinomios

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

FUNDAMENTOS DE INFORMÁTICA

50 CAP. I. CONJUNTOS, APLICACIONES Y RELACIONES. Ejercicio Dados los conjuntos: Determinar los siguientes conjuntos: Se tiene:

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3

Matemáticas aplicadas a las CC.SS. II 2º Bachillerato. La igualdad de matrices 3x3 equivale a 9 ecuaciones escalares: { a 3=5.

RELACIONES Y FUNCIONES. M.C. Mireya Tovar Vidal

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

GUÍAS DE ESTUDIO. Programa de alfabetización, educación básica y media para jóvenes y adultos

Grupos libres. Presentaciones.

Solución Práctica 2 de Modelos Abstractos de Cálculo Curso 10/ Por supuesto puede haber múltiples soluciones.

Tema 3. Tipos de datos simples

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

Aprender a desarrollar con JavaScript

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

El espacio n Consideremos el conjunto de todas las n adas ordenadas de números reales, denotado por n : 8. 1(x 1, x 2,, x n ) = (x 1, x 2,, x n )

Tema 6: Teoría Semántica

1 LIMITES Y DERIVADAS

Clase 4 Funciones polinomiales y racionales

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES

Teoría de Conjuntos. Conjunto es: colección de cosas, o una colección determinada de objetos.

1 Conjuntos y propiedades de los números naturales

CONCEPTOS BÁSICOS DE ESPACIOS VECTORIALES Alumno. Cristina Mª Méndez Suero

Solución de Sistemas de Ecuaciones Diferenciales Lineales

Métodos de Inteligencia Artificial

Semana05[1/14] Relaciones. 28 de marzo de Relaciones

MATE IV Serie Álgebra 2015/01/26 NOMENCLATURA ALGEBRAICA

Guía de estudio Introducción a la teoría de conjuntos Unidad A: Clase 4

Funciones de Una Variable Real I. Derivadas

ÁLGEBRAS DE BOOLE. En un álgebra de Boole (B, +,, ) se cumplen las siguientes propiedades, para todo x, y, z B: Doble Complemento

1. Producto escalar. Propiedades Norma de un vector. Espacio normado. 1.2.Ortogonalidad. Ángulos. 1.4.Producto escalar en V 3.

Procesadores de lenguaje Tema 5 Comprobación de tipos

Definición 1. Dado un conjunto C una aplicación definida por : C C C

Capítulo 4. Lógica matemática. Continuar

MATEMÁTICAS BÁSICAS. Autoras: Margarita Ospina Pulido Jeanneth Galeano Peñaloza Edición: Rafael Ballestas Rojano

13.3. MT para reconocer lenguajes

Grafos. Amalia Duch Brown Octubre de 2007

ESCUELA TÉCNICA SUPERIOR DE NÁUTICA Y MÁQUINAS NAVALES / NAUTIKAKO ETA ITSASONTZI MAKINETAKO GOI ESKOLA TEKNIKOA NOCIONES PRELIMINARES DE MATEMÁTICAS

Carlos A. Rivera-Morales. Precálculo 2

Descomposición en valores singulares de una matriz

DERIVACIÓN DE LAS FUNCIONES ELEMENTALES

Tema 1. Cálculo diferencial

Superficies. Conceptos generales

Conjuntos, relaciones y funciones Susana Puddu

Grado en Química Bloque 1 Funciones de una variable

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Tema 5: Elementos de geometría diferencial

Capítulo 7: Expresiones Regulares

Universidad Nacional de Ingeniería Facultad de Ciencias. Física Computacional CC063. Algebra Lineal. Prof: J. Solano 2012-I

TEMA II TEORÍA INTUITIVA DE CONJUNTOS

Probabilidad es una manera de indicar la posibilidad de ocurrencia de un evento futuro

Distribuciones Continuas de. Probabilidad. Dr. Víctor Aguirre Torres, ITAM. Guión 7.

Matrices. José Vicente Romero Bauset. ETSIT-curso 2009/2010. José Vicente Romero Bauset Tema 1.- Matrices. 1

TEMA2. SUCESIONES DE NÚMEROS REALES Y COMPLEJOS

Los números reales. 1.6 Valor absoluto CAPÍTULO

1. Lección 9 - Continuidad y Derivabilidad

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

2. SEÑALES Y SISTEMAS DISCRETOS EN EL TIEMPO. Una señal puede ser definida como una portadora física de información. Por ejemplo,

Sistemas de Ecuaciones Lineales

Capítulo 1 Lenguajes formales 6

Una matriz es un arreglo rectangular de elementos. Por ejemplo:

Matemáticas. ticas Discretas. Lenguajes y Gramáticas. Tenemos dos clases de lenguaje: Lenguaje Formal

Práctica 5 Cálculo integral y sus aplicaciones

Estructuras Algebraicas

Transcripción:

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

1. Cálculo simplemente tipado Sintaxis Términos e ::= x x.e (e 1 e 2 ) c Tipos ::= t 1 2 x Var c Const t TConst Contextos G ::= [ ] G,x: (o directamente G ::= x 1 : 1... x n : n (n 0) ) InCo CFPTT - 3.2

Sistema de tipos Juicios de la forma: G - e: la expresión e tiene tipo bajo el contexto G Reglas: x: G G - x: ctx G, x: - e: b G - x.e: b abs G - e 1 : b G - e 2 : G - (e 1 e 2 ): b app InCo CFPTT - 3.3

x.x:? x. y. x:? Sistema de tipos Ejemplos de términos tipados x. y. z.((x y) z):? x. y. z.((x z) (z y)):?? : b b? : ( b ) b InCo CFPTT - 3.4

Reducciones Reducción b ( x.e 1 e 2 ) b e 1 [x := e 2 ] b-redex Reducción x.(f x) f -redex Reducción Si c:= d entonces c d -redex (unfold) InCo CFPTT - 3.5

Reducciones - Ejemplos (( x. y.(x y) z.z) w) (( x. y.(x y) z.z) w) b ( y.( z.z y) w) ( y.( z.z y) w) b ( z.z w) ( z.z w) b w ( x.( z.z x) y) ( x.( z.z x) y) ( z.z y) ( z.z y) b y InCo CFPTT - 3.6

Reducciones infinitas No siempre una cadena de reducciones b y tiene fin. Ejemplos: Definimos = x.(x x) Entonces ( ) b ( ) b ( ) b... Definimos 3 = x.(x x x) Entonces ( 3 3 ) b ( 3 3 3 ) b... Propiedad importante: tener tipo garantiza que no haya computaciones infinitas Dado un término e, si existe tal que G - e:, entonces e es b- -normalizable (toda cadena de reducciones temina en una forma normal) InCo CFPTT - 3.7

Cálculo simplemente tipado en Coq Constantes de tipo: nat, bool, etc. Las abstracciones se escriben con fun... =>... El tipo de las variables aparece en las abstracciones: fun x: nat => x : nat nat fun x: bool => x : bool bool fun (f:nat bool)(x:nat) => f x : bool fun (g:nat nat bool)(n:nat) => g n n : bool fun (g:nat nat bool)(n:nat) => g n : nat bool InCo CFPTT - 3.8

2. Polimorfismo Paramétrico En los lenguajes funcionales (ML, Haskell) escribimos: x. x : Variable de tipo!! En Coq, abstraemos el tipo. Los tipos de datos pertenecen a la clase Set: fun (X:Set)(x:X) => x : forall X:Set, X X Abstrayendo en la clase Set se obtiene polimorfismo paramétrico InCo CFPTT - 3.9

3. Tipos dependientes Polimorfismo paramétrico = abstraer variables de tipo (de Set). En forma más general: podemos abstraer variables de cualquier tipo. Tipos dependientes: un tipo puede depender no solo de otro tipo, sino también de un objeto de cierto tipo. InCo CFPTT - 3.10

Tipos dependientes Ejemplos Array: Set nat Set (Array bool 3) zip: forall (A B:Set)(k:nat), (Array A k) (Array B k) (Array (A*B) k) Matrix: Set nat nat Set (Matrix nat 5 4) prod:forall n m k:nat, (Matrix nat n k) (Matrix nat k m) (Matrix nat n m) InCo CFPTT - 3.11

Lenguaje de programación de Coq Es un lambda cálculo tipado con las siguientes características: es de orden superior permite definir funciones paramétricas tiene tipos dependientes permite definir tipos inductivos permite definir tipos coinductivos CC CCI CCI Cálculo de Construcciones (CC) Cálculo de Construcciones Inductivas = CC + tipos inductivos (CCI) Cálculo de Construcciones Inductivas y Coinductivos = CCI+tipos coinductivos (CCI ) InCo CFPTT - 3.12

4. Cálculo de Construcciones Sintaxis 1. Términos T ::= Set Prop Type x variables ( T T ) aplicación [ x : T ]T abstracción ( x : T) T producto T T tipo de las funciones* * A B abrevia (x:a)b cuando x no ocurre libre en B Ejemplos: [A:Set][x:A]x [f: A A A][a:A](f a a) InCo CFPTT - 3.13

Sintaxis (cont.) 2. Contextos G ::= [ ] G, x:t 3. Definiciones def ::= C:= T InCo CFPTT - 3.14

Sintaxis - Alcance La lambda abstracción y el producto son operadores de ligadura Definición [alcance] - en el término [x:a]b el alcance de la abstracción [x:a] es B. - en el tipo (x:a) B el alcance del cuantificador (x:a) es B. Las nociones de variable libre y ligada son las usuales. InCo CFPTT - 3.15

Sintaxis - Sustitución Definición [sustitución] sean t y u dos términos y x una variable. t[x := u] denota el término que resulta de sustituir todas las ocurrencias libres de x en t por el término u. Otras notaciones: t[u/x], [u/x]t, t[x<-u], t{x:=u} Asumiremos que la operación de sustitución evita la captura de variables renombrando adecuadamente las variables ligadas. InCo CFPTT - 3.16

Reglas de Reducción Definición [reducción beta y eta] ([x:t]f a) b f [x := a] [x:t] (f x) f Definición Se define como b y las relaciones correspondientes a la reescritura de un subtérmino utilizando b y.. Se define b como la unión de ambas relaciones. Se define como b* y * la clausura reflexiva, transitiva de b y respectivamente. Idem para b * InCo CFPTT - 3.17

Reglas Reducción (cont.) Definición [beta y eta conversión] Se definen b como la clausura reflexiva, transitiva y simétrica de b * Si t b u se dice que t y u son b -convertibles Definición [redex, forma normal] Un término t es un b-redex si t b u y es un - redex si t u Un término t está en b-forma normal si ninguno de sus terminos es un b-redex (idem para -forma normal y b -forma normal). InCo CFPTT - 3.18

Juicio de tipabilidad en CC Definición [juicio de tipado] Los juicios t tiene tipo T en el contexto G ( G - t:t ) y G es un contexto bien formado se definen en forma mutuamente recursiva El conjunto S de clases de objetos se define como : S = {Set, Prop, Type, Type1, Type2,...} El conjunto R de reglas de formación de productos es: R = { <Prop,Prop,Prop>, <Set, Prop, Prop>, <Type i, Prop, Prop>, <Set, Set, Set>, <Prop, Set, Set >, <Type i, Set, Set>, <Set,Type i,type i >, <Prop,Type i,type i >, <Type i, Type j, Type max{i,j} > i N } InCo CFPTT - 3.19

Juicio de Tipabilidad (cont) Reglas de Buena formación de Contextos [ ] bien formado G - T:s x G G, x:t bien formado DECLARACION DE VARIABLES InCo CFPTT - 3.20

Juicio de Tipabilidad (cont) Reglas de Tipado I [ ] - Set:Type AX1 AX2 [ ] - Prop:Type AXi [ ] - Tipe i :Type i+1 G - T:s 1 G, x:t - U:s 2 <S1,S2,S3> R ( PROD) G - (x:t)u : s 3 InCo CFPTT - 3.21

Juicio de Tipabilidad (cont) Reglas de Tipado II G bien formado G - x : t x:t G VAR G - (x:t)u:s G, x:t - t:u G - [x:t]t : (x:t)u ABSTR G - f:(x:t)u G - t:t G - (f t) : U [x t] APP InCo CFPTT - 3.22

Juicio de Tipabilidad (cont) Reglas de Tipado III G - t:t G - U:s G - t: U T b U (CONV) InCo CFPTT - 3.23

Definición [regla delta] -Reducción si C :=E es una definición incorporada al contexto G t, G t donde t es el resultado remplazar una ocurrencia del símbolo de constante C por E en t. Observar que este remplazo no es una sustitución pues C es un símbolo de constante. Las definiciones de forma normal y conversion vistas para b se definen de forma análoga para. Ver: presentación de CC con en Cap. 4 del manual y [Paulin-Mohring96] InCo CFPTT - 3.24

Coq: Tácticas vinculadas a la reducción Estrategias de reducción cbv flag 1 flag 2 lazy flag 1 flag 2 donde flag i es el nombre de la reducción (beta o delta) Reducción Delta unfold id 1... id n fold term Estrategias de reducción compute calcula la forma normal simpl aplica b y luego a constantes transparentes InCo CFPTT - 3.25

Propiedades del Cálculo de Normalización Construcciones Si el juicio G -A:B es derivable entonces A tiene forma normal. Confluencia Si G -A:B y A b * A 1 y A b * A 2 entonces existe C tal que A 1 b * C y A 2 b * C. InCo CFPTT - 3.26

Más Propiedades del Cálculo de Construcciones Decidibilidad del tipado Existe un algoritmo que dado un término U y un contexto G: devuelve un término V tal que G -U : V es derivable, o bien reporta un error si no existe un término V tal que G -U : V pueda derivarse. InCo CFPTT - 3.27

Problemas ligados al tipado 1. Chequeo de tipos: G -U : V? 2. Inferencia de tipos: Dados G y U existe V tal que G -U : V? 3. Vacuidad de un tipo: Dados G y V existe U tal que G -U : V? Los problemas 1 y 2 son decidibles en el cálculo de construcciones, 3 no lo es. InCo CFPTT - 3.28