diff options
| author | Son HO | 2023-07-31 16:15:58 +0200 |
|---|---|---|
| committer | GitHub | 2023-07-31 16:15:58 +0200 |
| commit | 887d0ef1efc8912c6273b5ebcf979384e9d7fa97 (patch) | |
| tree | 92d6021eb549f7cc25501856edd58859786b7e90 /tests/lean/misc-external/External | |
| parent | 53adf30fe440eb8b6f58ba89f4a4c0acc7877498 (diff) | |
| parent | 9b3a58e423333fc9a4a5a264c3beb0a3d951e86b (diff) | |
Merge pull request #31 from AeneasVerif/son_lean_backend
Improve the Lean backend
Diffstat (limited to '')
| -rw-r--r-- | tests/lean/External.lean (renamed from tests/lean/misc-external/External.lean) | 0 | ||||
| -rw-r--r-- | tests/lean/External/Types.lean (renamed from tests/lean/misc-external/External/Types.lean) | 7 | ||||
| -rw-r--r-- | tests/lean/misc-external/External/ExternalFuns.lean | 5 | ||||
| -rw-r--r-- | tests/lean/misc-external/External/Funs.lean | 84 | ||||
| -rw-r--r-- | tests/lean/misc-external/External/Opaque.lean | 27 |
5 files changed, 5 insertions, 118 deletions
diff --git a/tests/lean/misc-external/External.lean b/tests/lean/External.lean index b95db309..b95db309 100644 --- a/tests/lean/misc-external/External.lean +++ b/tests/lean/External.lean diff --git a/tests/lean/misc-external/External/Types.lean b/tests/lean/External/Types.lean index ed1842be..ba984e2a 100644 --- a/tests/lean/misc-external/External/Types.lean +++ b/tests/lean/External/Types.lean @@ -1,10 +1,13 @@ -- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS -- [external]: type definitions -import Base.Primitives +import Base +open Primitives +namespace external /- [core::num::nonzero::NonZeroU32] -/ -axiom core_num_nonzero_non_zero_u32_t : Type +axiom core.num.nonzero.NonZeroU32 : Type /- The state type used in the state-error monad -/ axiom State : Type +end external diff --git a/tests/lean/misc-external/External/ExternalFuns.lean b/tests/lean/misc-external/External/ExternalFuns.lean deleted file mode 100644 index 6bd4f4a9..00000000 --- a/tests/lean/misc-external/External/ExternalFuns.lean +++ /dev/null @@ -1,5 +0,0 @@ -import Base.Primitives -import External.Types -import External.Opaque - -def opaque_defs : OpaqueDefs := sorry diff --git a/tests/lean/misc-external/External/Funs.lean b/tests/lean/misc-external/External/Funs.lean deleted file mode 100644 index eeb83989..00000000 --- a/tests/lean/misc-external/External/Funs.lean +++ /dev/null @@ -1,84 +0,0 @@ --- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS --- [external]: function definitions -import Base.Primitives -import External.Types -import External.ExternalFuns - -/- [external::swap] -/ -def swap_fwd - (T : Type) (x : T) (y : T) (st : State) : Result (State × Unit) := - do - let (st0, _) ← opaque_defs.core_mem_swap_fwd T x y st - let (st1, _) ← opaque_defs.core_mem_swap_back0 T x y st st0 - let (st2, _) ← opaque_defs.core_mem_swap_back1 T x y st st1 - Result.ret (st2, ()) - -/- [external::swap] -/ -def swap_back - (T : Type) (x : T) (y : T) (st : State) (st0 : State) : - Result (State × (T × T)) - := - do - let (st1, _) ← opaque_defs.core_mem_swap_fwd T x y st - let (st2, x0) ← opaque_defs.core_mem_swap_back0 T x y st st1 - let (_, y0) ← opaque_defs.core_mem_swap_back1 T x y st st2 - Result.ret (st0, (x0, y0)) - -/- [external::test_new_non_zero_u32] -/ -def test_new_non_zero_u32_fwd - (x : U32) (st : State) : Result (State × core_num_nonzero_non_zero_u32_t) := - do - let (st0, opt) ← opaque_defs.core_num_nonzero_non_zero_u32_new_fwd x st - opaque_defs.core_option_option_unwrap_fwd core_num_nonzero_non_zero_u32_t - opt st0 - -/- [external::test_vec] -/ -def test_vec_fwd : Result Unit := - do - let v := vec_new U32 - let _ ← vec_push_back U32 v (U32.ofInt 0 (by intlit)) - Result.ret () - -/- [external::custom_swap] -/ -def custom_swap_fwd - (T : Type) (x : T) (y : T) (st : State) : Result (State × T) := - do - let (st0, _) ← opaque_defs.core_mem_swap_fwd T x y st - let (st1, x0) ← opaque_defs.core_mem_swap_back0 T x y st st0 - let (st2, _) ← opaque_defs.core_mem_swap_back1 T x y st st1 - Result.ret (st2, x0) - -/- [external::custom_swap] -/ -def custom_swap_back - (T : Type) (x : T) (y : T) (st : State) (ret0 : T) (st0 : State) : - Result (State × (T × T)) - := - do - let (st1, _) ← opaque_defs.core_mem_swap_fwd T x y st - let (st2, _) ← opaque_defs.core_mem_swap_back0 T x y st st1 - let (_, y0) ← opaque_defs.core_mem_swap_back1 T x y st st2 - Result.ret (st0, (ret0, y0)) - -/- [external::test_custom_swap] -/ -def test_custom_swap_fwd - (x : U32) (y : U32) (st : State) : Result (State × Unit) := - do - let (st0, _) ← custom_swap_fwd U32 x y st - Result.ret (st0, ()) - -/- [external::test_custom_swap] -/ -def test_custom_swap_back - (x : U32) (y : U32) (st : State) (st0 : State) : - Result (State × (U32 × U32)) - := - custom_swap_back U32 x y st (U32.ofInt 1 (by intlit)) st0 - -/- [external::test_swap_non_zero] -/ -def test_swap_non_zero_fwd (x : U32) (st : State) : Result (State × U32) := - do - let (st0, _) ← swap_fwd U32 x (U32.ofInt 0 (by intlit)) st - let (st1, (x0, _)) ← swap_back U32 x (U32.ofInt 0 (by intlit)) st st0 - if h: x0 = (U32.ofInt 0 (by intlit)) - then Result.fail Error.panic - else Result.ret (st1, x0) - diff --git a/tests/lean/misc-external/External/Opaque.lean b/tests/lean/misc-external/External/Opaque.lean deleted file mode 100644 index d641912b..00000000 --- a/tests/lean/misc-external/External/Opaque.lean +++ /dev/null @@ -1,27 +0,0 @@ --- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS --- [external]: opaque function definitions -import Base.Primitives -import External.Types - -structure OpaqueDefs where - - /- [core::mem::swap] -/ - core_mem_swap_fwd (T : Type) : T -> T -> State -> Result (State × Unit) - - /- [core::mem::swap] -/ - core_mem_swap_back0 - (T : Type) : T -> T -> State -> State -> Result (State × T) - - /- [core::mem::swap] -/ - core_mem_swap_back1 - (T : Type) : T -> T -> State -> State -> Result (State × T) - - /- [core::num::nonzero::NonZeroU32::{14}::new] -/ - core_num_nonzero_non_zero_u32_new_fwd - : - U32 -> State -> Result (State × (Option core_num_nonzero_non_zero_u32_t)) - - /- [core::option::Option::{0}::unwrap] -/ - core_option_option_unwrap_fwd - (T : Type) : Option T -> State -> Result (State × T) - |
