summaryrefslogtreecommitdiff
path: root/tests/misc
diff options
context:
space:
mode:
authorSidney Congard2022-06-21 11:41:09 +0200
committerSidney Congard2022-06-21 11:41:09 +0200
commit7703c4ca86a390303d0a120f8811c8fd704c5168 (patch)
tree399145f7c842d9f59216e17b6e43964b2c4dfaa6 /tests/misc
parent414769e0c9a1d370d3ab906b710e2e8adfe25e5e (diff)
concrete & symbolic evaluation work with new LLBC format
Diffstat (limited to 'tests/misc')
-rw-r--r--tests/misc/Constants.fst119
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/misc/Constants.fst b/tests/misc/Constants.fst
new file mode 100644
index 00000000..9611c778
--- /dev/null
+++ b/tests/misc/Constants.fst
@@ -0,0 +1,119 @@
+(** THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS *)
+(** [constants] *)
+module Constants
+open Primitives
+
+#set-options "--z3rlimit 50 --fuel 1 --ifuel 1"
+
+(** [constants::X0] *)
+let x0_fwd : result u32 = Return 0
+
+(** [core::num::u32::{8}::MAX] *)
+assume val core_num_u32_max_fwd : result u32
+
+(** [constants::X1] *)
+let x1_fwd : result u32 = Return 4294967295
+
+(** [constants::X2] *)
+let x2_fwd : result u32 = Return 3
+
+(** [constants::incr] *)
+let incr_fwd (n : u32) : result u32 =
+ begin match u32_add n 1 with | Fail -> Fail | Return i -> Return i end
+
+(** [constants::X3] *)
+let x3_fwd : result u32 =
+ begin match incr_fwd 32 with | Fail -> Fail | Return i -> Return i end
+
+(** [constants::mk_pair0] *)
+let mk_pair0_fwd (x : u32) (y : u32) : result (u32 & u32) = Return (x, y)
+
+(** [constants::Pair] *)
+type pair_t (t1 t2 : Type0) = { pair_x : t1; pair_y : t2; }
+
+(** [constants::mk_pair1] *)
+let mk_pair1_fwd (x : u32) (y : u32) : result (pair_t u32 u32) =
+ Return (Mkpair_t x y)
+
+(** [constants::P0] *)
+let p0_fwd : result (u32 & u32) =
+ begin match mk_pair0_fwd 0 1 with | Fail -> Fail | Return p -> Return p end
+
+(** [constants::P1] *)
+let p1_fwd : result (pair_t u32 u32) =
+ begin match mk_pair1_fwd 0 1 with | Fail -> Fail | Return p -> Return p end
+
+(** [constants::P2] *)
+let p2_fwd : result (u32 & u32) = Return (0, 1)
+
+(** [constants::P3] *)
+let p3_fwd : result (pair_t u32 u32) = Return (Mkpair_t 0 1)
+
+(** [constants::Wrap] *)
+type wrap_t (t : Type0) = { wrap_val : t; }
+
+(** [constants::Wrap::{0}::new] *)
+let wrap_new_fwd (t : Type0) (val0 : t) : result (wrap_t t) =
+ Return (Mkwrap_t val0)
+
+(** [constants::Y] *)
+let y_fwd : result (wrap_t i32) =
+ begin match wrap_new_fwd i32 2 with | Fail -> Fail | Return w -> Return w end
+
+(** [constants::unwrap_y] *)
+let unwrap_y_fwd : result i32 =
+ begin match y_fwd with | Fail -> Fail | Return w -> Return w.wrap_val end
+
+(** [constants::YVAL] *)
+let yval_fwd : result i32 =
+ begin match unwrap_y_fwd with | Fail -> Fail | Return i -> Return i end
+
+(** [constants::get_z1::Z1] *)
+let get_z1_z1_fwd : result i32 = Return 3
+
+(** [constants::get_z1] *)
+let get_z1_fwd : result i32 =
+ begin match get_z1_z1_fwd with | Fail -> Fail | Return i -> Return i end
+
+(** [constants::add] *)
+let add_fwd (a : i32) (b : i32) : result i32 =
+ begin match i32_add a b with | Fail -> Fail | Return i -> Return i end
+
+(** [constants::Q1] *)
+let q1_fwd : result i32 = Return 5
+
+(** [constants::Q2] *)
+let q2_fwd : result i32 =
+ begin match q1_fwd with | Fail -> Fail | Return i -> Return i end
+
+(** [constants::Q3] *)
+let q3_fwd : result i32 =
+ begin match q2_fwd with
+ | Fail -> Fail
+ | Return i ->
+ begin match add_fwd i 3 with | Fail -> Fail | Return i0 -> Return i0 end
+ end
+
+(** [constants::get_z2] *)
+let get_z2_fwd : result i32 =
+ begin match get_z1_fwd with
+ | Fail -> Fail
+ | Return i ->
+ begin match q3_fwd with
+ | Fail -> Fail
+ | Return i0 ->
+ begin match add_fwd i i0 with
+ | Fail -> Fail
+ | Return i1 ->
+ begin match q1_fwd with
+ | Fail -> Fail
+ | Return i2 ->
+ begin match add_fwd i2 i1 with
+ | Fail -> Fail
+ | Return i3 -> Return i3
+ end
+ end
+ end
+ end
+ end
+