diff options
author | Son Ho | 2022-02-10 00:23:09 +0100 |
---|---|---|
committer | Son Ho | 2022-02-10 00:23:09 +0100 |
commit | 2c006afdfd54456cbd55e66e4b0c25e31957573b (patch) | |
tree | ad6db2bf05cef4a53ba553600eff731c12dedbaa /tests | |
parent | 469b6b3c91b0e05df9c5ab64f7590015d3ef4cba (diff) |
Start working on the hash map proofs
Diffstat (limited to '')
-rw-r--r-- | tests/Hashmap.Clauses.fst | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/Hashmap.Clauses.fst b/tests/Hashmap.Clauses.fst new file mode 100644 index 00000000..ef7793f1 --- /dev/null +++ b/tests/Hashmap.Clauses.fst @@ -0,0 +1,59 @@ +(** [hashmap]: the decreases clauses *) +module Hashmap.Clauses +open Primitives +open FStar.List.Tot +open Hashmap.Types + +#set-options "--z3rlimit 50 --fuel 0 --ifuel 1" + +(*** Utilities *) + +(*** The clauses *) + +(** [hashmap::HashMap::allocate_slots]: decreases clause *) +unfold +let hash_map_allocate_slots_decreases (t : Type0) (slots : vec (list_t t)) + (n : usize) : nat = n + +(** [hashmap::HashMap::clear_slots]: decreases clause *) +unfold +let hash_map_clear_slots_decreases (t : Type0) (slots : vec (list_t t)) + (i : usize) : nat = + if i < length slots then length slots - i else 0 + +(** [hashmap::HashMap::insert_in_list]: decreases clause *) +unfold +let hash_map_insert_in_list_decreases (t : Type0) (key : usize) (value : t) + (ls : list_t t) : list_t t = + ls + +(** [hashmap::HashMap::move_elements_from_list]: decreases clause *) +unfold +let hash_map_move_elements_from_list_decreases (t : Type0) + (ntable : hash_map_t t) (ls : list_t t) : list_t t = + ls + +(** [hashmap::HashMap::move_elements]: decreases clause *) +unfold +let hash_map_move_elements_decreases (t : Type0) (ntable : hash_map_t t) + (slots : vec (list_t t)) (i : usize) : nat = + if i < length slots then length slots - i else 0 + +(** [hashmap::HashMap::get_in_list]: decreases clause *) +unfold +let hash_map_get_in_list_decreases (t : Type0) (key : usize) (ls : list_t t) : + list_t t = + ls + +(** [hashmap::HashMap::get_mut_in_list]: decreases clause *) +unfold +let hash_map_get_mut_in_list_decreases (t : Type0) (key : usize) + (ls : list_t t) : list_t t = + ls + +(** [hashmap::HashMap::remove_from_list]: decreases clause *) +unfold +let hash_map_remove_from_list_decreases (t : Type0) (key : usize) + (ls : list_t t) : list_t t = + ls + |