demostración interactiva de teoremas en coq beta ziliani

19
Demostraci´oninteractiva de teoremas en Coq Beta Ziliani CONICET / LIIS, FaMAF, UNC FACAS 2016

Upload: truongnhu

Post on 06-Jan-2017

235 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Demostración interactiva de teoremas en Coq Beta Ziliani

Demostracion interactiva

de teoremas en Coq

Beta Ziliani

CONICET / LIIS, FaMAF, UNC

FACAS 2016

Page 2: Demostración interactiva de teoremas en Coq Beta Ziliani

2

Los humanos no somos confiables

Teorema de los 4 colores, 100 anos de pruebasincorrectas.

Conjetura Jacobiana, desde 1939 generandomuchas pruebas incorrectas.

Un trabajo mıo salio publicado con un error.Luego que 8 expertos lo leyeran.

Beta Ziliani Demostracion interactiva de teoremas

Page 3: Demostración interactiva de teoremas en Coq Beta Ziliani

2

Los humanos no somos confiables

Teorema de los 4 colores, 100 anos de pruebasincorrectas.

Conjetura Jacobiana, desde 1939 generandomuchas pruebas incorrectas.

Un trabajo mıo salio publicado con un error.Luego que 8 expertos lo leyeran.

Beta Ziliani Demostracion interactiva de teoremas

Page 4: Demostración interactiva de teoremas en Coq Beta Ziliani

2

Los humanos no somos confiables

Teorema de los 4 colores, 100 anos de pruebasincorrectas.

Conjetura Jacobiana, desde 1939 generandomuchas pruebas incorrectas.

Un trabajo mıo salio publicado con un error.Luego que 8 expertos lo leyeran.

Beta Ziliani Demostracion interactiva de teoremas

Page 5: Demostración interactiva de teoremas en Coq Beta Ziliani

2

Los humanos no somos confiables

Teorema de los 4 colores, 100 anos de pruebasincorrectas.

Conjetura Jacobiana, desde 1939 generandomuchas pruebas incorrectas.

Un trabajo mıo salio publicado con un error.Luego que 8 expertos lo leyeran.

Beta Ziliani Demostracion interactiva de teoremas

Page 6: Demostración interactiva de teoremas en Coq Beta Ziliani

3

Demostrar y revisar

Demostrar un teorema requiere ingenio eintuicion.

} Humano

Revisar una prueba requiere sistematizacion ypaciencia.

} Computadora

Beta Ziliani Demostracion interactiva de teoremas

Page 7: Demostración interactiva de teoremas en Coq Beta Ziliani

3

Demostrar y revisar

Demostrar un teorema requiere ingenio eintuicion. } Humano

Revisar una prueba requiere sistematizacion ypaciencia. } Computadora

Beta Ziliani Demostracion interactiva de teoremas

Page 8: Demostración interactiva de teoremas en Coq Beta Ziliani

4

Demostrador interactivo de teoremas (ITP)

Logicas complejas (alto orden).

Teoremas complejos.

El humano provee el teorema y la prueba.

El ITP la verifica.

Incluye herramientas para automatizar pruebas.

Isabelle y Coq entre los mas famosos.

En esta charla: Coq.

Beta Ziliani Demostracion interactiva de teoremas

Page 9: Demostración interactiva de teoremas en Coq Beta Ziliani

6

El ITP Coq

Premiado por la ACM:

Teorema de los 4 Colores. (Gonthier et al.)

Teorema del Orden Impar. (Gonthier et al.)

250 paginas + varios volumenes de algebra.

CompCert: compilador optimizado de C.(Leroy et al.)

Google “verified in coq”: 12 millon de hits.

Beta Ziliani Demostracion interactiva de teoremas

Page 10: Demostración interactiva de teoremas en Coq Beta Ziliani

7Beta Ziliani Demostracion interactiva de teoremas

Page 11: Demostración interactiva de teoremas en Coq Beta Ziliani

8

Un teorema sencillo en matematica

