summaryrefslogtreecommitdiff
path: root/tests/misc/External.Funs.fst
blob: 927dad9c86e0887041025520b89db8dde9454193 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
(** THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS *)
(** [external]: function definitions *)
module External.Funs
open Primitives
include External.Types
include External.Opaque

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

(** [external::swap] *)
let swap_fwd (t : Type0) (x : t) (y : t) (st : state) : result (state & unit) =
  begin match core_mem_swap_fwd t x y st with
  | Fail -> Fail
  | Return (st0, _) -> Return (st0, ())
  end

(** [external::swap] *)
let swap_back
  (t : Type0) (x : t) (y : t) (st : state) : result (state & (t & t)) =
  begin match core_mem_swap_back0 t x y st with
  | Fail -> Fail
  | Return (st0, x0) ->
    begin match core_mem_swap_back1 t x y st0 with
    | Fail -> Fail
    | Return (st1, x1) -> Return (st1, (x0, x1))
    end
  end

(** [external::test_new_non_zero_u32] *)
let test_new_non_zero_u32_fwd
  (x : u32) (st : state) : result (state & core_num_nonzero_non_zero_u32_t) =
  begin match core_num_nonzero_non_zero_u32_14_new_fwd x st with
  | Fail -> Fail
  | Return (st0, opt) ->
    begin match
      core_option_option_unwrap_fwd core_num_nonzero_non_zero_u32_t opt st0
      with
    | Fail -> Fail
    | Return (st1, nzu) -> Return (st1, nzu)
    end
  end

(** [external::test_vec] *)
let test_vec_fwd (st : state) : result (state & unit) =
  let v = vec_new u32 in
  begin match vec_push_back u32 v 0 with
  | Fail -> Fail
  | Return _ -> Return (st, ())
  end