Abstract
The presented formalization follows Chapter 20 of the popular Introduction to Algorithms (3rd ed.) by Cormen, Leiserson, Rivest and Stein (CLRS), extending the list of formally verified CLRS algorithms. Our current formalization is based on the first author's bachelor's thesis.
First, we prove correct a functional implementation, w.r.t. an abstract data type for sets. Apart from functional correctness, we show a resource bound, and runtime bounds w.r.t. manually defined timing functions for the operations.
Next, we refine the operations to Imperative HOL with time, and show correctness and complexity. This yields a practically more efficient implementation, and eliminates the manually defined timing functions from the trusted base of the proof.
License
Topics
Session Van_Emde_Boas_Trees
- Heap_Time_Monad
- Array_Time
- Ref_Time
- Imperative_HOL_Time
- Syntax_Match
- Assertions
- Hoare_Triple
- Refine_Imp_Hol
- Automation
- Sep_Main
- Imperative_HOL_Add
- Time_Reasoning
- Simple_TBOUND_Cond
- VEBT_Example_Setup
- VEBT_Definitions
- VEBT_Member
- VEBT_Insert
- VEBT_InsertCorrectness
- VEBT_MinMax
- VEBT_Succ
- VEBT_Pred
- VEBT_Delete
- VEBT_DeleteCorrectness
- VEBT_Uniqueness
- VEBT_Height
- VEBT_Bounds
- VEBT_DeleteBounds
- VEBT_Space
- VEBT_Intf_Functional
- VEBT_List_Assn
- VEBT_BuildupMemImp
- VEBT_SuccPredImperative
- VEBT_DelImperative
- VEBT_Intf_Imperative
- VEBT_Example