Demostracion interactiva
de teoremas en Coq
Beta Ziliani
CONICET / LIIS, FaMAF, UNC
FACAS 2016
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
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
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
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
3
Demostrar y revisar
Demostrar un teorema requiere ingenio eintuicion.
} Humano
Revisar una prueba requiere sistematizacion ypaciencia.
} Computadora
Beta Ziliani Demostracion interactiva de teoremas
3
Demostrar y revisar
Demostrar un teorema requiere ingenio eintuicion. } Humano
Revisar una prueba requiere sistematizacion ypaciencia. } Computadora
Beta Ziliani Demostracion interactiva de teoremas
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
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
7Beta Ziliani Demostracion interactiva de teoremas
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
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
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
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
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
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
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
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
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