summaryrefslogtreecommitdiff
path: root/tests/coq/rename_attribute/RenameAttribute.v
blob: 3ce7ba5c9ac37777b2420a7f5404ea4385f3b525 (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
93
94
95
96
97
98
99
100
101
102
103
(** THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS *)
(** [rename_attribute] *)
Require Import Primitives.
Import Primitives.
Require Import Coq.ZArith.ZArith.
Require Import List.
Import ListNotations.
Local Open Scope Primitives_scope.
Module RenameAttribute.

(** Trait declaration: [rename_attribute::BoolTrait]
    Source: 'tests/src/rename_attribute.rs', lines 8:0-8:19 *)
Record BoolTest_t (Self : Type) := mkBoolTest_t {
  BoolTest_t_getTest : Self -> result bool;
}.

Arguments mkBoolTest_t { _ }.
Arguments BoolTest_t_getTest { _ }.

(** [rename_attribute::{(rename_attribute::BoolTrait for bool)}::get_bool]:
    Source: 'tests/src/rename_attribute.rs', lines 22:4-22:30 *)
Definition boolTraitBool_getTest (self : bool) : result bool :=
  Ok self.

(** Trait implementation: [rename_attribute::{(rename_attribute::BoolTrait for bool)}]
    Source: 'tests/src/rename_attribute.rs', lines 21:0-21:23 *)
Definition BoolImpl : BoolTest_t bool := {|
  BoolTest_t_getTest := boolTraitBool_getTest;
|}.

(** [rename_attribute::BoolTrait::ret_true]:
    Source: 'tests/src/rename_attribute.rs', lines 15:4-15:30 *)
Definition boolTrait_retTest
  {Self : Type} (self_clause : BoolTest_t Self) (self : Self) : result bool :=
  Ok true
.

(** [rename_attribute::test_bool_trait]:
    Source: 'tests/src/rename_attribute.rs', lines 28:0-28:42 *)
Definition boolFn (T : Type) (x : bool) : result bool :=
  b <- boolTraitBool_getTest x;
  if b then boolTrait_retTest BoolImpl x else Ok false
.

(** [rename_attribute::SimpleEnum]
    Source: 'tests/src/rename_attribute.rs', lines 36:0-36:15 *)
Inductive VariantsTest_t :=
| VariantsTest_Variant1 : VariantsTest_t
| VariantsTest_SecondVariant : VariantsTest_t
| VariantsTest_ThirdVariant : VariantsTest_t
.

(** [rename_attribute::Foo]
    Source: 'tests/src/rename_attribute.rs', lines 44:0-44:10 *)
Record StructTest_t := mkStructTest_t { structTest_FieldTest : u32; }.

(** [rename_attribute::C]
    Source: 'tests/src/rename_attribute.rs', lines 50:0-50:12 *)
Definition const_test_body : result u32 :=
  i <- u32_add 100%u32 10%u32; u32_add i 1%u32
.
Definition const_test : u32 := const_test_body%global.

(** [rename_attribute::CA]
    Source: 'tests/src/rename_attribute.rs', lines 53:0-53:13 *)
Definition const_aeneas11_body : result u32 := u32_add 10%u32 1%u32.
Definition const_aeneas11 : u32 := const_aeneas11_body%global.

(** [rename_attribute::factorial]:
    Source: 'tests/src/rename_attribute.rs', lines 56:0-56:27 *)
Fixpoint factfn (n : nat) (n1 : u64) : result u64 :=
  match n with
  | O => Fail_ OutOfFuel
  | S n2 =>
    if n1 s<= 1%u64
    then Ok 1%u64
    else (i <- u64_sub n1 1%u64; i1 <- factfn n2 i; u64_mul n1 i1)
  end
.

(** [rename_attribute::sum]: loop 0:
    Source: 'tests/src/rename_attribute.rs', lines 67:4-75:1 *)
Fixpoint no_borrows_sum_loop
  (n : nat) (max : u32) (i : u32) (s : u32) : result u32 :=
  match n with
  | O => Fail_ OutOfFuel
  | S n1 =>
    if i s< max
    then (
      s1 <- u32_add s i;
      i1 <- u32_add i 1%u32;
      no_borrows_sum_loop n1 max i1 s1)
    else u32_mul s 2%u32
  end
.

(** [rename_attribute::sum]:
    Source: 'tests/src/rename_attribute.rs', lines 65:0-65:27 *)
Definition no_borrows_sum (n : nat) (max : u32) : result u32 :=
  no_borrows_sum_loop n max 0%u32 0%u32
.

End RenameAttribute.