Coquet: A Coq library for verifying hardware
Thomas Braibant
Inria Rhˆ
- ne-Alpes - Universit´
e Joseph Fourier - LIG
Octobre 2011
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 1 / 34
Coquet: A Coq library for verifying hardware Thomas Braibant Inria - - PowerPoint PPT Presentation
Coquet: A Coq library for verifying hardware Thomas Braibant Inria Rh one-Alpes - Universit e Joseph Fourier - LIG Octobre 2011 Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 1 / 34 Formalising circuits in
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 1 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 2 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 2 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 2 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 2 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 2 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 3 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 4 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 5 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 5 / 34
NOR AND AND
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 6 / 34
NOR AND AND
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 6 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 7 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 8 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 9 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 9 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 9 / 34
1n
a
1n
b
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 9 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 10 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 11 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 11 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 12 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 13 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 14 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 14 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 15 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 16 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 16 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 16 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 16 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 16 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 16 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 17 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 17 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 18 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 19 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 20 / 34
H L H L FADD ADD (n-1) C O M B I N E a0 b0 b0...n b1...n a1...n a0...n sum0...n sum1...n sum0 cin cout
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 21 / 34
H L H L FADD ADD (n-1) C O M B I N E a0 b0 b0...n b1...n a1...n a0...n sum0...n sum1...n sum0 cin cout
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 22 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 23 / 34
∧ ∧ ¬ ¬
∧
∧ ∨ ∨ ∨
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 24 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 25 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 26 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 27 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 27 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 28 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 29 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 29 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 29 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 30 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 31 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 31 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 32 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 33 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 34 / 34
Thomas Braibant (LIG) Coquet: A Coq library for verifying hardware 10/2011 34 / 34