We describe three case studies illustrating the use of ACL2s to prove the
correctness of optimized reactive systems using skipping refinement. Reasoning
about reactive systems using refinement involves defining an abstract,
high-level specification system and a concrete, low-level system. Next, one
shows that the behaviors of the implementation system are allowed by the
specification system. Skipping refinement allows us to reason about
implementation systems that can "skip" specification states due to
optimizations that allow the implementation system to take several
specification steps at once. Skipping refinement also allows implementation
systems to, i.e., to take several steps before completing a specification step.
We show how ACL2s can be used to prove skipping refinement theorems by modeling
and proving the correctness of three systems: a JVM-inspired stack machine, a
simple memory controller, and a scalar to vector compiler transformation.Comment: In Proceedings ACL2 2015, arXiv:1509.05526. arXiv admin note: text
overlap with arXiv:1502.0294