summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSon Ho2022-02-10 00:23:09 +0100
committerSon Ho2022-02-10 00:23:09 +0100
commit2c006afdfd54456cbd55e66e4b0c25e31957573b (patch)
treead6db2bf05cef4a53ba553600eff731c12dedbaa /tests
parent469b6b3c91b0e05df9c5ab64f7590015d3ef4cba (diff)
Start working on the hash map proofs
Diffstat (limited to '')
-rw-r--r--tests/Hashmap.Clauses.fst59
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
+