-- THIS FILE WAS AUTOMATICALLY GENERATED BY AENEAS -- [constants] import Base open Primitives namespace constants /- [constants::X0] -/ def x0_body : Result U32 := Result.ret (U32.ofInt 0) def x0_c : U32 := eval_global x0_body (by simp) /- [core::num::u32::{8}::MAX] -/ def core_num_u32_max_body : Result U32 := Result.ret (U32.ofInt 4294967295) def core_num_u32_max_c : U32 := eval_global core_num_u32_max_body (by simp) /- [constants::X1] -/ def x1_body : Result U32 := Result.ret core_num_u32_max_c def x1_c : U32 := eval_global x1_body (by simp) /- [constants::X2] -/ def x2_body : Result U32 := Result.ret (U32.ofInt 3) def x2_c : U32 := eval_global x2_body (by simp) /- [constants::incr]: forward function -/ def incr (n : U32) : Result U32 := n + (U32.ofInt 1) /- [constants::X3] -/ def x3_body : Result U32 := incr (U32.ofInt 32) def x3_c : U32 := eval_global x3_body (by simp) /- [constants::mk_pair0]: forward function -/ def mk_pair0 (x : U32) (y : U32) : Result (U32 × U32) := Result.ret (x, y) /- [constants::Pair] -/ structure Pair (T1 T2 : Type) where x : T1 y : T2 /- [constants::mk_pair1]: forward function -/ def mk_pair1 (x : U32) (y : U32) : Result (Pair U32 U32) := Result.ret { x := x, y := y } /- [constants::P0] -/ def p0_body : Result (U32 × U32) := mk_pair0 (U32.ofInt 0) (U32.ofInt 1) def p0_c : (U32 × U32) := eval_global p0_body (by simp) /- [constants::P1] -/ def p1_body : Result (Pair U32 U32) := mk_pair1 (U32.ofInt 0) (U32.ofInt 1) def p1_c : Pair U32 U32 := eval_global p1_body (by simp) /- [constants::P2] -/ def p2_body : Result (U32 × U32) := Result.ret ((U32.ofInt 0), (U32.ofInt 1)) def p2_c : (U32 × U32) := eval_global p2_body (by simp) /- [constants::P3] -/ def p3_body : Result (Pair U32 U32) := Result.ret { x := (U32.ofInt 0), y := (U32.ofInt 1) } def p3_c : Pair U32 U32 := eval_global p3_body (by simp) /- [constants::Wrap] -/ structure Wrap (T : Type) where val : T /- [constants::Wrap::{0}::new]: forward function -/ def Wrap.new (T : Type) (val : T) : Result (Wrap T) := Result.ret { val := val } /- [constants::Y] -/ def y_body : Result (Wrap I32) := Wrap.new I32 (I32.ofInt 2) def y_c : Wrap I32 := eval_global y_body (by simp) /- [constants::unwrap_y]: forward function -/ def unwrap_y : Result I32 := Result.ret y_c.val /- [constants::YVAL] -/ def yval_body : Result I32 := unwrap_y def yval_c : I32 := eval_global yval_body (by simp) /- [constants::get_z1::Z1] -/ def get_z1_z1_body : Result I32 := Result.ret (I32.ofInt 3) def get_z1_z1_c : I32 := eval_global get_z1_z1_body (by simp) /- [constants::get_z1]: forward function -/ def get_z1 : Result I32 := Result.ret get_z1_z1_c /- [constants::add]: forward function -/ def add (a : I32) (b : I32) : Result I32 := a + b /- [constants::Q1] -/ def q1_body : Result I32 := Result.ret (I32.ofInt 5) def q1_c : I32 := eval_global q1_body (by simp) /- [constants::Q2] -/ def q2_body : Result I32 := Result.ret q1_c def q2_c : I32 := eval_global q2_body (by simp) /- [constants::Q3] -/ def q3_body : Result I32 := add q2_c (I32.ofInt 3) def q3_c : I32 := eval_global q3_body (by simp) /- [constants::get_z2]: forward function -/ def get_z2 : Result I32 := do let i ← get_z1 let i0 ← add i q3_c add q1_c i0 /- [constants::S1] -/ def s1_body : Result U32 := Result.ret (U32.ofInt 6) def s1_c : U32 := eval_global s1_body (by simp) /- [constants::S2] -/ def s2_body : Result U32 := incr s1_c def s2_c : U32 := eval_global s2_body (by simp) /- [constants::S3] -/ def s3_body : Result (Pair U32 U32) := Result.ret p3_c def s3_c : Pair U32 U32 := eval_global s3_body (by simp) /- [constants::S4] -/ def s4_body : Result (Pair U32 U32) := mk_pair1 (U32.ofInt 7) (U32.ofInt 8) def s4_c : Pair U32 U32 := eval_global s4_body (by simp) end constants