  We propose a new library to model and verify hardware circuits in the Coq
proof assistant. This library allows one to easily build circuits by following
the usual pen-and-paper diagrams. We define a deep-embedding: we use a
(dependently typed) data-type that models the architecture of circuits, and a
meaning function. We propose tactics that ease the reasoning about the behavior
of the circuits, and we demonstrate that our approach is practicable by proving
the correctness of various circuits: a text-book divide and conquer adder of
parametric size, some higher-order combinators of circuits, and some sequential
circuits: a buffer, and a register.

Logic in Computer Science