La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

InCo 2004CFPTT - 4.1 4. Programación de Pruebas Isomorfismo de Curry-Howard.

Presentaciones similares


Presentación del tema: "InCo 2004CFPTT - 4.1 4. Programación de Pruebas Isomorfismo de Curry-Howard."— Transcripción de la presentación:

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  |-   |-  II  |-   |-   |-  EE Reglas:

5 InCo 2004CFPTT - 4.5 Deducción Natural en Coq [    n ] |-  lo vemos escrito: H 1 :    H n :  n   |-  ass corresponde a Assumption  |-   |-  II corresponde a Intro  |-   |-   |-  EE 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 II EE ctx abs app

8 InCo 2004CFPTT - 4.8 Más similaridades: Reducciones  |-   |-   |-   |-  II EE  |- 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 |-  II  |-  (a)  |-  x  A   |- a  A EE 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 |-  II corresponde a Apply  |-  a/x]  |-  x  A   |- a  A EE

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 II EE  |- 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)


Descargar ppt "InCo 2004CFPTT - 4.1 4. Programación de Pruebas Isomorfismo de Curry-Howard."

Presentaciones similares


Anuncios Google