summaryrefslogtreecommitdiff
path: root/tests/fstar/arrays/Arrays.Clauses.fst
blob: f314eabf29cf1e440263fb6605ef7e28e4c8b868 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(** [arrays]: decreases clauses *)
module Arrays.Clauses
open Primitives
open Arrays.Types
open FStar.List.Tot

#set-options "--z3rlimit 50 --fuel 1 --ifuel 1"

(** [arrays::sum]: decreases clause *)
unfold
let sum_loop_decreases (s : slice u32) (sum : u32) (i : usize) : nat =
  if i < length s then length s - i else 0

(** [arrays::sum2]: decreases clause *)
unfold
let sum2_loop_decreases (s : slice u32) (s2 : slice u32) (sum : u32)
  (i : usize) : nat =
  if i < length s then length s - i else 0

(** [arrays::zero_slice]: decreases clause
    Source: 'src/arrays.rs', lines 303:0-310:1 *)
unfold
let zero_slice_loop_decreases (a : slice u8) (i : usize) (len : usize) : nat =
  if i < len then len - i else 0

(** [arrays::iter_mut_slice]: decreases clause
    Source: 'src/arrays.rs', lines 312:0-318:1 *)
unfold
let iter_mut_slice_loop_decreases (len : usize) (i : usize) : nat =
  if i < len then len - i else 0

(** [arrays::sum_mut_slice]: decreases clause
    Source: 'src/arrays.rs', lines 320:0-328:1 *)
unfold
let sum_mut_slice_loop_decreases (a : slice u32) (i : usize) (s : u32) : nat =
  if i < slice_len u32 a then slice_len u32 a - i else 0