Theorem (Conmutatividad de la suma)

∀x , y ∈ N, x + y = y + x

Proof.

Sean x , y dos numeros naturales cualquiera.(1)

Por induccion en x .(2)

Caso x = 0 :(3)

q.v.q. 0 + y = y + 0(4)

por aritmetica y = y . Concluimos por reflexividad.(5)

Caso x = x ′ + 1, asumiendo IH: x ′ + y = y + x ′(6)

q.v.q. (x ′ + 1) + y = y + (x ′ + 1)(7)

por arit. (x ′ + y) + 1 = (y + x ′) + 1.(8)

por HI (y + x ′) + 1 = (y + x ′) + 1. Por refl.(9)

Beta Ziliani Demostracion interactiva de teoremas

Page 12: Demostración interactiva de teoremas en Coq Beta Ziliani

9

Un teorema sencillo en Coq

Theorem nat comm : ∀x y : nat, x + y = y + x .(1)

Proof.(2)

intros x y . (* Sean x, y ... *)(3)

induction x .(4)

−simpl. rewrite nat0. (* por arit. *)(5)

reflexivity. (* por refl. *)(6)

−simpl. rewrite IHx. (* por HI. *)(7)

rewrite natS. reflexivity. (* por arit. y refl. *)(8)

Qed.(9)

Beta Ziliani Demostracion interactiva de teoremas

Page 13: Demostración interactiva de teoremas en Coq Beta Ziliani

10

Un teorema sencillo en Coq automatizado

Theorem nat comm : ∀x y : nat, x + y = y + x .(1)

Proof.(2)

intros x y . (* Sean x, y ... *)(3)

omega. (* por arit. *)(4)

Qed.(5)

omega es una tactica: una receta para resolver ciertosproblemas.

Beta Ziliani Demostracion interactiva de teoremas

Page 14: Demostración interactiva de teoremas en Coq Beta Ziliani

11

Lenguajes de tacticas en Coq

Coq incluye dos lenguajes de tacticas:

OCaml: lenguaje de implementacion de Coq.

Muy bajo nivel.Requiere compilacion y linking.

Ltac: lenguaje dentro de Coq.

Interpretado.No tipado.Semantica extrana.

Beta Ziliani Demostracion interactiva de teoremas

Page 15: Demostración interactiva de teoremas en Coq Beta Ziliani

12

Mi trabajo

Extender Coq con un lenguaje para

programar tacticas tipadas

enmarcado en

Establecer buenas practicas

y herramientas para ITP

con el objetivo de

Verificar desarrollos formales de

logicas, software, y leng. de programacion

Beta Ziliani Demostracion interactiva de teoremas

Page 16: Demostración interactiva de teoremas en Coq Beta Ziliani

13

Mi trabajo hasta hoy

Lemma Overloading (ICFP’11, JFP’13)

Mtac (ICFP’13, JFP’15)

Unificacion (ICFP’15)

Beta Ziliani Demostracion interactiva de teoremas

Page 17: Demostración interactiva de teoremas en Coq Beta Ziliani

14

Proyectos a corto y mediano plazo

MetaCoq con Y. Regis-Gianas (INRIA)

UniCoq con H. Heberlin y M. Sozeau (INRIA)

Verificacion de Logicas Modales

Beta Ziliani Demostracion interactiva de teoremas

Page 18: Demostración interactiva de teoremas en Coq Beta Ziliani

15

Verificacion de Logicas Modales

Verificar las logicas con update de modelo.

Automatizar las traducciones a primer orden.

Estudiar la relacion entre estas y los lenguajesde programacion.

Beta Ziliani Demostracion interactiva de teoremas

Page 19: Demostración interactiva de teoremas en Coq Beta Ziliani

Extender Coq con un lenguaje para

programar tacticas tipadas

enmarcado en

Establecer buenas practicas

y herramientas para ITP

con el objetivo de

Verificar desarrollos formales de

logicas, software, y leng. de programacion