Abstract
We provide a framework for program and data refinement in Isabelle/HOL.
The framework is based on a nondeterminism-monad with assertions, i.e.,
the monad carries a set of results or an assertion failure.
Recursion is expressed by fixed points. For convenience, we also provide
while and foreach combinators.
The framework provides tools to automatize canonical tasks, such as verification condition generation, finding appropriate data refinement relations, and refine an executable program to a form that is accepted by the Isabelle/HOL code generator.
This submission comes with a collection of examples and a user-guide, illustrating the usage of the framework.
License
Topics
Session Refine_Monadic
- Refine_Chapter
- Refine_Mono_Prover
- Refine_Misc
- RefineG_Transfer
- RefineG_Domain
- RefineG_Recursion
- RefineG_Assert
- Refine_Basic
- Refine_Leof
- Refine_Heuristics
- Refine_More_Comb
- RefineG_While
- Refine_While
- Refine_Det
- Refine_Pfun
- Refine_Transfer
- Refine_Foreach
- Refine_Automation
- Autoref_Monadic
- Refine_Monadic
- Example_Chapter
- Breadth_First_Search
- WordRefine
- Examples