diff options
Diffstat (limited to '')
-rw-r--r-- | tests/lean/PoloniusList.lean | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/lean/PoloniusList.lean b/tests/lean/PoloniusList.lean new file mode 100644 index 00000000..1453c275 --- /dev/null +++ b/tests/lean/PoloniusList.lean @@ -0,0 +1,34 @@ +-- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS +-- [polonius_list] +import Base +open Primitives +namespace polonius_list + +/- [polonius_list::List] -/ +inductive List (T : Type) := +| Cons : T → List T → List T +| Nil : List T + +/- [polonius_list::get_list_at_x]: forward function -/ +divergent def get_list_at_x (ls : List U32) (x : U32) : Result (List U32) := + match ls with + | List.Cons hd tl => + if hd = x + then Result.ret (List.Cons hd tl) + else get_list_at_x tl x + | List.Nil => Result.ret List.Nil + +/- [polonius_list::get_list_at_x]: backward function 0 -/ +divergent def get_list_at_x_back + (ls : List U32) (x : U32) (ret0 : List U32) : Result (List U32) := + match ls with + | List.Cons hd tl => + if hd = x + then Result.ret ret0 + else + do + let tl0 ← get_list_at_x_back tl x ret0 + Result.ret (List.Cons hd tl0) + | List.Nil => Result.ret ret0 + +end polonius_list |