Coq
LASER 2011 Summerschool Elba Island, Italy Christine Paulin-Mohring
Université Paris Sud & INRIA Saclay - Île-de-France
September 2011
- C. Paulin (Paris-Sud)
Coq
- Sept. 2011
1 / 22
Coq LASER 2011 Summerschool Elba Island, Italy Christine - - PowerPoint PPT Presentation
Coq LASER 2011 Summerschool Elba Island, Italy Christine Paulin-Mohring Universit Paris Sud & INRIA Saclay - le-de-France September 2011 C. Paulin (Paris-Sud) Coq Sept. 2011 1 / 22 Introduction Outline Introduction What is C OQ ?
Coq
1 / 22
Introduction
Coq
2 / 22
Introduction What is COQ ?
◮ defining objects (integers, sets, trees, functions, programs . . . ) ◮ make statements (predicates) ◮ write proofs
◮ of definitions (well-formed sets, terminating functions . . . ) ◮ of proofs
◮ advanced notations ◮ proof search ◮ modular developments ◮ program extraction
Coq
3 / 22
Introduction What is COQ ?
◮ Fundamental theorem of Algebra (Barendregt et al) ◮ Feit-Thompson theorem on finite groups (INRIA-Microsoft
◮ Four color theorem (Gonthier-Werner) ◮ Primality checker (Théry et al) ◮ A Wave Equation Resolution Scheme (Boldo et al)
◮ JavaCard architecture (Gemalto-Trusted Logic, EAL7 certification) ◮ Certified optimizing compiler for C (Leroy et al) ◮ Formal Proofs for Computational Cryptography (Barthe et al) ◮ Ynot library: imperative programs-separation logic (Morrisett and al)
Coq
4 / 22
Introduction What is COQ ?
◮ Similar to Epigram, Matita, . . . also Agda, NuPrl . . . ◮ Intentional behavior:
◮ Strong correspondance between proofs and programs.
Coq
5 / 22
Introduction What is COQ ?
◮ Official distribution (multi-platform), Reference manual ◮ Libraries and User’s contributions
◮ Software foundations by B. Pierce and al.
◮ Certified Programming with Dependent Types by A. Chlipala.
Coq
6 / 22
Introduction What is COQ ?
Coq
7 / 22
Introduction What is COQ ?
Coq
8 / 22
Introduction What is COQ ?
Coq
9 / 22
Introduction Example
4 3 2 1 −1 −2 −3 −4 2 1 −1 −2
2
♠❡t❤♦❞ ❡rr♦r
✵①✶♣✲✺ 0.0312500000 ✵①✶✳❢❢❢♣✲✻ 0.0312461853 ✵①✶✳❢❢❡♣✲✻ 0.0312423706 ✵①✶✳❢❢❞♣✲✻ 0.0312385559 ✵①✶✳❢❢❝♣✲✻ 0.0312347412 ✵①✶✳❢❢❝✵✶✹♣✲✶ 0.9995123148 ✵①✶✳❢❢❝✵✵❝♣✲✶ 0.9995120764 ✵①✶✳❢❢❝✵✵✹♣✲✶ 0.9995118380
1 32
Coq
10 / 22
Introduction Example
Coq
11 / 22