summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/FunsAnalysis.ml2
-rw-r--r--tests/betree/BetreeMain.Clauses.Template.fst4
-rw-r--r--tests/betree/BetreeMain.Funs.fst7
-rw-r--r--tests/betree/BetreeMain.Types.fsti4
-rw-r--r--tests/hashmap_on_disk/HashmapMain.Clauses.Template.fst4
-rw-r--r--tests/hashmap_on_disk/HashmapMain.Funs.fst21
-rw-r--r--tests/hashmap_on_disk/HashmapMain.Types.fsti4
7 files changed, 30 insertions, 16 deletions
diff --git a/src/FunsAnalysis.ml b/src/FunsAnalysis.ml
index 65a130c8..39fa316d 100644
--- a/src/FunsAnalysis.ml
+++ b/src/FunsAnalysis.ml
@@ -94,7 +94,7 @@ let analyze_module (m : llbc_module)
super#visit_Loop env loop
end
in
- assert (not f.is_global_body || not use_state);
+ assert (not f.is_global_body || not !stateful);
(match f.body with
| None ->
(* Opaque function *)
diff --git a/tests/betree/BetreeMain.Clauses.Template.fst b/tests/betree/BetreeMain.Clauses.Template.fst
index 5a9776ab..c2412775 100644
--- a/tests/betree/BetreeMain.Clauses.Template.fst
+++ b/tests/betree/BetreeMain.Clauses.Template.fst
@@ -6,6 +6,10 @@ open BetreeMain.Types
#set-options "--z3rlimit 50 --fuel 1 --ifuel 1"
+(** [core::num::u64::{9}::MAX] *)
+let core_num_u64_max_body : result u64 = Return 18446744073709551615
+let core_num_u64_max_c : u64 = eval_global core_num_u64_max_body
+
(** [betree_main::betree::List::{1}::len]: decreases clause *)
unfold
let betree_list_len_decreases (t : Type0) (self : betree_list_t t) : nat =
diff --git a/tests/betree/BetreeMain.Funs.fst b/tests/betree/BetreeMain.Funs.fst
index 4761b6a3..e80e96a6 100644
--- a/tests/betree/BetreeMain.Funs.fst
+++ b/tests/betree/BetreeMain.Funs.fst
@@ -96,17 +96,16 @@ let betree_upsert_update_fwd
| Some prev0 ->
begin match st with
| BetreeUpsertFunStateAdd v ->
- let i = core_num_u64_max_c in
- begin match u64_sub i prev0 with
+ begin match u64_sub core_num_u64_max_c prev0 with
| Fail -> Fail
| Return margin ->
if margin >= v
then
begin match u64_add prev0 v with
| Fail -> Fail
- | Return i0 -> Return i0
+ | Return i -> Return i
end
- else let i0 = core_num_u64_max_c in Return i0
+ else Return core_num_u64_max_c
end
| BetreeUpsertFunStateSub v ->
if prev0 >= v
diff --git a/tests/betree/BetreeMain.Types.fsti b/tests/betree/BetreeMain.Types.fsti
index aad9cb43..f0ca1d9e 100644
--- a/tests/betree/BetreeMain.Types.fsti
+++ b/tests/betree/BetreeMain.Types.fsti
@@ -55,6 +55,10 @@ type betree_be_tree_t =
betree_be_tree_root : betree_node_t;
}
+(** [core::num::u64::{9}::MAX] *)
+let core_num_u64_max_body : result u64 = Return 18446744073709551615
+let core_num_u64_max_c : u64 = eval_global core_num_u64_max_body
+
(** The state type used in the state-error monad *)
val state : Type0
diff --git a/tests/hashmap_on_disk/HashmapMain.Clauses.Template.fst b/tests/hashmap_on_disk/HashmapMain.Clauses.Template.fst
index 3c5ee819..0cf876d9 100644
--- a/tests/hashmap_on_disk/HashmapMain.Clauses.Template.fst
+++ b/tests/hashmap_on_disk/HashmapMain.Clauses.Template.fst
@@ -24,6 +24,10 @@ let hashmap_hash_map_insert_in_list_decreases (t : Type0) (key : usize)
(value : t) (ls : hashmap_list_t t) : nat =
admit ()
+(** [core::num::u32::{8}::MAX] *)
+let core_num_u32_max_body : result u32 = Return 4294967295
+let core_num_u32_max_c : u32 = eval_global core_num_u32_max_body
+
(** [hashmap_main::hashmap::HashMap::{0}::move_elements_from_list]: decreases clause *)
unfold
let hashmap_hash_map_move_elements_from_list_decreases (t : Type0)
diff --git a/tests/hashmap_on_disk/HashmapMain.Funs.fst b/tests/hashmap_on_disk/HashmapMain.Funs.fst
index 1d8ee3da..83bf80d1 100644
--- a/tests/hashmap_on_disk/HashmapMain.Funs.fst
+++ b/tests/hashmap_on_disk/HashmapMain.Funs.fst
@@ -261,24 +261,23 @@ let rec hashmap_hash_map_move_elements_fwd_back
(** [hashmap_main::hashmap::HashMap::{0}::try_resize] *)
let hashmap_hash_map_try_resize_fwd_back
(t : Type0) (self : hashmap_hash_map_t t) : result (hashmap_hash_map_t t) =
- let i = core_num_u32_max_c in
- begin match scalar_cast U32 Usize i with
+ begin match scalar_cast U32 Usize core_num_u32_max_c with
| Fail -> Fail
| Return max_usize ->
let capacity = vec_len (hashmap_list_t t) self.hashmap_hash_map_slots in
begin match usize_div max_usize 2 with
| Fail -> Fail
| Return n1 ->
- let (i0, i1) = self.hashmap_hash_map_max_load_factor in
- begin match usize_div n1 i0 with
+ let (i, i0) = self.hashmap_hash_map_max_load_factor in
+ begin match usize_div n1 i with
| Fail -> Fail
- | Return i2 ->
- if capacity <= i2
+ | Return i1 ->
+ if capacity <= i1
then
begin match usize_mul capacity 2 with
| Fail -> Fail
- | Return i3 ->
- begin match hashmap_hash_map_new_with_capacity_fwd t i3 i0 i1 with
+ | Return i2 ->
+ begin match hashmap_hash_map_new_with_capacity_fwd t i2 i i0 with
| Fail -> Fail
| Return ntable ->
begin match
@@ -287,14 +286,14 @@ let hashmap_hash_map_try_resize_fwd_back
| Fail -> Fail
| Return (ntable0, _) ->
Return (Mkhashmap_hash_map_t self.hashmap_hash_map_num_entries
- (i0, i1) ntable0.hashmap_hash_map_max_load
+ (i, i0) ntable0.hashmap_hash_map_max_load
ntable0.hashmap_hash_map_slots)
end
end
end
else
- Return (Mkhashmap_hash_map_t self.hashmap_hash_map_num_entries (i0,
- i1) self.hashmap_hash_map_max_load self.hashmap_hash_map_slots)
+ Return (Mkhashmap_hash_map_t self.hashmap_hash_map_num_entries (i,
+ i0) self.hashmap_hash_map_max_load self.hashmap_hash_map_slots)
end
end
end
diff --git a/tests/hashmap_on_disk/HashmapMain.Types.fsti b/tests/hashmap_on_disk/HashmapMain.Types.fsti
index e289174b..370844db 100644
--- a/tests/hashmap_on_disk/HashmapMain.Types.fsti
+++ b/tests/hashmap_on_disk/HashmapMain.Types.fsti
@@ -19,6 +19,10 @@ type hashmap_hash_map_t (t : Type0) =
hashmap_hash_map_slots : vec (hashmap_list_t t);
}
+(** [core::num::u32::{8}::MAX] *)
+let core_num_u32_max_body : result u32 = Return 4294967295
+let core_num_u32_max_c : u32 = eval_global core_num_u32_max_body
+
(** The state type used in the state-error monad *)
val state : Type0