Ssreflect: Structured Scripting for Higher-Order Theorem Proving
----------------------------------------------------------------
The name Ssreflect stands for "small scale reflection", a style of
proof that evolved from the computer-checked proof of the Four Colour
Theorem and which leverages the higher-order nature of Coq's
underlying logic to provide effective automation for many small,
clerical proof steps. This is often accomplished by restating
("reflecting") problems in a more concrete form, hence the name.
While reflection is entirely implemented as a Coq theory library, the
Ssreflect proof scripting language provides essential support,
supplying the structure for building large proofs based on this
higer-order library, with features such
- tacticals for most structural operations (e.g., moving assumptions),
so that script steps mostly match logical steps.
- support for structured layout, including reordering subgoals and
supporting "without loss of generality" arguments.
- extensive support for rewriting, including a new algorithm for
higher-order matching and surgical control over where and how much
rewriting occurs.
In this talk we will explore the rationale behind the language and
show how it complements the reflection theory library.