summaryrefslogtreecommitdiff
path: root/tests/lean/RenameAttribute.lean
blob: ef42f4c539a7f40443c9f97ebd35b511e2fb09a6 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
-- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS
-- [rename_attribute]
import Base
open Primitives
set_option linter.dupNamespace false
set_option linter.hashCommand false
set_option linter.unusedVariables false

namespace rename_attribute

/- Trait declaration: [rename_attribute::BoolTrait]
   Source: 'tests/src/rename_attribute.rs', lines 8:0-8:19 -/
structure BoolTest (Self : Type) where
  getTest : Self  Result Bool

/- [rename_attribute::{(rename_attribute::BoolTrait for bool)}::get_bool]:
   Source: 'tests/src/rename_attribute.rs', lines 22:4-22:30 -/
def BoolTraitBool.getTest (self : Bool) : Result Bool :=
  Result.ok self

/- Trait implementation: [rename_attribute::{(rename_attribute::BoolTrait for bool)}]
   Source: 'tests/src/rename_attribute.rs', lines 21:0-21:23 -/
def BoolImpl : BoolTest Bool := {
  getTest := BoolTraitBool.getTest
}

/- [rename_attribute::BoolTrait::ret_true]:
   Source: 'tests/src/rename_attribute.rs', lines 15:4-15:30 -/
def BoolTrait.retTest
  {Self : Type} (self_clause : BoolTest Self) (self : Self) : Result Bool :=
  Result.ok true

/- [rename_attribute::test_bool_trait]:
   Source: 'tests/src/rename_attribute.rs', lines 28:0-28:42 -/
def BoolFn (T : Type) (x : Bool) : Result Bool :=
  do
  let b  BoolTraitBool.getTest x
  if b
  then BoolTrait.retTest BoolImpl x
  else Result.ok false

/- [rename_attribute::SimpleEnum]
   Source: 'tests/src/rename_attribute.rs', lines 36:0-36:15 -/
inductive VariantsTest :=
| Variant1 : VariantsTest
| SecondVariant : VariantsTest
| ThirdVariant : VariantsTest

/- [rename_attribute::Foo]
   Source: 'tests/src/rename_attribute.rs', lines 44:0-44:10 -/
structure StructTest where
  FieldTest : U32

/- [rename_attribute::C]
   Source: 'tests/src/rename_attribute.rs', lines 50:0-50:12 -/
def Const_Test_body : Result U32 := do
                                    let i  100#u32 + 10#u32
                                    i + 1#u32
def Const_Test : U32 := eval_global Const_Test_body

/- [rename_attribute::CA]
   Source: 'tests/src/rename_attribute.rs', lines 53:0-53:13 -/
def Const_Aeneas11_body : Result U32 := 10#u32 + 1#u32
def Const_Aeneas11 : U32 := eval_global Const_Aeneas11_body

/- [rename_attribute::factorial]:
   Source: 'tests/src/rename_attribute.rs', lines 56:0-56:27 -/
divergent def Factfn (n : U64) : Result U64 :=
  if n <= 1#u64
  then Result.ok 1#u64
  else do
       let i  n - 1#u64
       let i1  Factfn i
       n * i1

/- [rename_attribute::sum]: loop 0:
   Source: 'tests/src/rename_attribute.rs', lines 67:4-75:1 -/
divergent def No_borrows_sum_loop
  (max : U32) (i : U32) (s : U32) : Result U32 :=
  if i < max
  then do
       let s1  s + i
       let i1  i + 1#u32
       No_borrows_sum_loop max i1 s1
  else s * 2#u32

/- [rename_attribute::sum]:
   Source: 'tests/src/rename_attribute.rs', lines 65:0-65:27 -/
def No_borrows_sum (max : U32) : Result U32 :=
  No_borrows_sum_loop max 0#u32 0#u32

end rename_attribute