Welcome

Welcome to iCoq home page. iCoq is a tool for
regression proof selection for
large-scale Coq
verification projects, suitable for use with
continuous integration services,
e.g., Travis CI
(or locally).

Abstract

Proof assistants such as Coq are used to construct and
check formal proofs in many large-scale verification
projects. As proofs grow in number and size, the need
for tool support to quickly find failing proofs after
revising a project increases. We present a technique
for large-scale regression proof selection, suitable
for use in continuous integration services, e.g.,
Travis CI. We instantiate the technique in a tool
dubbed iCoq. iCoq tracks fine-grained dependencies
between Coq definitions, propositions, and proofs, and
only checks those proofs affected by changes between
two revisions. iCoq additionally saves time by
ignoring changes with no impact on semantics. We
applied iCoq to track dependencies across many
revisions in several large Coq projects and measured
the time savings compared to proof checking from
scratch and when using Coq's timestamp-based toolchain
for incremental checking. Our results show that proof
checking with iCoq is up to 10 times faster than the
former and up to 3 times faster than the latter.