blob: 2bac07b6c98341d7fb3e8abd3302977e68ad2f67 (
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
|
(** THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS *)
(** [betree_polonius] *)
module BetreePolonius
open Primitives
#set-options "--z3rlimit 50 --fuel 1 --ifuel 1"
(** [betree_polonius::List] *)
type list_t (t : Type0) =
| ListCons : t -> list_t t -> list_t t
| ListNil : list_t t
(** [betree_polonius::get_list_at_x] *)
let rec get_list_at_x_fwd (ls : list_t u32) (x : u32) : result (list_t u32) =
begin match ls with
| ListCons hd tl ->
if hd = x
then Return (ListCons hd tl)
else
begin match get_list_at_x_fwd tl x with
| Fail -> Fail
| Return l -> Return l
end
| ListNil -> Return ListNil
end
(** [betree_polonius::get_list_at_x] *)
let rec get_list_at_x_back
(ls : list_t u32) (x : u32) (ret : list_t u32) : result (list_t u32) =
begin match ls with
| ListCons hd tl ->
if hd = x
then Return ret
else
begin match get_list_at_x_back tl x ret with
| Fail -> Fail
| Return tl0 -> Return (ListCons hd tl0)
end
| ListNil -> Return ret
end
|