Abstract
IMP2 is a simple imperative language together with Isabelle tooling to
create a program verification environment in Isabelle/HOL. The tools
include a C-like syntax, a verification condition generator, and
Isabelle commands for the specification of programs. The framework is
modular, i.e., it allows easy reuse of already proved programs within
larger programs. This entry comes with a quickstart guide and a large
collection of examples, spanning basic algorithms with simple proofs
to more advanced algorithms and proof techniques like data refinement.
Some highlights from the examples are:
- Bisection Square Root,
- Extended Euclid,
- Exponentiation by Squaring,
- Binary Search,
- Insertion Sort,
- Quicksort,
- Depth First Search.
License
Topics
Session IMP2
- IMP2_Aux_Lemmas
- IMP2_Utils
- Named_Simpsets
- Subgoal_Focus_Some
- Syntax
- Semantics
- Annotated_Syntax
- IMP2_Basic_Simpset
- Parser
- IMP2_Basic_Decls
- IMP2_Program_Analysis
- IMP2_Var_Postprocessor
- IMP2_Var_Abs
- IMP2_VCG
- IMP2_Specification
- IMP2
- Quickstart_Guide
- IMP2_from_IMP
- Examples