From d281f43fd5dfeab24fe582fd88564f6c1ab7f934 Mon Sep 17 00:00:00 2001 From: Son Ho Date: Mon, 18 Mar 2024 01:39:29 +0100 Subject: Regenerate the constants tests and update Primitives/Base.lean --- tests/lean/Constants.lean | 51 ++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 18 deletions(-) (limited to 'tests/lean') diff --git a/tests/lean/Constants.lean b/tests/lean/Constants.lean index 7949a25c..3727e393 100644 --- a/tests/lean/Constants.lean +++ b/tests/lean/Constants.lean @@ -8,17 +8,17 @@ namespace constants /- [constants::X0] Source: 'src/constants.rs', lines 5:0-5:17 -/ def X0_body : Result U32 := Result.ret 0#u32 -def X0 : U32 := eval_global X0_body +def X0 : U32 := eval_global (X0_body) /- [constants::X1] Source: 'src/constants.rs', lines 7:0-7:17 -/ def X1_body : Result U32 := Result.ret core_u32_max -def X1 : U32 := eval_global X1_body +def X1 : U32 := eval_global (X1_body) /- [constants::X2] Source: 'src/constants.rs', lines 10:0-10:17 -/ def X2_body : Result U32 := Result.ret 3#u32 -def X2 : U32 := eval_global X2_body +def X2 : U32 := eval_global (X2_body) /- [constants::incr]: Source: 'src/constants.rs', lines 17:0-17:32 -/ @@ -28,7 +28,7 @@ def incr (n : U32) : Result U32 := /- [constants::X3] Source: 'src/constants.rs', lines 15:0-15:17 -/ def X3_body : Result U32 := incr 32#u32 -def X3 : U32 := eval_global X3_body +def X3 : U32 := eval_global (X3_body) /- [constants::mk_pair0]: Source: 'src/constants.rs', lines 23:0-23:51 -/ @@ -49,22 +49,22 @@ def mk_pair1 (x : U32) (y : U32) : Result (Pair U32 U32) := /- [constants::P0] Source: 'src/constants.rs', lines 31:0-31:24 -/ def P0_body : Result (U32 × U32) := mk_pair0 0#u32 1#u32 -def P0 : (U32 × U32) := eval_global P0_body +def P0 : (U32 × U32) := eval_global (P0_body) /- [constants::P1] Source: 'src/constants.rs', lines 32:0-32:28 -/ def P1_body : Result (Pair U32 U32) := mk_pair1 0#u32 1#u32 -def P1 : Pair U32 U32 := eval_global P1_body +def P1 : Pair U32 U32 := eval_global (P1_body) /- [constants::P2] Source: 'src/constants.rs', lines 33:0-33:24 -/ def P2_body : Result (U32 × U32) := Result.ret (0#u32, 1#u32) -def P2 : (U32 × U32) := eval_global P2_body +def P2 : (U32 × U32) := eval_global (P2_body) /- [constants::P3] Source: 'src/constants.rs', lines 34:0-34:28 -/ def P3_body : Result (Pair U32 U32) := Result.ret { x := 0#u32, y := 1#u32 } -def P3 : Pair U32 U32 := eval_global P3_body +def P3 : Pair U32 U32 := eval_global (P3_body) /- [constants::Wrap] Source: 'src/constants.rs', lines 49:0-49:18 -/ @@ -79,7 +79,7 @@ def Wrap.new (T : Type) (value : T) : Result (Wrap T) := /- [constants::Y] Source: 'src/constants.rs', lines 41:0-41:22 -/ def Y_body : Result (Wrap I32) := Wrap.new I32 2#i32 -def Y : Wrap I32 := eval_global Y_body +def Y : Wrap I32 := eval_global (Y_body) /- [constants::unwrap_y]: Source: 'src/constants.rs', lines 43:0-43:30 -/ @@ -89,12 +89,12 @@ def unwrap_y : Result I32 := /- [constants::YVAL] Source: 'src/constants.rs', lines 47:0-47:19 -/ def YVAL_body : Result I32 := unwrap_y -def YVAL : I32 := eval_global YVAL_body +def YVAL : I32 := eval_global (YVAL_body) /- [constants::get_z1::Z1] Source: 'src/constants.rs', lines 62:4-62:17 -/ def get_z1.Z1_body : Result I32 := Result.ret 3#i32 -def get_z1.Z1 : I32 := eval_global get_z1.Z1_body +def get_z1.Z1 : I32 := eval_global (get_z1.Z1_body) /- [constants::get_z1]: Source: 'src/constants.rs', lines 61:0-61:28 -/ @@ -109,17 +109,17 @@ def add (a : I32) (b : I32) : Result I32 := /- [constants::Q1] Source: 'src/constants.rs', lines 74:0-74:17 -/ def Q1_body : Result I32 := Result.ret 5#i32 -def Q1 : I32 := eval_global Q1_body +def Q1 : I32 := eval_global (Q1_body) /- [constants::Q2] Source: 'src/constants.rs', lines 75:0-75:17 -/ def Q2_body : Result I32 := Result.ret Q1 -def Q2 : I32 := eval_global Q2_body +def Q2 : I32 := eval_global (Q2_body) /- [constants::Q3] Source: 'src/constants.rs', lines 76:0-76:17 -/ def Q3_body : Result I32 := add Q2 3#i32 -def Q3 : I32 := eval_global Q3_body +def Q3 : I32 := eval_global (Q3_body) /- [constants::get_z2]: Source: 'src/constants.rs', lines 70:0-70:28 -/ @@ -132,21 +132,36 @@ def get_z2 : Result I32 := /- [constants::S1] Source: 'src/constants.rs', lines 80:0-80:18 -/ def S1_body : Result U32 := Result.ret 6#u32 -def S1 : U32 := eval_global S1_body +def S1 : U32 := eval_global (S1_body) /- [constants::S2] Source: 'src/constants.rs', lines 81:0-81:18 -/ def S2_body : Result U32 := incr S1 -def S2 : U32 := eval_global S2_body +def S2 : U32 := eval_global (S2_body) /- [constants::S3] Source: 'src/constants.rs', lines 82:0-82:29 -/ def S3_body : Result (Pair U32 U32) := Result.ret P3 -def S3 : Pair U32 U32 := eval_global S3_body +def S3 : Pair U32 U32 := eval_global (S3_body) /- [constants::S4] Source: 'src/constants.rs', lines 83:0-83:29 -/ def S4_body : Result (Pair U32 U32) := mk_pair1 7#u32 8#u32 -def S4 : Pair U32 U32 := eval_global S4_body +def S4 : Pair U32 U32 := eval_global (S4_body) + +/- [constants::V] + Source: 'src/constants.rs', lines 86:0-86:31 -/ +structure V (T : Type) (N : Usize) where + x : Array T N + +/- [constants::{constants::V#1}::LEN] + Source: 'src/constants.rs', lines 91:4-91:24 -/ +def V.LEN_body (T : Type) (N : Usize) : Result Usize := Result.ret N +def V.LEN (T : Type) (N : Usize) : Usize := eval_global (V.LEN_body T N) + +/- [constants::use_v]: + Source: 'src/constants.rs', lines 94:0-94:42 -/ +def use_v (T : Type) (N : Usize) : Result Usize := + Result.ret (V.LEN T N) end constants -- cgit v1.2.3 From 5a1317e51a5854699befb3b470bc346551b1691a Mon Sep 17 00:00:00 2001 From: Son Ho Date: Mon, 18 Mar 2024 02:05:58 +0100 Subject: Regenerate the test files --- tests/lean/Constants.lean | 36 +++++++++++----------- tests/lean/Traits.lean | 78 ++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 92 insertions(+), 22 deletions(-) (limited to 'tests/lean') diff --git a/tests/lean/Constants.lean b/tests/lean/Constants.lean index 3727e393..40f590d4 100644 --- a/tests/lean/Constants.lean +++ b/tests/lean/Constants.lean @@ -8,17 +8,17 @@ namespace constants /- [constants::X0] Source: 'src/constants.rs', lines 5:0-5:17 -/ def X0_body : Result U32 := Result.ret 0#u32 -def X0 : U32 := eval_global (X0_body) +def X0 : U32 := eval_global X0_body /- [constants::X1] Source: 'src/constants.rs', lines 7:0-7:17 -/ def X1_body : Result U32 := Result.ret core_u32_max -def X1 : U32 := eval_global (X1_body) +def X1 : U32 := eval_global X1_body /- [constants::X2] Source: 'src/constants.rs', lines 10:0-10:17 -/ def X2_body : Result U32 := Result.ret 3#u32 -def X2 : U32 := eval_global (X2_body) +def X2 : U32 := eval_global X2_body /- [constants::incr]: Source: 'src/constants.rs', lines 17:0-17:32 -/ @@ -28,7 +28,7 @@ def incr (n : U32) : Result U32 := /- [constants::X3] Source: 'src/constants.rs', lines 15:0-15:17 -/ def X3_body : Result U32 := incr 32#u32 -def X3 : U32 := eval_global (X3_body) +def X3 : U32 := eval_global X3_body /- [constants::mk_pair0]: Source: 'src/constants.rs', lines 23:0-23:51 -/ @@ -49,22 +49,22 @@ def mk_pair1 (x : U32) (y : U32) : Result (Pair U32 U32) := /- [constants::P0] Source: 'src/constants.rs', lines 31:0-31:24 -/ def P0_body : Result (U32 × U32) := mk_pair0 0#u32 1#u32 -def P0 : (U32 × U32) := eval_global (P0_body) +def P0 : (U32 × U32) := eval_global P0_body /- [constants::P1] Source: 'src/constants.rs', lines 32:0-32:28 -/ def P1_body : Result (Pair U32 U32) := mk_pair1 0#u32 1#u32 -def P1 : Pair U32 U32 := eval_global (P1_body) +def P1 : Pair U32 U32 := eval_global P1_body /- [constants::P2] Source: 'src/constants.rs', lines 33:0-33:24 -/ def P2_body : Result (U32 × U32) := Result.ret (0#u32, 1#u32) -def P2 : (U32 × U32) := eval_global (P2_body) +def P2 : (U32 × U32) := eval_global P2_body /- [constants::P3] Source: 'src/constants.rs', lines 34:0-34:28 -/ def P3_body : Result (Pair U32 U32) := Result.ret { x := 0#u32, y := 1#u32 } -def P3 : Pair U32 U32 := eval_global (P3_body) +def P3 : Pair U32 U32 := eval_global P3_body /- [constants::Wrap] Source: 'src/constants.rs', lines 49:0-49:18 -/ @@ -79,7 +79,7 @@ def Wrap.new (T : Type) (value : T) : Result (Wrap T) := /- [constants::Y] Source: 'src/constants.rs', lines 41:0-41:22 -/ def Y_body : Result (Wrap I32) := Wrap.new I32 2#i32 -def Y : Wrap I32 := eval_global (Y_body) +def Y : Wrap I32 := eval_global Y_body /- [constants::unwrap_y]: Source: 'src/constants.rs', lines 43:0-43:30 -/ @@ -89,12 +89,12 @@ def unwrap_y : Result I32 := /- [constants::YVAL] Source: 'src/constants.rs', lines 47:0-47:19 -/ def YVAL_body : Result I32 := unwrap_y -def YVAL : I32 := eval_global (YVAL_body) +def YVAL : I32 := eval_global YVAL_body /- [constants::get_z1::Z1] Source: 'src/constants.rs', lines 62:4-62:17 -/ def get_z1.Z1_body : Result I32 := Result.ret 3#i32 -def get_z1.Z1 : I32 := eval_global (get_z1.Z1_body) +def get_z1.Z1 : I32 := eval_global get_z1.Z1_body /- [constants::get_z1]: Source: 'src/constants.rs', lines 61:0-61:28 -/ @@ -109,17 +109,17 @@ def add (a : I32) (b : I32) : Result I32 := /- [constants::Q1] Source: 'src/constants.rs', lines 74:0-74:17 -/ def Q1_body : Result I32 := Result.ret 5#i32 -def Q1 : I32 := eval_global (Q1_body) +def Q1 : I32 := eval_global Q1_body /- [constants::Q2] Source: 'src/constants.rs', lines 75:0-75:17 -/ def Q2_body : Result I32 := Result.ret Q1 -def Q2 : I32 := eval_global (Q2_body) +def Q2 : I32 := eval_global Q2_body /- [constants::Q3] Source: 'src/constants.rs', lines 76:0-76:17 -/ def Q3_body : Result I32 := add Q2 3#i32 -def Q3 : I32 := eval_global (Q3_body) +def Q3 : I32 := eval_global Q3_body /- [constants::get_z2]: Source: 'src/constants.rs', lines 70:0-70:28 -/ @@ -132,22 +132,22 @@ def get_z2 : Result I32 := /- [constants::S1] Source: 'src/constants.rs', lines 80:0-80:18 -/ def S1_body : Result U32 := Result.ret 6#u32 -def S1 : U32 := eval_global (S1_body) +def S1 : U32 := eval_global S1_body /- [constants::S2] Source: 'src/constants.rs', lines 81:0-81:18 -/ def S2_body : Result U32 := incr S1 -def S2 : U32 := eval_global (S2_body) +def S2 : U32 := eval_global S2_body /- [constants::S3] Source: 'src/constants.rs', lines 82:0-82:29 -/ def S3_body : Result (Pair U32 U32) := Result.ret P3 -def S3 : Pair U32 U32 := eval_global (S3_body) +def S3 : Pair U32 U32 := eval_global S3_body /- [constants::S4] Source: 'src/constants.rs', lines 83:0-83:29 -/ def S4_body : Result (Pair U32 U32) := mk_pair1 7#u32 8#u32 -def S4 : Pair U32 U32 := eval_global (S4_body) +def S4 : Pair U32 U32 := eval_global S4_body /- [constants::V] Source: 'src/constants.rs', lines 86:0-86:31 -/ diff --git a/tests/lean/Traits.lean b/tests/lean/Traits.lean index 26dac252..acddd1a9 100644 --- a/tests/lean/Traits.lean +++ b/tests/lean/Traits.lean @@ -242,9 +242,10 @@ def ToTypetraitsBoolWrapperT (T : Type) (ToTypeBoolTInst : ToType Bool T) : /- [traits::WithConstTy::LEN2] Source: 'src/traits.rs', lines 164:4-164:21 -/ -def WithConstTy.LEN2_default_body : Result Usize := Result.ret 32#usize -def WithConstTy.LEN2_default : Usize := - eval_global WithConstTy.LEN2_default_body +def WithConstTy.LEN2_default_body (Self : Type) (LEN : Usize) : Result Usize := + Result.ret 32#usize +def WithConstTy.LEN2_default (Self : Type) (LEN : Usize) : Usize := + eval_global (WithConstTy.LEN2_default_body Self LEN) /- Trait declaration: [traits::WithConstTy] Source: 'src/traits.rs', lines 161:0-161:39 -/ @@ -270,7 +271,7 @@ def WithConstTyBool32.f (i : U64) (a : Array U8 32#usize) : Result U64 := Source: 'src/traits.rs', lines 174:0-174:29 -/ def WithConstTyBool32 : WithConstTy Bool 32#usize := { LEN1 := WithConstTyBool32.LEN1 - LEN2 := WithConstTy.LEN2_default + LEN2 := WithConstTy.LEN2_default Bool 32#usize V := U8 W := U64 W_clause_0 := ToU64U64 @@ -467,4 +468,73 @@ def test_get_trait (T : Type) (GetTraitInst : GetTrait T) (x : T) : Result GetTraitInst.W := GetTraitInst.get_w x +/- Trait declaration: [traits::Trait] + Source: 'src/traits.rs', lines 310:0-310:15 -/ +structure Trait (Self : Type) where + LEN : Usize + +/- [traits::{(traits::Trait for @Array)#14}::LEN] + Source: 'src/traits.rs', lines 315:4-315:20 -/ +def TraitArray.LEN_body (T : Type) (N : Usize) : Result Usize := Result.ret N +def TraitArray.LEN (T : Type) (N : Usize) : Usize := + eval_global (TraitArray.LEN_body T N) + +/- Trait implementation: [traits::{(traits::Trait for @Array)#14}] + Source: 'src/traits.rs', lines 314:0-314:40 -/ +def TraitArray (T : Type) (N : Usize) : Trait (Array T N) := { + LEN := TraitArray.LEN T N +} + +/- [traits::{(traits::Trait for traits::Wrapper)#15}::LEN] + Source: 'src/traits.rs', lines 319:4-319:20 -/ +def TraittraitsWrapper.LEN_body (T : Type) (TraitInst : Trait T) + : Result Usize := + Result.ret 0#usize +def TraittraitsWrapper.LEN (T : Type) (TraitInst : Trait T) : Usize := + eval_global (TraittraitsWrapper.LEN_body T TraitInst) + +/- Trait implementation: [traits::{(traits::Trait for traits::Wrapper)#15}] + Source: 'src/traits.rs', lines 318:0-318:35 -/ +def TraittraitsWrapper (T : Type) (TraitInst : Trait T) : Trait (Wrapper T) + := { + LEN := TraittraitsWrapper.LEN T TraitInst +} + +/- [traits::use_wrapper_len]: + Source: 'src/traits.rs', lines 322:0-322:43 -/ +def use_wrapper_len (T : Type) (TraitInst : Trait T) : Result Usize := + Result.ret (TraittraitsWrapper T TraitInst).LEN + +/- [traits::Foo] + Source: 'src/traits.rs', lines 326:0-326:20 -/ +structure Foo (T U : Type) where + x : T + y : U + +/- [core::result::Result] + Source: '/rustc/d59363ad0b6391b7fc5bbb02c9ccf9300eef3753/library/core/src/result.rs', lines 502:0-502:21 -/ +inductive core.result.Result (T E : Type) := +| Ok : T → core.result.Result T E +| Err : E → core.result.Result T E + +/- [traits::{traits::Foo#16}::FOO] + Source: 'src/traits.rs', lines 332:4-332:33 -/ +def Foo.FOO_body (T U : Type) (TraitInst : Trait T) + : Result (core.result.Result T I32) := + Result.ret (core.result.Result.Err 0#i32) +def Foo.FOO (T U : Type) (TraitInst : Trait T) : core.result.Result T I32 := + eval_global (Foo.FOO_body T U TraitInst) + +/- [traits::use_foo1]: + Source: 'src/traits.rs', lines 335:0-335:48 -/ +def use_foo1 + (T U : Type) (TraitInst : Trait T) : Result (core.result.Result T I32) := + Result.ret (Foo.FOO T U TraitInst) + +/- [traits::use_foo2]: + Source: 'src/traits.rs', lines 339:0-339:48 -/ +def use_foo2 + (T U : Type) (TraitInst : Trait U) : Result (core.result.Result U I32) := + Result.ret (Foo.FOO U T TraitInst) + end traits -- cgit v1.2.3