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

Demostración interactiva de teoremas en Coq Beta Ziliani

Jan 06, 2017

Download

Documents

truongnhu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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