Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJorge Ponce Martin Modificado hace 10 años
1
InCo 2004CFPTT - 4.1 4. Programación de Pruebas Isomorfismo de Curry-Howard
2
InCo 2004CFPTT - 4.2 Construcción de Pruebas en Coq ¿Qué estamos haciendo cuando probamos un teorema en Coq? Construimos un objeto, que es la prueba del teorema ¿En qué lenguaje está escrita esa prueba? En Cálculo Lambda!!!! Cada enunciado lógico se corresponde con un tipo Cada prueba es un objeto del tipo correspondiente.
3
InCo 2004CFPTT - 4.3 Isomorfismo de Curry-Howard Identificación de proposiciones con tipos P : Prop pensamos a P como el tipo cuyos objetos son las pruebas de P Identificación de pruebas con objetos a: P significa que a es una prueba de P
4
InCo 2004CFPTT - 4.4 Cálculo Proposicional Minimal Deducción Natural Proposiciones atómicas y de la forma Juicios de la forma: |- “ se deduce a partir del conjunto de hipótesis ” =[ n ] |- ass |- |- II |- |- |- EE Reglas:
5
InCo 2004CFPTT - 4.5 Deducción Natural en Coq [ n ] |- lo vemos escrito: H 1 : H n : n |- ass corresponde a Assumption |- |- II corresponde a Intro |- |- |- EE corresponde a Apply o Cut (dependiendo de si está o no en
6
InCo 2004CFPTT - 4.6 Cálculo simplemente tipado sistema de tipos Juicios de la forma: |- e: “la expresión e tiene tipo bajo el contexto ” =[x 1 : x n : n ] x: |- x: |- x.e: x: |- e: |- (e 1 e 2 ): |- e 1 : |- e 2 : ctx abs app Reglas:
7
InCo 2004CFPTT - 4.7 comparemos... Deducción Natural |- |- |- |- |- |- Cálculo x: |- x: |- x.e: x: |- e: |- (e 1 e 2 ): |- e 1 : |- e 2 : ass II EE ctx abs app
8
InCo 2004CFPTT - 4.8 Más similaridades: Reducciones |- |- |- |- II EE |- a: |- x.e: x: |- e: |- ( x.e a): abs app Deducción Natural Cálculo |- a: x: |- e: |- ( x.e a)=e[a/x] : |- |- |- cut
9
InCo 2004CFPTT - 4.9 Isomorfismo de Curry-Howard Un poco de historia: En 1958 H. B. Curry observó que los axiomas del cálculo proposicional y se correspondían con los tipos de los combinadores S,K e I En 1965 W. Tait descubrió una correspondencia entre la eliminación de lemas en pruebas (cut- elimination) y la -reducción en el cálculo En 1969 W. A. Howard desarrolla una noción de construcción adecuada para representar las pruebas de la lógica intuicionista.
10
InCo 2004CFPTT - 4.10 Cálculo de Predicados Minimal Deducción Natural Proposiciones atómicas y de la forma x A Juicios de la forma: |- “ se deduce a partir del conjunto de hipótesis y objetos ” =[x 1 A x m A m ] [ n ] |- x A x A |- II |- (a) |- x A |- a A EE Reglas: ass, I, E más:
11
InCo 2004CFPTT - 4.11 En Coq... [x 1 : A x m :A m ] [ n ] |- lo vemos escrito x 1 :A 1 x m :A m H 1 : H n : n corresponde a Intro x |- x A x A |- II corresponde a Apply |- a/x] |- x A |- a A EE
12
InCo 2004CFPTT - 4.12 Cálculo con tipos dependientes sistema de tipos Juicios de la forma: |- e: “la expresión e tiene tipo bajo el contexto ” =[x 1 : x n : n ] |- x .e: x: x: |- e: |- (e a): [a/x] |- e: x: |- a: abs app Reglas: ctx más:
13
InCo 2004CFPTT - 4.13 comparemos otra vez... Deducción Natural Cálculo |- x x A |- |- [a/x] |- x A |- a A II EE |- x .e: x: x: |- e: |- (e a): [a/x] |- e: x: |- a: abs app
14
InCo 2004CFPTT - 4.14 Observaciones sobre los productos La regla del producto nos sirve para representar tres tipos de funciones |- x: : Set |- : Set x: |- : Set prod |- x: : Prop |- : Set x: |- : Prop prod |- x: : Prop |- : Prop x: |- : Prop prod [x:nat]x: (x:nat)nat (= nat nat) [n:nat](diag n): (n:nat)(Mat n n) [x:nat](leS x): (x:nat) (Le x(Sx)) Ax: (x:nat) (x=0) ~( y.x=Sy) [H:z=0](Ax z H): (H:z=0) ~( y.z=Sy) (z=0) ~( y.z=Sy)
15
InCo 2004CFPTT - 4.15 Isomorfismo en Coq Cuando constuimos una prueba de un enunciado en Coq, estamos construyendo un término del tipo correspondiente al enunciado. La situación general es de la forma: Tácticas : constructoras de términos 1 ? 1 : n ? n : n
16
InCo 2004CFPTT - 4.16 Construcción de pruebas en Coq Assumption : corresponde a la prueba H: H: ?: ?: Intro H : corresponde a la prueba [H: ] ? 1 donde ? 1 será la prueba de corresp. a: H: ? 1 : Apply H : corresponde a la prueba (H ? 1 ) donde ? 1 será la prueba de corresp. a: H: ?: H: ? 1 :
17
InCo 2004CFPTT - 4.17 Construcción de pruebas en Coq (cont.) Cut : corresponde a la prueba (? 1 ? 2 ) donde ? 1 y ? 2 serán las pruebas de y correspondientes a: ?: ? 1 : y ? 2 : ?: (x: ) Intro x : corresponde a la prueba [x: ] ? 1 donde ? 1 será la prueba de corresp. a: x: ? 1 : ver que es exactamente la misma explicación que para el caso
18
InCo 2004CFPTT - 4.18 Construcción de pruebas en Coq (cont.) Ejemplo: H:(x:nat)(y:(P x))(Q x y) ?: (Q 0 a) Apply H (H 0 a): (Q 0 a) 0:nat a:(P 0) Apply H : corresponde a la prueba (H x 1 x 2 ) Donde es la sustitución que unifica a con . Además, x 1 : 1 ... x n : n deberán ser consecuencias de H : (x 1 : 1 )..(x n : n ) ?: x n : n x 1 : 1 ... Coq chequea:
19
InCo 2004CFPTT - 4.19 Programando Pruebas Los resultados ya probados y las hipótesis pueden pensarse como objetos de ciertos tipos (en general, son funciones) –H1: A B –Lema2: A Estas funciones pueden aplicarse a argumentos, que a su vez pueden ser pruebas de resultados o a otras hipótesis. De esta forma, podemos utilizar las pruebas como objetos de un lenguaje funcional –(H1 Lema2): B
20
InCo 2004CFPTT - 4.20 Programando Pruebas Ejemplos H1: A B H2: A B Exact (H1 H2) Probado!! H1: A B C H2: A H3: B C Exact ((H1 H2) H3) Probado!! H1: A H2: A B H3: B C C Exact (H3 (H2 H1)) Probado!!
21
InCo 2004CFPTT - 4.21 Programando Pruebas Ejemplos (cont.) H1: (x:A)(B x) a: A (B a) Exact (H1 a) Probado!! H1: A (x:B)(C x) H2: A z: B (C z) Exact ((H1 H2) z) Probado!! H1: (x:A) B C H2: B z: A C Exact ((H1 z) H2) Probado!!
22
InCo 2004CFPTT - 4.22 Tácticas para ver pruebas Show Proof: muestra el término correspondiente a la prueba que se está armando Show Tree: muestra la prueba como en el sistema de Deducción Natural Print Natural: muestra la prueba hecha en el sistema de Deducción Natural en “lenguaje natural” (se necesita cargar el archivo Natural.vo)
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.