Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porPaulino Nolasco Modificado hace 10 años
1
TPPSFProgramando pruebas - 1 4. Programando Pruebas Isomorfismo de Curry-Howard
2
TPPSFProgramando pruebas - 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 y su prueba es un objeto de ese tipo.
3
TPPSFProgramando pruebas - 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 (objeto) de P
4
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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 A |- a A EE
12
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 13 comparemos otra vez... Deducción Natural Cálculo |- x x A |- |- (a) |- x A |- a A II EE |- x .e: x: x: |- e: |- (e a): [a/x] |- e: x: |- a: abs app
14
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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 . x 1 : 1 y x 2 : 2 deberán ser consecuencias de H :(x 1 : 1 )(x 2 : 2 ) ?: x 2 : 2 x 1 : 1 y Coq chequea:
19
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 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
TPPSFProgramando pruebas - 21 Programando Pruebas Ejemplos (cont.) H1: (x:A)B a: A B Apply (H1 a) Probado!! H1: A (x:B)C H2: A z: B C Exact ((H1 H2) z) Probado!! H1: (x:A) B C H2: B z: A C Exact ((H1 z) H2) Probado!!
22
TPPSFProgramando pruebas - 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.