summaryrefslogtreecommitdiff
path: root/tests/lean/External
diff options
context:
space:
mode:
authorSon Ho2023-11-29 14:26:04 +0100
committerSon Ho2023-11-29 14:26:04 +0100
commit0273fee7f6b74da1d3b66c3c6a2158c012d04197 (patch)
tree5f6db32814f6f0b3a98f2de1db39225ff2c7645d /tests/lean/External
parentf4e2c2bb09d9d7b54afc0692b7f690f5ec2eb029 (diff)
parent90e42e0e1c1889aabfa66283fb15b43a5852a02a (diff)
Merge branch 'main' into afromher_shifts
Diffstat (limited to '')
-rw-r--r--tests/lean/External/Funs.lean51
-rw-r--r--tests/lean/External/FunsExternal_Template.lean15
-rw-r--r--tests/lean/External/Types.lean7
-rw-r--r--tests/lean/External/TypesExternal.lean11
-rw-r--r--tests/lean/External/TypesExternal_Template.lean13
5 files changed, 65 insertions, 32 deletions
diff --git a/tests/lean/External/Funs.lean b/tests/lean/External/Funs.lean
index 055d7860..48ec6ad5 100644
--- a/tests/lean/External/Funs.lean
+++ b/tests/lean/External/Funs.lean
@@ -7,7 +7,8 @@ open Primitives
namespace external
-/- [external::swap]: forward function -/
+/- [external::swap]: forward function
+ Source: 'src/external.rs', lines 6:0-6:46 -/
def swap (T : Type) (x : T) (y : T) (st : State) : Result (State × Unit) :=
do
let (st0, _) ← core.mem.swap T x y st
@@ -15,7 +16,8 @@ def swap (T : Type) (x : T) (y : T) (st : State) : Result (State × Unit) :=
let (st2, _) ← core.mem.swap_back1 T x y st st1
Result.ret (st2, ())
-/- [external::swap]: backward function 0 -/
+/- [external::swap]: backward function 0
+ Source: 'src/external.rs', lines 6:0-6:46 -/
def swap_back
(T : Type) (x : T) (y : T) (st : State) (st0 : State) :
Result (State × (T × T))
@@ -26,24 +28,27 @@ def swap_back
let (_, y0) ← core.mem.swap_back1 T x y st st2
Result.ret (st0, (x0, y0))
-/- [external::test_new_non_zero_u32]: forward function -/
+/- [external::test_new_non_zero_u32]: forward function
+ Source: 'src/external.rs', lines 11:0-11:60 -/
def test_new_non_zero_u32
(x : U32) (st : State) : Result (State × core.num.nonzero.NonZeroU32) :=
do
- let (st0, opt) ← core.num.nonzero.NonZeroU32.new x st
- core.option.Option.unwrap core.num.nonzero.NonZeroU32 opt st0
+ let (st0, o) ← core.num.nonzero.NonZeroU32.new x st
+ core.option.Option.unwrap core.num.nonzero.NonZeroU32 o st0
-/- [external::test_vec]: forward function -/
+/- [external::test_vec]: forward function
+ Source: 'src/external.rs', lines 17:0-17:17 -/
def test_vec : Result Unit :=
do
- let v := Vec.new U32
- let _ ← Vec.push U32 v (U32.ofInt 0)
+ let v := alloc.vec.Vec.new U32
+ let _ ← alloc.vec.Vec.push U32 v 0#u32
Result.ret ()
/- Unit test for [external::test_vec] -/
-#assert (test_vec == .ret ())
+#assert (test_vec == Result.ret ())
-/- [external::custom_swap]: forward function -/
+/- [external::custom_swap]: forward function
+ Source: 'src/external.rs', lines 24:0-24:66 -/
def custom_swap
(T : Type) (x : T) (y : T) (st : State) : Result (State × T) :=
do
@@ -52,38 +57,42 @@ def custom_swap
let (st2, _) ← core.mem.swap_back1 T x y st st1
Result.ret (st2, x0)
-/- [external::custom_swap]: backward function 0 -/
+/- [external::custom_swap]: backward function 0
+ Source: 'src/external.rs', lines 24:0-24:66 -/
def custom_swap_back
- (T : Type) (x : T) (y : T) (st : State) (ret0 : T) (st0 : State) :
+ (T : Type) (x : T) (y : T) (st : State) (ret : T) (st0 : State) :
Result (State × (T × T))
:=
do
let (st1, _) ← core.mem.swap T x y st
let (st2, _) ← core.mem.swap_back0 T x y st st1
let (_, y0) ← core.mem.swap_back1 T x y st st2
- Result.ret (st0, (ret0, y0))
+ Result.ret (st0, (ret, y0))
-/- [external::test_custom_swap]: forward function -/
+/- [external::test_custom_swap]: forward function
+ Source: 'src/external.rs', lines 29:0-29:59 -/
def test_custom_swap
(x : U32) (y : U32) (st : State) : Result (State × Unit) :=
do
let (st0, _) ← custom_swap U32 x y st
Result.ret (st0, ())
-/- [external::test_custom_swap]: backward function 0 -/
+/- [external::test_custom_swap]: backward function 0
+ Source: 'src/external.rs', lines 29:0-29:59 -/
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) st0
+ custom_swap_back U32 x y st 1#u32 st0
-/- [external::test_swap_non_zero]: forward function -/
+/- [external::test_swap_non_zero]: forward function
+ Source: 'src/external.rs', lines 35:0-35:44 -/
def test_swap_non_zero (x : U32) (st : State) : Result (State × U32) :=
do
- let (st0, _) ← swap U32 x (U32.ofInt 0) st
- let (st1, (x0, _)) ← swap_back U32 x (U32.ofInt 0) st st0
- if x0 = (U32.ofInt 0)
- then Result.fail Error.panic
+ let (st0, _) ← swap U32 x 0#u32 st
+ let (st1, (x0, _)) ← swap_back U32 x 0#u32 st st0
+ if x0 = 0#u32
+ then Result.fail .panic
else Result.ret (st1, x0)
end external
diff --git a/tests/lean/External/FunsExternal_Template.lean b/tests/lean/External/FunsExternal_Template.lean
index c8bc397f..55cd6bb5 100644
--- a/tests/lean/External/FunsExternal_Template.lean
+++ b/tests/lean/External/FunsExternal_Template.lean
@@ -6,22 +6,27 @@ import External.Types
open Primitives
open external
-/- [core::mem::swap]: forward function -/
+/- [core::mem::swap]: forward function
+ Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/mem/mod.rs', lines 726:0-726:42 -/
axiom core.mem.swap (T : Type) : T → T → State → Result (State × Unit)
-/- [core::mem::swap]: backward function 0 -/
+/- [core::mem::swap]: backward function 0
+ Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/mem/mod.rs', lines 726:0-726:42 -/
axiom core.mem.swap_back0
(T : Type) : T → T → State → State → Result (State × T)
-/- [core::mem::swap]: backward function 1 -/
+/- [core::mem::swap]: backward function 1
+ Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/mem/mod.rs', lines 726:0-726:42 -/
axiom core.mem.swap_back1
(T : Type) : T → T → State → State → Result (State × T)
-/- [core::num::nonzero::NonZeroU32::{14}::new]: forward function -/
+/- [core::num::nonzero::{core::num::nonzero::NonZeroU32#14}::new]: forward function
+ Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/num/nonzero.rs', lines 79:16-79:57 -/
axiom core.num.nonzero.NonZeroU32.new
: U32 → State → Result (State × (Option core.num.nonzero.NonZeroU32))
-/- [core::option::Option::{0}::unwrap]: forward function -/
+/- [core::option::{core::option::Option<T>}::unwrap]: forward function
+ Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/option.rs', lines 932:4-932:34 -/
axiom core.option.Option.unwrap
(T : Type) : Option T → State → Result (State × T)
diff --git a/tests/lean/External/Types.lean b/tests/lean/External/Types.lean
index 71d70eed..961f3e8a 100644
--- a/tests/lean/External/Types.lean
+++ b/tests/lean/External/Types.lean
@@ -1,14 +1,9 @@
-- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS
-- [external]: type definitions
import Base
+import External.TypesExternal
open Primitives
namespace external
-/- [core::num::nonzero::NonZeroU32] -/
-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/External/TypesExternal.lean b/tests/lean/External/TypesExternal.lean
new file mode 100644
index 00000000..7c30f792
--- /dev/null
+++ b/tests/lean/External/TypesExternal.lean
@@ -0,0 +1,11 @@
+-- [external]: external types.
+import Base
+open Primitives
+
+/- [core::num::nonzero::NonZeroU32]
+ Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/num/nonzero.rs', lines 50:12-50:33 -/
+axiom core.num.nonzero.NonZeroU32 : Type
+
+/- The state type used in the state-error monad -/
+axiom State : Type
+
diff --git a/tests/lean/External/TypesExternal_Template.lean b/tests/lean/External/TypesExternal_Template.lean
new file mode 100644
index 00000000..85fef236
--- /dev/null
+++ b/tests/lean/External/TypesExternal_Template.lean
@@ -0,0 +1,13 @@
+-- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS
+-- [external]: external types.
+-- This is a template file: rename it to "TypesExternal.lean" and fill the holes.
+import Base
+open Primitives
+
+/- [core::num::nonzero::NonZeroU32]
+ Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/num/nonzero.rs', lines 50:12-50:33 -/
+axiom core.num.nonzero.NonZeroU32 : Type
+
+/- The state type used in the state-error monad -/
+axiom State : Type
+