summaryrefslogtreecommitdiff
path: root/tests/trace_reference.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/trace_reference.txt')
-rw-r--r--tests/trace_reference.txt56994
1 files changed, 47708 insertions, 9286 deletions
diff --git a/tests/trace_reference.txt b/tests/trace_reference.txt
index 767b6cbb..46015011 100644
--- a/tests/trace_reference.txt
+++ b/tests/trace_reference.txt
@@ -878,6 +878,143 @@ fn test_char() -> char {
return
}
+fn test_loops() {
+ var@0 : ();
+ x : u32;
+ var@2 : bool;
+ var@3 : bool;
+ var@4 : u32;
+ x : u32;
+ var@6 : bool;
+ var@7 : bool;
+ var@8 : u32;
+ x : u32;
+ var@10 : bool;
+ var@11 : bool;
+ var@12 : u32;
+ x : u32;
+ var@14 : bool;
+ var@15 : bool;
+ var@16 : u32;
+ x : u32;
+ var@18 : bool;
+ var@19 : bool;
+ var@20 : u32;
+ x : u32;
+ var@22 : bool;
+ var@23 : bool;
+ var@24 : u32;
+
+ x := move test_loop1(2: u32);
+ var@4 := copy x;
+ var@3 := move var@4 == 2: u32;
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+}
+
+fn id_mut_mut_test1() {
+ var@0 : ();
+ x : i32;
+ px : &'_ mut (i32);
+ ppx : &'_ mut (&'_ mut (i32));
+ ppy : &'_ mut (&'_ mut (i32));
+ var@5 : &'_ mut (&'_ mut (i32));
+ var@6 : bool;
+ var@7 : bool;
+ var@8 : i32;
+ var@9 : bool;
+ var@10 : bool;
+ var@11 : i32;
+
+ x := 0: i32;
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+}
+
+fn id_mut_mut_test2() {
+ var@0 : ();
+ x : i32;
+ px : &'_ mut (i32);
+ ppx : &'_ mut (&'_ mut (i32));
+ ppy : &'_ mut (&'_ mut (i32));
+ var@5 : &'_ mut (&'_ mut (i32));
+ y : i32;
+ py : &'_ mut (i32);
+ var@8 : &'_ mut (i32);
+ var@9 : bool;
+ var@10 : bool;
+ var@11 : i32;
+ var@12 : bool;
+ var@13 : bool;
+ var@14 : i32;
+ var@15 : bool;
+ var@16 : bool;
+ var@17 : i32;
+
+ x := 0: i32;
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+}
+
[Debug] test_unit_function: test2
[Debug]
**About to evaluate statement**: [
@@ -943,30 +1080,6 @@ fn test_char() -> char {
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-23: u32
-
[Debug]
**About to evaluate statement**: [
y := 44: u32;
@@ -1030,30 +1143,6 @@ fn test_char() -> char {
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-44: u32
-
[Debug]
**About to evaluate statement**: [
z := 67: u32;
@@ -1116,30 +1205,6 @@ fn test_char() -> char {
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> ⊥ : u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-67: u32
-
[Debug]
**About to evaluate statement**: [
var@5 := copy x;
@@ -1201,32 +1266,6 @@ fn test_char() -> char {
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-23: u32
[Debug]
**About to evaluate statement**: [
(p).x := move var@5;
@@ -1287,32 +1326,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> 23: u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-23: u32
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (0, None)), 0))
ty: (Types.Adt ((Types.AdtId 0), [],
@@ -1376,30 +1389,6 @@ ty: (Types.Adt ((Types.AdtId 0), [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-67: u32
-
[Debug]
**About to evaluate statement**: [
(s as test1::Sum::Right).0 := true;
@@ -1458,30 +1447,6 @@ ty: (Types.Adt ((Types.AdtId 0), [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> test1::Pair { x = 23: u32; y = 67: u32; } ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-true
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (6, (Some 1))), 0))
ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool]))
@@ -1598,30 +1563,6 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> test1::Pair { x = 23: u32; y = 67: u32; } ;
- var@5 -> ⊥ : u32 ;
- s -> test1::Sum::Right { 0 = true; } ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-3: u64
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (2, (Some 0))), 0))
ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)]))
@@ -1873,52 +1814,6 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-4: u32
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-3: u32
-
[Debug]
**About to evaluate statement**: [
var@4 := copy x;
@@ -1998,41 +1893,6 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 4: u32 ;
- y -> 3: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-4: u32
[Debug]
**About to evaluate statement**: [
var@5 := copy y;
@@ -2111,41 +1971,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 4: u32 ;
- y -> 3: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> 4: u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-3: u32
[Debug]
**About to evaluate statement**: [
var@3 := move var@4 >= move var@5;
@@ -2223,76 +2048,6 @@ copy y
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 4: u32 ;
- y -> 3: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> 4: u32 ;
- var@5 -> 3: u32 ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-4: u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 4: u32 ;
- y -> 3: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> 3: u32 ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-3: u32
[Debug]
**About to evaluate statement**: [
if (move var@3) {
@@ -2374,41 +2129,6 @@ move var@5
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 4: u32 ;
- y -> 3: u32 ;
- var@3 -> true ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@0 := copy x
@@ -2444,41 +2164,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 4: u32 ;
- y -> 3: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-4: u32
[Debug]
**About to evaluate statement**: [
return
@@ -2576,41 +2261,6 @@ copy x
var@5 -> ⊥ : u32 ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> 4: u32 ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@0
-
-[Debug] Value to move:
-4: u32
[Debug]
**About to evaluate statement**: [
y := move get_max(10: u32, 11: u32);
@@ -2669,52 +2319,6 @@ move var@0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-10: u32
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-11: u32
-
[Debug]
**About to evaluate statement**: [
var@4 := copy x;
@@ -2794,41 +2398,6 @@ move var@0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 10: u32 ;
- y -> 11: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-10: u32
[Debug]
**About to evaluate statement**: [
var@5 := copy y;
@@ -2907,41 +2476,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 10: u32 ;
- y -> 11: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> 10: u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-11: u32
[Debug]
**About to evaluate statement**: [
var@3 := move var@4 >= move var@5;
@@ -3019,76 +2553,6 @@ copy y
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 10: u32 ;
- y -> 11: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> 10: u32 ;
- var@5 -> 11: u32 ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-10: u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 10: u32 ;
- y -> 11: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> 11: u32 ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-11: u32
[Debug]
**About to evaluate statement**: [
if (move var@3) {
@@ -3170,41 +2634,6 @@ move var@5
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 10: u32 ;
- y -> 11: u32 ;
- var@3 -> false ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
var@0 := copy y
@@ -3240,41 +2669,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : u32 ;
- x -> 10: u32 ;
- y -> 11: u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-11: u32
[Debug]
**About to evaluate statement**: [
return
@@ -3372,41 +2766,6 @@ copy y
var@5 -> ⊥ : u32 ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-# Frame 1:
-{
- var@0 -> 11: u32 ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@0
-
-[Debug] Value to move:
-11: u32
[Debug]
**About to evaluate statement**: [
var@4 := copy x;
@@ -3464,31 +2823,6 @@ move var@0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-4: u32
[Debug]
**About to evaluate statement**: [
var@5 := copy y;
@@ -3545,31 +2879,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> ⊥ : u32 ;
- var@4 -> 4: u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-11: u32
[Debug]
**About to evaluate statement**: [
z := copy var@4 + copy var@5;
@@ -3625,56 +2934,6 @@ copy y
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> ⊥ : u32 ;
- var@4 -> 4: u32 ;
- var@5 -> 11: u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy var@4
-
-[Debug] Value to copy:
-4: u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> ⊥ : u32 ;
- var@4 -> 4: u32 ;
- var@5 -> 11: u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy var@5
-
-[Debug] Value to copy:
-11: u32
[Debug]
**About to evaluate statement**: [
var@9 := copy z;
@@ -3729,31 +2988,6 @@ copy var@5
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> 15: u32 ;
- var@4 -> 4: u32 ;
- var@5 -> 11: u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy z
-
-[Debug] Value to copy:
-15: u32
[Debug]
**About to evaluate statement**: [
var@8 := move var@9 == 15: u32;
@@ -3807,54 +3041,6 @@ copy z
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> 15: u32 ;
- var@4 -> 4: u32 ;
- var@5 -> 11: u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> 15: u32 ;
-}
-
-
-- op:
-move var@9
-
-[Debug] Value to move:
-15: u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> 15: u32 ;
- var@4 -> 4: u32 ;
- var@5 -> 11: u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-15: u32
-
[Debug]
**About to evaluate statement**: [
var@7 := ¬ move var@8;
@@ -3907,31 +3093,6 @@ move var@9
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> 15: u32 ;
- var@4 -> 4: u32 ;
- var@5 -> 11: u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> true ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@7);
@@ -3983,31 +3144,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 4: u32 ;
- y -> 11: u32 ;
- z -> 15: u32 ;
- var@4 -> 4: u32 ;
- var@5 -> 11: u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> false ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
return
@@ -4072,22 +3208,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- y -> ⊥ : i32 ;
-}
-
-
-- op:
-3: i32
-
[Debug]
**About to evaluate statement**: [
y := -3: i32;
@@ -4125,22 +3245,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 3: i32 ;
- y -> ⊥ : i32 ;
-}
-
-
-- op:
--3: i32
-
[Debug]
**About to evaluate statement**: [
return
@@ -4212,26 +3316,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
px := &mut x;
@@ -4382,26 +3466,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⌊mut@1⌋ ;
- ppx -> &mut@1 (&mut@0 (0: i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@6 := copy x;
@@ -4450,28 +3514,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⌊mut@1⌋ ;
- ppx -> &mut@1 (&mut@0 (1: i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-1: i32
[Debug]
**About to evaluate statement**: [
var@5 := move var@6 == 1: i32;
@@ -4519,48 +3561,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> 1: i32 ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-1: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@4 := ¬ move var@5;
@@ -4607,28 +3607,6 @@ move var@6
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> true ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@4);
@@ -4674,28 +3652,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> false ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
return
@@ -4811,38 +3767,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- y -> ⊥ : i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
y := 1: i32;
@@ -4934,38 +3858,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⊥ : i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
px := &mut x;
@@ -5406,40 +4298,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@1⌋ ;
- px -> ⌊mut@2⌋ ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> &mut@2 (&mut@0 (0: i32)) ;
- var@6 -> &mut@3 (1: i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-&mut@3 (1: i32)
[Debug]
**About to evaluate statement**: [
*(*(ppx)) := 2: i32;
@@ -5525,38 +4383,6 @@ move var@6
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⌊mut@2⌋ ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> &mut@2 (&mut@3 (1: i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-2: i32
-
[Debug]
**About to evaluate statement**: [
var@9 := copy *(px);
@@ -5641,40 +4467,6 @@ move var@6
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⌊mut@2⌋ ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> &mut@2 (&mut@3 (2: i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(px)
-
-[Debug] Value to copy:
-2: i32
[Debug]
**About to evaluate statement**: [
var@8 := move var@9 == 2: i32;
@@ -5758,72 +4550,6 @@ copy *(px)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> 2: i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@9
-
-[Debug] Value to move:
-2: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-2: i32
-
[Debug]
**About to evaluate statement**: [
var@7 := ¬ move var@8;
@@ -5906,40 +4632,6 @@ move var@9
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> true ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@7);
@@ -6021,40 +4713,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> false ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
var@12 := copy x;
@@ -6135,40 +4793,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
var@11 := move var@12 == 0: i32;
@@ -6248,72 +4872,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> 0: i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@12
-
-[Debug] Value to move:
-0: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@10 := ¬ move var@11;
@@ -6392,40 +4950,6 @@ move var@12
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> true ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@11
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@10);
@@ -6503,40 +5027,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> false ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@10
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
var@15 := copy *(py);
@@ -6613,40 +5103,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(py)
-
-[Debug] Value to copy:
-2: i32
[Debug]
**About to evaluate statement**: [
var@14 := move var@15 == 2: i32;
@@ -6722,72 +5178,6 @@ copy *(py)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> 2: i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@15
-
-[Debug] Value to move:
-2: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-2: i32
-
[Debug]
**About to evaluate statement**: [
var@13 := ¬ move var@14;
@@ -6862,40 +5252,6 @@ move var@15
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> true ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@14
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@13);
@@ -6969,40 +5325,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> false ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@13
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
var@18 := copy y;
@@ -7075,40 +5397,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-2: i32
[Debug]
**About to evaluate statement**: [
var@17 := move var@18 == 2: i32;
@@ -7180,72 +5468,6 @@ copy y
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> 2: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> 2: i32 ;
-}
-
-
-- op:
-move var@18
-
-[Debug] Value to move:
-2: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> 2: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-2: i32
-
[Debug]
**About to evaluate statement**: [
var@16 := ¬ move var@17;
@@ -7316,40 +5538,6 @@ move var@18
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> 2: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> true ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@17
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@16);
@@ -7419,40 +5607,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> 2: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> false ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@16
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
return
@@ -7580,50 +5734,6 @@ false
- type_params: [test1::List<i32>]
- args: [move var@3]
- dest: var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> test1::List::Nil ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-test1::List::Nil
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
-}
-
-# Frame 1:
-{
- @return -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@1 -> test1::List::Nil ;
-}
-
-
-- op:
-move var@1
-
-[Debug] Value to move:
-test1::List::Nil
[Debug] ctx_pop_frame:
# Ended regions: {}
# 2 frame(s)
@@ -7662,31 +5772,6 @@ test1::List::Nil
var@1 -> ⊥ : test1::List<i32> ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
-}
-
-# Frame 1:
-{
- @return -> @Box(test1::List::Nil) ;
- var@1 -> ⊥ : test1::List<i32> ;
-}
-
-
-- op:
-move @return
-
-[Debug] Value to move:
-@Box(test1::List::Nil)
[Debug]
**About to evaluate statement**: [
(l as test1::List::Cons).0 := 0: i32;
@@ -7729,23 +5814,6 @@ move @return
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> @Box(test1::List::Nil) ;
- var@3 -> ⊥ : test1::List<i32> ;
-}
-
-
-- op:
-0: i32
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0))
ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
@@ -7790,25 +5858,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> @Box(test1::List::Nil) ;
- var@3 -> ⊥ : test1::List<i32> ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-@Box(test1::List::Nil)
[Debug]
**About to evaluate statement**: [
set_discriminant(l, 0);
@@ -7973,58 +6022,6 @@ move var@2
- type_params: [i32]
- args: [0: i32]
- dest: b
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> ⊥ : std::boxed::Box<i32> ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> ⊥ : std::boxed::Box<i32> ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- @return -> ⊥ : std::boxed::Box<i32> ;
- var@1 -> 0: i32 ;
-}
-
-
-- op:
-move var@1
-
-[Debug] Value to move:
-0: i32
[Debug] ctx_pop_frame:
# Ended regions: {}
# 2 frame(s)
@@ -8073,36 +6070,6 @@ move var@1
var@1 -> ⊥ : i32 ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> ⊥ : std::boxed::Box<i32> ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- @return -> @Box(0: i32) ;
- var@1 -> ⊥ : i32 ;
-}
-
-
-- op:
-move @return
-
-[Debug] Value to move:
-@Box(0: i32)
[Debug]
**About to evaluate statement**: [
var@3 := &two-phase b;
@@ -8223,28 +6190,6 @@ move @return
- type_params: [i32]
- args: [move var@3]
- dest: x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @shared_loan({0}, @Box(0: i32)) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⌊inactivated_mut@0⌋ ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@3
-
[Debug] activate_inactivated_mut_borrow: resulting value:
{ Values.value =
(Values.Adt
@@ -8258,8 +6203,6 @@ move var@3
});
ty =
(Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)])) }
-[Debug] Value to move:
-&mut@0 (@Box(0: i32))
[Debug] ctx_pop_frame:
# Ended regions: {}
# 2 frame(s)
@@ -8308,36 +6251,6 @@ move var@3
var@1 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @Box(⌊mut@1⌋) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- @return -> &mut@1 (0: i32) ;
- var@1 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
-}
-
-
-- op:
-move @return
-
-[Debug] Value to move:
-&mut@1 (0: i32)
[Debug]
**About to evaluate statement**: [
*(x) := 1: i32;
@@ -8394,28 +6307,6 @@ move @return
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @Box(⌊mut@1⌋) ;
- x -> &mut@1 (0: i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@5 := &b;
@@ -8530,30 +6421,6 @@ move @return
- type_params: [i32]
- args: [move var@5]
- dest: x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @shared_loan({2}, @Box(1: i32)) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⌊shared@2⌋ ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-⌊shared@2⌋
[Debug] ctx_pop_frame:
# Ended regions: {}
# 2 frame(s)
@@ -8602,36 +6469,6 @@ move var@5
var@1 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @Box(@shared_loan({3}, 1: i32)) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- @return -> ⌊shared@3⌋ ;
- var@1 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
-}
-
-
-- op:
-move @return
-
-[Debug] Value to move:
-⌊shared@3⌋
[Debug]
**About to evaluate statement**: [
var@8 := copy *(x);
@@ -8685,30 +6522,6 @@ move @return
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @Box(@shared_loan({3}, 1: i32)) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⌊shared@3⌋ ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(x)
-
-[Debug] Value to copy:
-1: i32
[Debug]
**About to evaluate statement**: [
var@7 := move var@8 == 1: i32;
@@ -8761,52 +6574,6 @@ copy *(x)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @Box(@shared_loan({3}, 1: i32)) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⌊shared@3⌋ ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> 1: i32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-1: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @Box(@shared_loan({3}, 1: i32)) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⌊shared@3⌋ ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@6 := ¬ move var@7;
@@ -8858,30 +6625,6 @@ move var@8
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @Box(@shared_loan({3}, 1: i32)) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⌊shared@3⌋ ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> true ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@6);
@@ -8932,30 +6675,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @Box(@shared_loan({3}, 1: i32)) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⌊shared@3⌋ ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> false ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
drop(b);
@@ -9088,28 +6807,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- px -> ⊥ : &'_ (i32) ;
- y -> ⊥ : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
px := &x;
@@ -9221,30 +6918,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> ⊥ : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-@shared_loan({0}, 0: i32)
[Debug]
**About to evaluate statement**: [
y := move copy_int(move var@4);
@@ -9299,30 +6972,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> ⊥ : i32 ;
- var@4 -> 0: i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-0: i32
[Debug]
**About to evaluate statement**: [
var@0 := copy x;
@@ -9384,36 +7033,6 @@ move var@4
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> ⊥ : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : i32 ;
- x -> 0: i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
return
@@ -9492,36 +7111,6 @@ copy x
x -> ⊥ : i32 ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> ⊥ : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> 0: i32 ;
- x -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@0
-
-[Debug] Value to move:
-0: i32
[Debug]
**About to evaluate statement**: [
var@7 := copy *(px);
@@ -9575,30 +7164,6 @@ move var@0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> 0: i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(px)
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
var@8 := copy y;
@@ -9651,30 +7216,6 @@ copy *(px)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> 0: i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> 0: i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
var@6 := move var@7 == move var@8;
@@ -9726,54 +7267,6 @@ copy y
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> 0: i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> 0: i32 ;
- var@8 -> 0: i32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-0: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> 0: i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> 0: i32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-0: i32
[Debug]
**About to evaluate statement**: [
var@5 := ¬ move var@6;
@@ -9824,30 +7317,6 @@ move var@8
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> 0: i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> true ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@5);
@@ -9897,30 +7366,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> 0: i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> false ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
return
@@ -10064,58 +7509,6 @@ false
- type_params: [test1::List<i32>]
- args: [move var@3]
- dest: var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> test1::List::Nil ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⊥ : &'_ (test1::List<i32>) ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-test1::List::Nil
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⊥ : &'_ (test1::List<i32>) ;
-}
-
-# Frame 1:
-{
- @return -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@1 -> test1::List::Nil ;
-}
-
-
-- op:
-move var@1
-
-[Debug] Value to move:
-test1::List::Nil
[Debug] ctx_pop_frame:
# Ended regions: {}
# 2 frame(s)
@@ -10162,35 +7555,6 @@ test1::List::Nil
var@1 -> ⊥ : test1::List<i32> ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⊥ : &'_ (test1::List<i32>) ;
-}
-
-# Frame 1:
-{
- @return -> @Box(test1::List::Nil) ;
- var@1 -> ⊥ : test1::List<i32> ;
-}
-
-
-- op:
-move @return
-
-[Debug] Value to move:
-@Box(test1::List::Nil)
[Debug]
**About to evaluate statement**: [
(l as test1::List::Cons).0 := 0: i32;
@@ -10246,27 +7610,6 @@ move @return
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> @Box(test1::List::Nil) ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⊥ : &'_ (test1::List<i32>) ;
-}
-
-
-- op:
-0: i32
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0))
ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
@@ -10324,29 +7667,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> @Box(test1::List::Nil) ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⊥ : &'_ (test1::List<i32>) ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-@Box(test1::List::Nil)
[Debug]
**About to evaluate statement**: [
set_discriminant(l, 0);
@@ -10503,29 +7823,6 @@ move var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
-}
-
-
-- op:
-copy var@7
-
-[Debug] Value to copy:
-⌊shared@0⌋
[Debug]
**About to evaluate statement**: [
var@5 := move is_cons<i32>(move var@6);
@@ -10576,29 +7873,6 @@ copy var@7
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⌊shared@1⌋ ;
- var@7 -> ⌊shared@0⌋ ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-⌊shared@1⌋
[Debug]
**About to evaluate statement**: [
var@2 := discriminant(*(l));
@@ -10752,36 +8026,6 @@ move var@6
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : bool ;
- l -> ⌊shared@1⌋ ;
- var@2 -> 0: isize ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-0: isize
[Debug]
**About to evaluate statement**: [
var@0 := true
@@ -10812,34 +8056,6 @@ move var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : bool ;
- l -> ⌊shared@1⌋ ;
- var@2 -> ⊥ : isize ;
-}
-
-
-- op:
-true
-
[Debug]
**About to evaluate statement**: [
return
@@ -10919,36 +8135,6 @@ true
var@2 -> ⊥ : isize ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
-}
-
-# Frame 1:
-{
- var@0 -> true ;
- l -> ⊥ : &'_ (test1::List<i32>) ;
- var@2 -> ⊥ : isize ;
-}
-
-
-- op:
-move var@0
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@4 := ¬ move var@5;
@@ -10998,29 +8184,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> true ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@4);
@@ -11069,29 +8232,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }) ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> false ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
drop(l);
@@ -11300,64 +8440,6 @@ false
- type_params: [test1::List<i32>]
- args: [move var@3]
- dest: var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> test1::List::Nil ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-test1::List::Nil
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- @return -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@1 -> test1::List::Nil ;
-}
-
-
-- op:
-move var@1
-
-[Debug] Value to move:
-test1::List::Nil
[Debug] ctx_pop_frame:
# Ended regions: {}
# 2 frame(s)
@@ -11410,38 +8492,6 @@ test1::List::Nil
var@1 -> ⊥ : test1::List<i32> ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- @return -> @Box(test1::List::Nil) ;
- var@1 -> ⊥ : test1::List<i32> ;
-}
-
-
-- op:
-move @return
-
-[Debug] Value to move:
-@Box(test1::List::Nil)
[Debug]
**About to evaluate statement**: [
(l as test1::List::Cons).0 := 0: i32;
@@ -11506,30 +8556,6 @@ move @return
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> @Box(test1::List::Nil) ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0))
ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
@@ -11596,32 +8622,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> @Box(test1::List::Nil) ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-@Box(test1::List::Nil)
[Debug]
**About to evaluate statement**: [
set_discriminant(l, 0);
@@ -11745,32 +8745,6 @@ move var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move l
-
-[Debug] Value to move:
-test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }
[Debug]
**About to evaluate statement**: [
var@6 := move split_list<i32>(move var@7);
@@ -11831,32 +8805,6 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }
[Debug]
**About to evaluate statement**: [
var@8 := false;
@@ -11960,45 +8908,6 @@ test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); }
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
var@7 := false;
@@ -12101,45 +9010,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> ⊥ : bool ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
var@7 := true;
@@ -12241,45 +9111,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-true
-
[Debug]
**About to evaluate statement**: [
var@8 := true;
@@ -12380,45 +9211,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> true ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-true
-
[Debug]
**About to evaluate statement**: [
var@2 := discriminant(l);
@@ -12575,47 +9367,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> 0: isize ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> true ;
- var@8 -> true ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-0: isize
[Debug]
**About to evaluate statement**: [
var@8 := false;
@@ -12707,45 +9458,6 @@ move var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> true ;
- var@8 -> true ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
hd := move (l as test1::List::Cons).0;
@@ -12836,47 +9548,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> true ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move (l as test1::List::Cons).0
-
-[Debug] Value to move:
-0: i32
[Debug]
**About to evaluate statement**: [
var@7 := false;
@@ -12966,45 +9637,6 @@ move (l as test1::List::Cons).0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : isize ;
- hd -> 0: i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> true ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
tl := move (l as test1::List::Cons).1;
@@ -13093,47 +9725,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = ⊥ : i32; 1 = @Box(test1::List::Nil); } ;
- var@2 -> ⊥ : isize ;
- hd -> 0: i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move (l as test1::List::Cons).1
-
-[Debug] Value to move:
-@Box(test1::List::Nil)
[Debug]
**About to evaluate statement**: [
var@5 := move hd;
@@ -13221,47 +9812,6 @@ move (l as test1::List::Cons).1
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> 0: i32 ;
- tl -> @Box(test1::List::Nil) ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move hd
-
-[Debug] Value to move:
-0: i32
[Debug]
**About to evaluate statement**: [
var@6 := move deref_box(tl);
@@ -13348,47 +9898,6 @@ move hd
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> @Box(test1::List::Nil) ;
- var@5 -> 0: i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move deref_box(tl)
-
-[Debug] Value to move:
-test1::List::Nil
[Debug]
**About to evaluate statement**: [
(var@0).0 := move var@5;
@@ -13474,47 +9983,6 @@ test1::List::Nil
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : (i32, test1::List<i32>) ;
- l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> @Box(⊥ : test1::List<i32>) ;
- var@5 -> 0: i32 ;
- var@6 -> test1::List::Nil ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-0: i32
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjTuple 2), 0))
ty: (Types.Adt (Types.Tuple, [],
@@ -13605,47 +10073,6 @@ ty: (Types.Adt (Types.Tuple, [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> (0: i32, ⊥ : test1::List<i32>) ;
- l -> test1::List::Cons { 0 = ⊥ : i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> @Box(⊥ : test1::List<i32>) ;
- var@5 -> ⊥ : i32 ;
- var@6 -> test1::List::Nil ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-test1::List::Nil
[Debug]
**About to evaluate statement**: [
var@9 := move alloc::alloc::box_free<test1::List<i32>>(move tl);
@@ -13855,47 +10282,6 @@ test1::List::Nil
var@10 -> ⊥ : isize ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> (0: i32, test1::List::Nil) ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@5 -> ⊥ : i32 ;
- var@6 -> ⊥ : test1::List<i32> ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move var@0
-
-[Debug] Value to move:
-(0: i32, test1::List::Nil)
[Debug]
**About to evaluate statement**: [
hd := copy (var@6).0;
@@ -13955,32 +10341,6 @@ move var@0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> (0: i32, test1::List::Nil) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy (var@6).0
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
tl := move (var@6).1;
@@ -14039,32 +10399,6 @@ copy (var@6).0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> 0: i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> (0: i32, test1::List::Nil) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move (var@6).1
-
-[Debug] Value to move:
-test1::List::Nil
[Debug]
**About to evaluate statement**: [
var@10 := copy hd;
@@ -14122,32 +10456,6 @@ test1::List::Nil
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> 0: i32 ;
- tl -> test1::List::Nil ;
- var@6 -> (0: i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy hd
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
var@9 := move var@10 == 0: i32;
@@ -14204,56 +10512,6 @@ copy hd
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> 0: i32 ;
- tl -> test1::List::Nil ;
- var@6 -> (0: i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> 0: i32 ;
-}
-
-
-- op:
-move var@10
-
-[Debug] Value to move:
-0: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> 0: i32 ;
- tl -> test1::List::Nil ;
- var@6 -> (0: i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@8 := ¬ move var@9;
@@ -14309,32 +10567,6 @@ move var@10
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> 0: i32 ;
- tl -> test1::List::Nil ;
- var@6 -> (0: i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> true ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@9
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@8);
@@ -14389,32 +10621,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> 0: i32 ;
- tl -> test1::List::Nil ;
- var@6 -> (0: i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> false ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
drop(tl);
@@ -14585,38 +10791,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- y -> ⊥ : i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
y := 0: i32;
@@ -14705,38 +10879,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⊥ : i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@5 := &mut x;
@@ -15162,114 +11304,14 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⌊inactivated_mut@1⌋ ;
- var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ;
- var@6 -> ⌊inactivated_mut@3⌋ ;
- var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-true
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⌊inactivated_mut@1⌋ ;
- var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ;
- var@6 -> ⌊inactivated_mut@3⌋ ;
- var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@4
-
[Debug] activate_inactivated_mut_borrow: resulting value:
{ Values.value =
(Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 }));
ty = (Types.Integer Types.I32) }
-[Debug] Value to move:
-&mut@1 (0: i32)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
- var@6 -> ⌊inactivated_mut@3⌋ ;
- var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@6
-
[Debug] activate_inactivated_mut_borrow: resulting value:
{ Values.value =
(Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 }));
ty = (Types.Integer Types.I32) }
-[Debug] Value to move:
-&mut@3 (0: i32)
[Debug]
**About to evaluate statement**: [
var@4 := copy b;
@@ -15363,49 +11405,6 @@ move var@6
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (⌊mut@3⌋) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : &'_ mut (i32) ;
- b -> true ;
- x -> &mut@1 (0: i32) ;
- y -> &mut@3 (0: i32) ;
- var@4 -> ⊥ : bool ;
-}
-
-
-- op:
-copy b
-
-[Debug] Value to copy:
-true
[Debug]
**About to evaluate statement**: [
if (move var@4) {
@@ -15503,49 +11502,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (⌊mut@3⌋) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> ⊥ : &'_ mut (i32) ;
- b -> true ;
- x -> &mut@1 (0: i32) ;
- y -> &mut@3 (0: i32) ;
- var@4 -> true ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@0 := &mut *(x)
@@ -15709,49 +11665,6 @@ true
var@4 -> ⊥ : bool ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-# Frame 1:
-{
- var@0 -> &mut@4 (0: i32) ;
- b -> ⊥ : bool ;
- x -> ⊥ : &'_ mut (i32) ;
- y -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : bool ;
-}
-
-
-- op:
-move var@0
-
-[Debug] Value to move:
-&mut@4 (0: i32)
[Debug]
**About to evaluate statement**: [
var@8 := copy *(z);
@@ -15834,40 +11747,6 @@ move var@0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (0: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(z)
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
*(z) := copy var@8 + 1: i32;
@@ -15949,72 +11828,6 @@ copy *(z)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (0: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy var@8
-
-[Debug] Value to copy:
-0: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (0: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@12 := copy *(z);
@@ -16095,40 +11908,6 @@ copy var@8
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (1: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(z)
-
-[Debug] Value to copy:
-1: i32
[Debug]
**About to evaluate statement**: [
var@11 := move var@12 == 1: i32;
@@ -16208,72 +11987,6 @@ copy *(z)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (1: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> 1: i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@12
-
-[Debug] Value to move:
-1: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (1: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@10 := ¬ move var@11;
@@ -16352,40 +12065,6 @@ move var@12
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (1: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> true ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@11
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@10);
@@ -16463,40 +12142,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (1: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> false ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@10
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
var@15 := copy x;
@@ -16573,40 +12218,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (1: i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@4⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-1: i32
[Debug]
**About to evaluate statement**: [
var@14 := move var@15 == 1: i32;
@@ -16682,72 +12293,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> 1: i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@15
-
-[Debug] Value to move:
-1: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@13 := ¬ move var@14;
@@ -16822,40 +12367,6 @@ move var@15
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> true ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@14
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@13);
@@ -16929,40 +12440,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> false ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@13
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
var@18 := copy y;
@@ -17035,40 +12512,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (0: i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
var@17 := move var@18 == 0: i32;
@@ -17140,72 +12583,6 @@ copy y
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> 0: i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> 0: i32 ;
-}
-
-
-- op:
-move var@18
-
-[Debug] Value to move:
-0: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> 0: i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@16 := ¬ move var@17;
@@ -17276,40 +12653,6 @@ move var@18
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> 0: i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> true ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@17
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
assert(¬move var@16);
@@ -17379,40 +12722,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- y -> 0: i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> 0: i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> false ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@16
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
return
@@ -17513,30 +12822,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⊥ : (&'_ mut (u32), u32) ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-0: u32
-
[Debug]
**About to evaluate statement**: [
px := &mut x;
@@ -17664,32 +12949,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> &mut@0 (0: u32) ;
- p -> ⊥ : (&'_ mut (u32), u32) ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-move px
-
-[Debug] Value to move:
-&mut@0 (0: u32)
[Debug]
**About to evaluate statement**: [
(p).0 := move var@4;
@@ -17752,32 +13011,6 @@ move px
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⊥ : (&'_ mut (u32), u32) ;
- var@4 -> &mut@0 (0: u32) ;
- pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-&mut@0 (0: u32)
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjTuple 2), 0))
ty: (Types.Adt (Types.Tuple, [],
@@ -17845,30 +13078,6 @@ ty: (Types.Adt (Types.Tuple, [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> (&mut@0 (0: u32), ⊥ : u32) ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-1: u32
-
[Debug]
**About to evaluate statement**: [
pp0 := &mut p;
@@ -18046,30 +13255,6 @@ ty: (Types.Adt (Types.Tuple, [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⌊mut@1⌋ ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⌊inactivated_mut@2⌋ ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-move var@7
-
[Debug] activate_inactivated_mut_borrow: resulting value:
{ Values.value =
(Values.Adt
@@ -18097,8 +13282,6 @@ move var@7
(Types.Integer Types.U32)]
))
}
-[Debug] Value to move:
-&mut@2 ((&mut@0 (0: u32), 1: u32))
[Debug]
**About to evaluate statement**: [
var@2 := &mut *(x);
@@ -18322,39 +13505,6 @@ move var@7
var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
}
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 2 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⌊mut@1⌋ ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> &mut@1 (⌊mut@4⌋) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-# Frame 1:
-{
- var@0 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ;
- x -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@2 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
-}
-
-
-- op:
-move var@0
-
-[Debug] Value to move:
-&mut@4 ((&mut@0 (0: u32), 1: u32))
[Debug]
**About to evaluate statement**: [
y := 2: u32;
@@ -18412,30 +13562,6 @@ move var@0
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⌊mut@1⌋ ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> &mut@1 (⌊mut@4⌋) ;
- pp1 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-2: u32
-
[Debug]
**About to evaluate statement**: [
var@10 := &mut y;
@@ -18601,36 +13727,36 @@ move var@0
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ *((pp1).1) := 3: u32;
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
+ x -> 0: u32 ;
px -> ⊥ : &'_ mut (u32) ;
p -> ⌊mut@1⌋ ;
var@4 -> ⊥ : &'_ mut (u32) ;
pp0 -> &mut@1 (⌊mut@4⌋) ;
- pp1 -> &mut@4 ((&mut@0 (0: u32), 1: u32)) ;
+ pp1 -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ;
var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
y -> ⌊mut@5⌋ ;
- var@9 -> &mut@6 (2: u32) ;
+ var@9 -> ⊥ : &'_ mut (u32) ;
var@10 -> &mut@5 (⌊mut@6⌋) ;
}
-- op:
-move var@9
-[Debug] Value to move:
-&mut@6 (2: u32)
[Debug]
**About to evaluate statement**: [
- *((pp1).1) := 3: u32;
- return
+ *((pp1).1) := 3: u32
]
**Context**:
@@ -18656,7 +13782,7 @@ move var@9
[Debug]
**About to evaluate statement**: [
- *((pp1).1) := 3: u32
+ return
]
**Context**:
@@ -18671,7 +13797,7 @@ move var@9
p -> ⌊mut@1⌋ ;
var@4 -> ⊥ : &'_ mut (u32) ;
pp0 -> &mut@1 (⌊mut@4⌋) ;
- pp1 -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ;
+ pp1 -> &mut@4 ((&mut@6 (2: u32), 3: u32)) ;
var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
y -> ⌊mut@5⌋ ;
var@9 -> ⊥ : &'_ mut (u32) ;
@@ -18680,32 +13806,2920 @@ move var@9
-[Debug] eval_operand:
-- ctx:
+[Debug] test_unit_function: test_char
+[Debug]
+**About to evaluate statement**: [
+ var@0 := a;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : char ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@0 := a
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : char ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> a ;
+}
+
+
+
+[Debug] test_unit_function: test_loops
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop1(2: u32);
+ var@4 := copy x;
+ var@3 := move var@4 == 2: u32;
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- x -> 0: u32 ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⌊mut@1⌋ ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> &mut@1 (⌊mut@4⌋) ;
- pp1 -> &mut@4 ((&mut@6 (2: u32), 1: u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⌊mut@5⌋ ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> &mut@5 (⌊mut@6⌋) ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop1(2: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32;
+ s := 0: u32;
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ s := copy s * 2: u32;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32;
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ s := copy s * 2: u32;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ s := copy s * 2: u32;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> true ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> true ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
}
-- op:
-3: u32
[Debug]
**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@6 := copy i;
+ s := copy s + copy var@6;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> false ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s * 2: u32;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s * 2: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug] ctx_pop_frame:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+[Debug] ctx_pop_frame: locals to drop: [9,8,7,6,5,4,3,2,1]
+[Debug] drop_value: place: var@9
+[Debug] drop_value: place: var@8
+[Debug] drop_value: place: var@7
+[Debug] drop_value: place: var@6
+[Debug] drop_value: place: var@5
+[Debug] drop_value: place: var@4
+[Debug] drop_value: place: var@3
+[Debug] drop_value: place: i
+[Debug] drop_value: place: max
+[Debug] ctx_pop_frame: after dropping local variables:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> ⊥ : u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : (u32, bool) ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy x;
+ var@3 := move var@4 == 2: u32;
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -18716,24 +16730,104 @@ move var@9
# Frame 0:
{
var@0 -> ⊥ : () ;
- x -> 0: u32 ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⌊mut@1⌋ ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> &mut@1 (⌊mut@4⌋) ;
- pp1 -> &mut@4 ((&mut@6 (2: u32), 3: u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⌊mut@5⌋ ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> &mut@5 (⌊mut@6⌋) ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-[Debug] test_unit_function: test_char
[Debug]
**About to evaluate statement**: [
- var@0 := a;
+ var@4 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 == 2: u32;
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -18743,14 +16837,38 @@ move var@9
# Frame 0:
{
- var@0 -> ⊥ : char ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
[Debug]
**About to evaluate statement**: [
- var@0 := a
+ var@3 := move var@4 == 2: u32
]
**Context**:
@@ -18759,27 +16877,170 @@ move var@9
# Frame 0:
{
- var@0 -> ⊥ : char ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> ⊥ : char ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> true ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-- op:
-a
[Debug]
**About to evaluate statement**: [
+ var@2 := ¬ move var@3
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> true ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -18789,17 +17050,102 @@ a
# Frame 0:
{
- var@0 -> a ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> false ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-[Debug] test_function_symbolic: add_test
[Debug]
**About to evaluate statement**: [
- var@3 := copy x;
- var@4 := copy y;
- var@0 := copy var@3 + copy var@4;
+ assert(¬move var@2)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> false ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -18809,19 +17155,38 @@ a
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
[Debug]
**About to evaluate statement**: [
- var@3 := copy x
+ x := move test_loop2(2: u32)
]
**Context**:
@@ -18830,41 +17195,3268 @@ a
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32;
+ s := 0: u32;
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32;
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> true ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 0: u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@7
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> true ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> 1: u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@7
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@6 := copy i;
+ switch (move var@6) {
+ 17: u32 => {
+ break 0
+ }
+ _ => {
+ var@7 := copy i;
+ s := copy s + copy var@7;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> false ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug] ctx_pop_frame:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> 1: u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+[Debug] ctx_pop_frame: locals to drop: [9,8,7,6,5,4,3,2,1]
+[Debug] drop_value: place: var@9
+[Debug] drop_value: place: var@8
+[Debug] drop_value: place: var@7
+[Debug] drop_value: place: var@6
+[Debug] drop_value: place: var@5
+[Debug] drop_value: place: var@4
+[Debug] drop_value: place: var@3
+[Debug] drop_value: place: i
+[Debug] drop_value: place: max
+[Debug] ctx_pop_frame: after dropping local variables:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> ⊥ : u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : (u32, bool) ;
+ var@9 -> ⊥ : (u32, bool) ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-- op:
-copy x
-[Debug] Value to copy:
-s@0 : u32
[Debug]
**About to evaluate statement**: [
- var@4 := copy y;
- var@0 := copy var@3 + copy var@4;
+ var@8 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -18874,19 +20466,38 @@ s@0 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
[Debug]
**About to evaluate statement**: [
- var@4 := copy y
+ var@7 := move var@8 == 1: u32
]
**Context**:
@@ -18895,40 +20506,160 @@ s@0 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-- op:
-copy y
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
- var@0 := copy var@3 + copy var@4;
+ var@6 := ¬ move var@7
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -18938,19 +20669,38 @@ s@1 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> false ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
[Debug]
**About to evaluate statement**: [
- var@0 := copy var@3 + copy var@4
+ assert(¬move var@6)
]
**Context**:
@@ -18959,58 +20709,14960 @@ s@1 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> false ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-- op:
-copy var@3
-[Debug] Value to copy:
-s@0 : u32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop3(2: u32)
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32;
+ j := 0: u32;
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32;
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ nop
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ nop
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> false ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@17 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@17
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 0: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ nop
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 0: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 2: u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 2: u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ nop
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32;
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> false ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@17 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 0: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@17
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 2: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 2: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ continue 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> false ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
}
-- op:
-copy var@4
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
return
@@ -19018,26 +35670,316 @@ s@1 : u32
**Context**:
# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug] ctx_pop_frame:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 1: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> 1: u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+[Debug] ctx_pop_frame: locals to drop: [19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
+[Debug] drop_value: place: var@19
+[Debug] drop_value: place: var@18
+[Debug] drop_value: place: var@17
+[Debug] drop_value: place: var@16
+[Debug] drop_value: place: var@15
+[Debug] drop_value: place: var@14
+[Debug] drop_value: place: var@13
+[Debug] drop_value: place: var@12
+[Debug] drop_value: place: var@11
+[Debug] drop_value: place: var@10
+[Debug] drop_value: place: var@9
+[Debug] drop_value: place: var@8
+[Debug] drop_value: place: var@7
+[Debug] drop_value: place: var@6
+[Debug] drop_value: place: var@5
+[Debug] drop_value: place: var@4
+[Debug] drop_value: place: j
+[Debug] drop_value: place: i
+[Debug] drop_value: place: max
+[Debug] ctx_pop_frame: after dropping local variables:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 3: u32 ;
+ max -> ⊥ : u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> s@2 : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-[Debug] test_function_symbolic: subs_test
[Debug]
**About to evaluate statement**: [
- var@3 := copy x;
- var@4 := copy y;
- var@0 := copy var@3 - copy var@4;
+ var@12 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -19047,19 +35989,38 @@ s@1 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> 3: u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
[Debug]
**About to evaluate statement**: [
- var@3 := copy x
+ var@11 := move var@12 == 3: u32
]
**Context**:
@@ -19068,41 +36029,150 @@ s@1 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> 3: u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> true ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-- op:
-copy x
-[Debug] Value to copy:
-s@0 : u32
[Debug]
**About to evaluate statement**: [
- var@4 := copy y;
- var@0 := copy var@3 - copy var@4;
+ var@10 := ¬ move var@11
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> true ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -19112,19 +36182,17893 @@ s@0 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : (u32, bool) ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> false ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
[Debug]
**About to evaluate statement**: [
- var@4 := copy y
+ assert(¬move var@10)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> false ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop4(20: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 1: u32;
+ j := 0: u32;
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 20: u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 20: u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32;
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 20: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 20: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ };
+ j := 0: u32;
+ var@17 := copy i;
+ s := copy s + copy var@17;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> 20: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> 20: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i;
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j;
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12;
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy var@11 + copy var@12
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ };
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ switch (move var@10) {
+ 17: u32 => {
+ continue 0
+ }
+ _ => {
+ nop
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ nop
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i;
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14;
+ j := copy j + 1: u32;
+ break 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@14
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32;
+ break 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 1
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug] ctx_pop_frame:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 20: u32 ;
+ i -> 1: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> 1: u32 ;
+ var@12 -> 0: u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> 1: u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+[Debug] ctx_pop_frame: locals to drop: [19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
+[Debug] drop_value: place: var@19
+[Debug] drop_value: place: var@18
+[Debug] drop_value: place: var@17
+[Debug] drop_value: place: var@16
+[Debug] drop_value: place: var@15
+[Debug] drop_value: place: var@14
+[Debug] drop_value: place: var@13
+[Debug] drop_value: place: var@12
+[Debug] drop_value: place: var@11
+[Debug] drop_value: place: var@10
+[Debug] drop_value: place: var@9
+[Debug] drop_value: place: var@8
+[Debug] drop_value: place: var@7
+[Debug] drop_value: place: var@6
+[Debug] drop_value: place: var@5
+[Debug] drop_value: place: var@4
+[Debug] drop_value: place: j
+[Debug] drop_value: place: i
+[Debug] drop_value: place: max
+[Debug] ctx_pop_frame: after dropping local variables:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> ⊥ : u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : u32 ;
+ var@12 -> ⊥ : u32 ;
+ var@13 -> ⊥ : (u32, bool) ;
+ var@14 -> ⊥ : u32 ;
+ var@15 -> ⊥ : (u32, bool) ;
+ var@16 -> ⊥ : (u32, bool) ;
+ var@17 -> ⊥ : u32 ;
+ var@18 -> ⊥ : (u32, bool) ;
+ var@19 -> ⊥ : (u32, bool) ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@16 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> 1: u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@15 := move var@16 == 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> 1: u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> true ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := ¬ move var@15
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> true ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> false ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@14)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> false ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop5(2: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32;
+ j := 0: u32;
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32;
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32;
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 0: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 0: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@10
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 0: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> true ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 0: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@10
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ j := copy j + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 1: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> false ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@13 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@13
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 1: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> true ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy j
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 < move var@9
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 2: u32 ;
+ var@9 -> 2: u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> false ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@13 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 0: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@13
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i;
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max;
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6;
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 2: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := move var@5 < move var@6
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> 2: u32 ;
+ var@6 -> 2: u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@4) {
+ loop {
+ var@8 := copy j;
+ var@9 := copy max;
+ var@7 := move var@8 < move var@9;
+ if (move var@7) {
+ var@10 := copy j;
+ s := copy s + copy var@10;
+ j := copy j + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+ };
+ var@13 := copy i;
+ s := copy s + copy var@13;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> false ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug] ctx_pop_frame:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ j -> 2: u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> 1: u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> 1: u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+[Debug] ctx_pop_frame: locals to drop: [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
+[Debug] drop_value: place: var@15
+[Debug] drop_value: place: var@14
+[Debug] drop_value: place: var@13
+[Debug] drop_value: place: var@12
+[Debug] drop_value: place: var@11
+[Debug] drop_value: place: var@10
+[Debug] drop_value: place: var@9
+[Debug] drop_value: place: var@8
+[Debug] drop_value: place: var@7
+[Debug] drop_value: place: var@6
+[Debug] drop_value: place: var@5
+[Debug] drop_value: place: var@4
+[Debug] drop_value: place: j
+[Debug] drop_value: place: i
+[Debug] drop_value: place: max
+[Debug] ctx_pop_frame: after dropping local variables:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> ⊥ : u32 ;
+ i -> ⊥ : u32 ;
+ j -> ⊥ : u32 ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : u32 ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : u32 ;
+ var@10 -> ⊥ : u32 ;
+ var@11 -> ⊥ : (u32, bool) ;
+ var@12 -> ⊥ : (u32, bool) ;
+ var@13 -> ⊥ : u32 ;
+ var@14 -> ⊥ : (u32, bool) ;
+ var@15 -> ⊥ : (u32, bool) ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@20 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> 2: u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@19 := move var@20 == 2: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> 2: u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> true ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@18 := ¬ move var@19
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> true ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> false ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@18)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> false ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop6(2: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32;
+ s := 0: u32;
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+ };
+ s := copy s + 1: u32;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32;
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+ };
+ s := copy s + 1: u32;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := 0: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> ⊥ : u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+ };
+ s := copy s + 1: u32;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ loop {
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 0: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> true ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := move var@7 > 3: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> 0: u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> false ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@8
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 0: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 1: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> true ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> 1: u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := move var@7 > 3: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> 1: u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> false ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 0: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + copy var@8
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 0: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32;
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ i := copy i + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 1: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ continue 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i;
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy i
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max;
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := copy max
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5;
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 < move var@5
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> 2: u32 ;
+ var@5 -> 2: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ if (move var@3) {
+ var@7 := copy i;
+ var@6 := move var@7 > 3: u32;
+ if (move var@6) {
+ break 0
+ }
+ else {
+ var@8 := copy i;
+ s := copy s + copy var@8;
+ i := copy i + 1: u32;
+ continue 0
+ }
+ }
+ else {
+ break 0
+ }
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> false ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ break 0
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + 1: u32;
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ s := copy s + 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 1: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+
+
+[Debug] ctx_pop_frame:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> 2: u32 ;
+ i -> 2: u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> 1: u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+[Debug] ctx_pop_frame: locals to drop: [11,10,9,8,7,6,5,4,3,2,1]
+[Debug] drop_value: place: var@11
+[Debug] drop_value: place: var@10
+[Debug] drop_value: place: var@9
+[Debug] drop_value: place: var@8
+[Debug] drop_value: place: var@7
+[Debug] drop_value: place: var@6
+[Debug] drop_value: place: var@5
+[Debug] drop_value: place: var@4
+[Debug] drop_value: place: var@3
+[Debug] drop_value: place: i
+[Debug] drop_value: place: max
+[Debug] ctx_pop_frame: after dropping local variables:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+# Frame 1:
+{
+ s -> 2: u32 ;
+ max -> ⊥ : u32 ;
+ i -> ⊥ : u32 ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ var@5 -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : u32 ;
+ var@8 -> ⊥ : u32 ;
+ var@9 -> ⊥ : (u32, bool) ;
+ var@10 -> ⊥ : (u32, bool) ;
+ var@11 -> ⊥ : (u32, bool) ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@24 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> 2: u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@23 := move var@24 == 2: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> 2: u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> true ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@22 := ¬ move var@23
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> true ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> false ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@22)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> false ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 2: u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> 3: u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> 1: u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> 2: u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug] test_unit_function: id_mut_mut_test1
+[Debug]
+**About to evaluate statement**: [
+ x := 0: i32;
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := 0: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 0: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ px := &mut x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 0: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (0: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppx := &mut px
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (0: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (&mut@0 (0: i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := &two-phase *(ppx)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (&mut@0 (0: i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⌊inactivated_mut@2⌋ ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppy := move id_mut_mut<i32>(move var@5)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⌊inactivated_mut@2⌋ ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug] activate_inactivated_mut_borrow: resulting value:
+{ Values.value =
+ (Values.Borrow
+ (Values.MutBorrow (<opaque>,
+ { Values.value =
+ (Values.Concrete
+ (Values.Scalar { Values.value = 0; int_ty = Types.I32 }));
+ ty = (Types.Integer Types.I32) }
+ )));
+ ty = (Types.Ref (Types.Erased, (Types.Integer Types.I32), Types.Mut)) }
+[Debug]
+**About to evaluate statement**: [
+ var@2 := &mut *(x);
+ var@0 := &mut *(var@2);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ x -> &mut@2 (&mut@0 (0: i32)) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@2 := &mut *(x)
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ x -> &mut@2 (&mut@0 (0: i32)) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@0 := &mut *(var@2);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ x -> &mut@2 (⌊mut@3⌋) ;
+ var@2 -> &mut@3 (&mut@0 (0: i32)) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@0 := &mut *(var@2)
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ x -> &mut@2 (⌊mut@3⌋) ;
+ var@2 -> &mut@3 (&mut@0 (0: i32)) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> &mut@4 (&mut@0 (0: i32)) ;
+ x -> &mut@2 (⌊mut@3⌋) ;
+ var@2 -> &mut@3 (⌊mut@4⌋) ;
+}
+
+
+
+[Debug] ctx_pop_frame:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> &mut@4 (&mut@0 (0: i32)) ;
+ x -> &mut@2 (⌊mut@3⌋) ;
+ var@2 -> &mut@3 (⌊mut@4⌋) ;
+}
+
+[Debug] ctx_pop_frame: locals to drop: [2,1]
+[Debug] drop_value: place: var@2
+[Debug] drop_value: place: x
+[Debug] ctx_pop_frame: after dropping local variables:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> &mut@4 (&mut@0 (0: i32)) ;
+ x -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (0: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(*(ppy)) := 1: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (0: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy *(px)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (1: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 == 1: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (1: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> 1: i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (1: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> true ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (1: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> true ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (1: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> false ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@6)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (1: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> false ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (1: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (1: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> 1: i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := move var@11 == 1: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> 1: i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> true ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := ¬ move var@10
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> true ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> false ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@9)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> false ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug] test_unit_function: id_mut_mut_test2
+[Debug]
+**About to evaluate statement**: [
+ x := 0: i32;
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := 0: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 0: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ px := &mut x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 0: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (0: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppx := &mut px
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (0: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (&mut@0 (0: i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := &two-phase *(ppx)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (&mut@0 (0: i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⌊inactivated_mut@2⌋ ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppy := move id_mut_mut<i32>(move var@5)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⌊inactivated_mut@2⌋ ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug] activate_inactivated_mut_borrow: resulting value:
+{ Values.value =
+ (Values.Borrow
+ (Values.MutBorrow (<opaque>,
+ { Values.value =
+ (Values.Concrete
+ (Values.Scalar { Values.value = 0; int_ty = Types.I32 }));
+ ty = (Types.Integer Types.I32) }
+ )));
+ ty = (Types.Ref (Types.Erased, (Types.Integer Types.I32), Types.Mut)) }
+[Debug]
+**About to evaluate statement**: [
+ var@2 := &mut *(x);
+ var@0 := &mut *(var@2);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ x -> &mut@2 (&mut@0 (0: i32)) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@2 := &mut *(x)
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ x -> &mut@2 (&mut@0 (0: i32)) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@0 := &mut *(var@2);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ x -> &mut@2 (⌊mut@3⌋) ;
+ var@2 -> &mut@3 (&mut@0 (0: i32)) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@0 := &mut *(var@2)
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ x -> &mut@2 (⌊mut@3⌋) ;
+ var@2 -> &mut@3 (&mut@0 (0: i32)) ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> &mut@4 (&mut@0 (0: i32)) ;
+ x -> &mut@2 (⌊mut@3⌋) ;
+ var@2 -> &mut@3 (⌊mut@4⌋) ;
+}
+
+
+
+[Debug] ctx_pop_frame:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> &mut@4 (&mut@0 (0: i32)) ;
+ x -> &mut@2 (⌊mut@3⌋) ;
+ var@2 -> &mut@3 (⌊mut@4⌋) ;
+}
+
+[Debug] ctx_pop_frame: locals to drop: [2,1]
+[Debug] drop_value: place: var@2
+[Debug] drop_value: place: x
+[Debug] ctx_pop_frame: after dropping local variables:
+# Ended regions: {}
+# 2 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+# Frame 1:
+{
+ var@0 -> &mut@4 (&mut@0 (0: i32)) ;
+ x -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (0: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(*(ppy)) := 1: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (0: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ y := 2: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 2: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ py := &mut y
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 2: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (2: i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := &mut *(py)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (2: i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> &mut@6 (2: i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(ppy) := move var@8
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@0 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> &mut@6 (2: i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@6 (2: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy *(px)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@4⌋) ;
+ ppy -> &mut@4 (&mut@6 (2: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (2: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> 2: i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := move var@11 == 2: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (2: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> 2: i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (2: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> true ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := ¬ move var@10
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (2: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> true ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (2: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> false ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@9)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (2: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> false ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (2: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(px) := 3: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (2: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> 1: i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@13 := move var@14 == 1: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> 1: i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> true ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := ¬ move var@13
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> true ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> false ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@12)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> false ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@17 := copy y
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> &mut@6 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 3: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> 3: i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@16 := move var@17 == 3: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 3: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> 3: i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 3: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> true ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@15 := ¬ move var@16
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 3: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> true ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 3: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> false ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@15)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 3: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> false ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 1: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 3: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug] test_function_symbolic: add_test
+[Debug]
+**About to evaluate statement**: [
+ var@3 := copy x;
+ var@4 := copy y;
+ var@0 := copy var@3 + copy var@4;
+ return
]
**Context**:
@@ -19136,15 +54080,19 @@ s@0 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@3 -> ⊥ : u32 ;
var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : (u32, bool) ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@3 := copy x
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19153,20 +54101,17 @@ s@0 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@3 -> ⊥ : u32 ;
var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : (u32, bool) ;
}
-- op:
-copy y
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
- var@0 := copy var@3 - copy var@4;
+ var@4 := copy y;
+ var@0 := copy var@3 + copy var@4;
return
]
@@ -19180,7 +54125,7 @@ s@1 : u32
x -> s@0 : u32 ;
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
+ var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : (u32, bool) ;
}
@@ -19188,7 +54133,7 @@ s@1 : u32
[Debug]
**About to evaluate statement**: [
- var@0 := copy var@3 - copy var@4
+ var@4 := copy y
]
**Context**:
@@ -19201,14 +54146,19 @@ s@1 : u32
x -> s@0 : u32 ;
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
+ var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : (u32, bool) ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@0 := copy var@3 + copy var@4;
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19223,13 +54173,13 @@ s@1 : u32
}
-- op:
-copy var@3
-[Debug] Value to copy:
-s@0 : u32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@0 := copy var@3 + copy var@4
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19244,11 +54194,7 @@ s@0 : u32
}
-- op:
-copy var@4
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
return
@@ -19270,12 +54216,12 @@ s@1 : u32
-[Debug] test_function_symbolic: div_test
+[Debug] test_function_symbolic: subs_test
[Debug]
**About to evaluate statement**: [
var@3 := copy x;
var@4 := copy y;
- var@0 := move var@3 / move var@4;
+ var@0 := copy var@3 - copy var@4;
return
]
@@ -19290,7 +54236,7 @@ s@1 : u32
y -> s@1 : u32 ;
var@3 -> ⊥ : u32 ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : bool ;
+ var@5 -> ⊥ : (u32, bool) ;
}
@@ -19311,36 +54257,15 @@ s@1 : u32
y -> s@1 : u32 ;
var@3 -> ⊥ : u32 ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : bool ;
-}
-
-
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : bool ;
+ var@5 -> ⊥ : (u32, bool) ;
}
-- op:
-copy x
-[Debug] Value to copy:
-s@0 : u32
[Debug]
**About to evaluate statement**: [
var@4 := copy y;
- var@0 := move var@3 / move var@4;
+ var@0 := copy var@3 - copy var@4;
return
]
@@ -19355,7 +54280,7 @@ s@0 : u32
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : bool ;
+ var@5 -> ⊥ : (u32, bool) ;
}
@@ -19376,13 +54301,18 @@ s@0 : u32
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : bool ;
+ var@5 -> ⊥ : (u32, bool) ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@0 := copy var@3 - copy var@4;
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19392,20 +54322,15 @@ s@0 : u32
x -> s@0 : u32 ;
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : bool ;
+ var@4 -> s@1 : u32 ;
+ var@5 -> ⊥ : (u32, bool) ;
}
-- op:
-copy y
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
- var@0 := move var@3 / move var@4;
- return
+ var@0 := copy var@3 - copy var@4
]
**Context**:
@@ -19419,14 +54344,14 @@ s@1 : u32
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
var@4 -> s@1 : u32 ;
- var@5 -> ⊥ : bool ;
+ var@5 -> ⊥ : (u32, bool) ;
}
[Debug]
**About to evaluate statement**: [
- var@0 := move var@3 / move var@4
+ return
]
**Context**:
@@ -19435,18 +54360,26 @@ s@1 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
+ var@0 -> s@2 : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
var@4 -> s@1 : u32 ;
- var@5 -> ⊥ : bool ;
+ var@5 -> ⊥ : (u32, bool) ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug] test_function_symbolic: div_test
+[Debug]
+**About to evaluate statement**: [
+ var@3 := copy x;
+ var@4 := copy y;
+ var@0 := move var@3 / move var@4;
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19455,19 +54388,19 @@ s@1 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
+ var@3 -> ⊥ : u32 ;
+ var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
-- op:
-move var@3
-[Debug] Value to move:
-s@0 : u32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@3 := copy x
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19477,18 +54410,16 @@ s@0 : u32
x -> s@0 : u32 ;
y -> s@1 : u32 ;
var@3 -> ⊥ : u32 ;
- var@4 -> s@1 : u32 ;
+ var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
-- op:
-move var@4
-[Debug] Value to move:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
+ var@4 := copy y;
+ var@0 := move var@3 / move var@4;
return
]
@@ -19498,23 +54429,19 @@ s@1 : u32
# Frame 0:
{
- var@0 -> s@2 : u32 ;
+ var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@3 -> s@0 : u32 ;
var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
-[Debug] test_function_symbolic: rem_test
[Debug]
**About to evaluate statement**: [
- var@3 := copy x;
- var@4 := copy y;
- var@0 := move var@3 % move var@4;
- return
+ var@4 := copy y
]
**Context**:
@@ -19526,7 +54453,7 @@ s@1 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@3 -> s@0 : u32 ;
var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
@@ -19535,7 +54462,8 @@ s@1 : u32
[Debug]
**About to evaluate statement**: [
- var@3 := copy x
+ var@0 := move var@3 / move var@4;
+ return
]
**Context**:
@@ -19547,15 +54475,19 @@ s@1 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
+ var@3 -> s@0 : u32 ;
+ var@4 -> s@1 : u32 ;
var@5 -> ⊥ : bool ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@0 := move var@3 / move var@4
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19564,21 +54496,15 @@ s@1 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
+ var@3 -> s@0 : u32 ;
+ var@4 -> s@1 : u32 ;
var@5 -> ⊥ : bool ;
}
-- op:
-copy x
-[Debug] Value to copy:
-s@0 : u32
[Debug]
**About to evaluate statement**: [
- var@4 := copy y;
- var@0 := move var@3 % move var@4;
return
]
@@ -19588,19 +54514,23 @@ s@0 : u32
# Frame 0:
{
- var@0 -> ⊥ : u32 ;
+ var@0 -> s@2 : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@3 -> ⊥ : u32 ;
var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
+[Debug] test_function_symbolic: rem_test
[Debug]
**About to evaluate statement**: [
- var@4 := copy y
+ var@3 := copy x;
+ var@4 := copy y;
+ var@0 := move var@3 % move var@4;
+ return
]
**Context**:
@@ -19612,15 +54542,19 @@ s@0 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@3 -> ⊥ : u32 ;
var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@3 := copy x
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19629,19 +54563,16 @@ s@0 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> s@0 : u32 ;
+ var@3 -> ⊥ : u32 ;
var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
-- op:
-copy y
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
+ var@4 := copy y;
var@0 := move var@3 % move var@4;
return
]
@@ -19656,7 +54587,7 @@ s@1 : u32
x -> s@0 : u32 ;
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
+ var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
@@ -19664,7 +54595,7 @@ s@1 : u32
[Debug]
**About to evaluate statement**: [
- var@0 := move var@3 % move var@4
+ var@4 := copy y
]
**Context**:
@@ -19677,14 +54608,19 @@ s@1 : u32
x -> s@0 : u32 ;
y -> s@1 : u32 ;
var@3 -> s@0 : u32 ;
- var@4 -> s@1 : u32 ;
+ var@4 -> ⊥ : u32 ;
var@5 -> ⊥ : bool ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@0 := move var@3 % move var@4;
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19699,13 +54635,13 @@ s@1 : u32
}
-- op:
-move var@3
-[Debug] Value to move:
-s@0 : u32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@0 := move var@3 % move var@4
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -19714,17 +54650,13 @@ s@0 : u32
var@0 -> ⊥ : u32 ;
x -> s@0 : u32 ;
y -> s@1 : u32 ;
- var@3 -> ⊥ : u32 ;
+ var@3 -> s@0 : u32 ;
var@4 -> s@1 : u32 ;
var@5 -> ⊥ : bool ;
}
-- op:
-move var@4
-[Debug] Value to move:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
return
@@ -19811,30 +54743,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-23: u32
-
[Debug]
**About to evaluate statement**: [
y := 44: u32;
@@ -19898,30 +54806,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-44: u32
-
[Debug]
**About to evaluate statement**: [
z := 67: u32;
@@ -19984,30 +54868,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> ⊥ : u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-67: u32
-
[Debug]
**About to evaluate statement**: [
var@5 := copy x;
@@ -20069,32 +54929,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-23: u32
[Debug]
**About to evaluate statement**: [
(p).x := move var@5;
@@ -20155,32 +54989,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> ⊥ : test1::Pair<u32, u32> ;
- var@5 -> 23: u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-23: u32
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (0, None)), 0))
ty: (Types.Adt ((Types.AdtId 0), [],
@@ -20244,30 +55052,6 @@ ty: (Types.Adt ((Types.AdtId 0), [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> test1::Pair { x = 23: u32; y = ⊥ : u32; } ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-67: u32
-
[Debug]
**About to evaluate statement**: [
(s as test1::Sum::Right).0 := true;
@@ -20326,30 +55110,6 @@ ty: (Types.Adt ((Types.AdtId 0), [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> test1::Pair { x = 23: u32; y = 67: u32; } ;
- var@5 -> ⊥ : u32 ;
- s -> ⊥ : test1::Sum<u32, bool> ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-true
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (6, (Some 1))), 0))
ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool]))
@@ -20466,30 +55226,6 @@ ty: (Types.Adt ((Types.AdtId 6), [], [(Types.Integer Types.U32); Types.Bool]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 23: u32 ;
- y -> 44: u32 ;
- z -> 67: u32 ;
- p -> test1::Pair { x = 23: u32; y = 67: u32; } ;
- var@5 -> ⊥ : u32 ;
- s -> test1::Sum::Right { 0 = true; } ;
- o -> ⊥ : test1::One<u64> ;
- e0 -> ⊥ : test1::EmptyEnum ;
- e1 -> ⊥ : test1::EmptyEnum ;
- enum0 -> ⊥ : test1::Enum ;
-}
-
-
-- op:
-3: u64
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (2, (Some 0))), 0))
ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)]))
@@ -20733,27 +55469,6 @@ ty: (Types.Adt ((Types.AdtId 2), [], [(Types.Integer Types.U64)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-s@0 : u32
[Debug]
**About to evaluate statement**: [
var@5 := copy y;
@@ -20804,27 +55519,6 @@ s@0 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> s@0 : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
var@3 := move var@4 >= move var@5;
@@ -20874,48 +55568,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> s@0 : u32 ;
- var@5 -> s@1 : u32 ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-s@0 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> s@1 : u32 ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
if (move var@3) {
@@ -20969,27 +55621,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> true ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@0 := copy x
@@ -21011,48 +55642,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-s@0 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> false ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
var@0 := copy y
@@ -21074,27 +55663,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : u32 ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- var@3 -> ⊥ : bool ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
return
@@ -21197,52 +55765,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-4: u32
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-3: u32
-
[Debug]
**About to evaluate statement**: [
y := move get_max(10: u32, 11: u32);
@@ -21301,52 +55823,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-10: u32
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> ⊥ : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-11: u32
-
[Debug]
**About to evaluate statement**: [
var@4 := copy x;
@@ -21404,31 +55880,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> ⊥ : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-s@0 : u32
[Debug]
**About to evaluate statement**: [
var@5 := copy y;
@@ -21485,31 +55936,6 @@ s@0 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> s@0 : u32 ;
- var@5 -> ⊥ : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
z := copy var@4 + copy var@5;
@@ -21565,56 +55991,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> s@0 : u32 ;
- var@5 -> s@1 : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy var@4
-
-[Debug] Value to copy:
-s@0 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> ⊥ : u32 ;
- var@4 -> s@0 : u32 ;
- var@5 -> s@1 : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy var@5
-
-[Debug] Value to copy:
-s@1 : u32
[Debug]
**About to evaluate statement**: [
var@9 := copy z;
@@ -21669,31 +56045,6 @@ s@1 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> s@2 : u32 ;
- var@4 -> s@0 : u32 ;
- var@5 -> s@1 : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-copy z
-
-[Debug] Value to copy:
-s@2 : u32
[Debug]
**About to evaluate statement**: [
var@8 := move var@9 == 15: u32;
@@ -21747,54 +56098,6 @@ s@2 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> s@2 : u32 ;
- var@4 -> s@0 : u32 ;
- var@5 -> s@1 : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> s@2 : u32 ;
-}
-
-
-- op:
-move var@9
-
-[Debug] Value to move:
-s@2 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> s@2 : u32 ;
- var@4 -> s@0 : u32 ;
- var@5 -> s@1 : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-15: u32
-
[Debug]
**About to evaluate statement**: [
var@7 := ¬ move var@8;
@@ -21847,31 +56150,6 @@ s@2 : u32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> s@2 : u32 ;
- var@4 -> s@0 : u32 ;
- var@5 -> s@1 : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> ⊥ : bool ;
- var@8 -> s@3 : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-s@3 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@7);
@@ -21923,31 +56201,6 @@ s@3 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@0 : u32 ;
- y -> s@1 : u32 ;
- z -> s@2 : u32 ;
- var@4 -> s@0 : u32 ;
- var@5 -> s@1 : u32 ;
- var@6 -> ⊥ : (u32, bool) ;
- var@7 -> true ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : u32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
return
@@ -22016,25 +56269,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : i32 ;
- x -> s@0 : i32 ;
- var@2 -> ⊥ : i32 ;
- var@3 -> ⊥ : bool ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-s@0 : i32
[Debug]
**About to evaluate statement**: [
var@3 := copy var@2 == -2147483648: i32;
@@ -22076,42 +56310,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : i32 ;
- x -> s@0 : i32 ;
- var@2 -> s@0 : i32 ;
- var@3 -> ⊥ : bool ;
-}
-
-
-- op:
-copy var@2
-
-[Debug] Value to copy:
-s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : i32 ;
- x -> s@0 : i32 ;
- var@2 -> s@0 : i32 ;
- var@3 -> ⊥ : bool ;
-}
-
-
-- op:
--2147483648: i32
-
[Debug]
**About to evaluate statement**: [
assert(¬move var@3);
@@ -22152,25 +56350,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : i32 ;
- x -> s@0 : i32 ;
- var@2 -> s@0 : i32 ;
- var@3 -> true ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@0 := - move var@2;
@@ -22210,25 +56389,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : i32 ;
- x -> s@0 : i32 ;
- var@2 -> s@0 : i32 ;
- var@3 -> ⊥ : bool ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-s@0 : i32
[Debug]
**About to evaluate statement**: [
return
@@ -22287,22 +56447,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- y -> ⊥ : i32 ;
-}
-
-
-- op:
-3: i32
-
[Debug]
**About to evaluate statement**: [
y := -3: i32;
@@ -22340,22 +56484,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 3: i32 ;
- y -> ⊥ : i32 ;
-}
-
-
-- op:
--3: i32
-
[Debug]
**About to evaluate statement**: [
return
@@ -22427,26 +56555,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
px := &mut x;
@@ -22597,26 +56705,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⌊mut@1⌋ ;
- ppx -> &mut@1 (&mut@0 (0: i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@6 := copy x;
@@ -22665,28 +56753,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⌊mut@1⌋ ;
- ppx -> &mut@1 (&mut@0 (1: i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-1: i32
[Debug]
**About to evaluate statement**: [
var@5 := move var@6 == 1: i32;
@@ -22734,48 +56800,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> 1: i32 ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-1: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
var@4 := ¬ move var@5;
@@ -22822,28 +56846,6 @@ move var@6
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> ⊥ : bool ;
- var@5 -> s@0 : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-s@0 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@4);
@@ -22889,28 +56891,6 @@ s@0 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 1: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@4 -> true ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
return
@@ -23026,38 +57006,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- y -> ⊥ : i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
y := 1: i32;
@@ -23149,38 +57097,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⊥ : i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-1: i32
-
[Debug]
**About to evaluate statement**: [
px := &mut x;
@@ -23621,40 +57537,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@1⌋ ;
- px -> ⌊mut@2⌋ ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> &mut@2 (&mut@0 (0: i32)) ;
- var@6 -> &mut@3 (1: i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-&mut@3 (1: i32)
[Debug]
**About to evaluate statement**: [
*(*(ppx)) := 2: i32;
@@ -23740,38 +57622,6 @@ move var@6
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⌊mut@2⌋ ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> &mut@2 (&mut@3 (1: i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-2: i32
-
[Debug]
**About to evaluate statement**: [
var@9 := copy *(px);
@@ -23856,40 +57706,6 @@ move var@6
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⌊mut@2⌋ ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> &mut@2 (&mut@3 (2: i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(px)
-
-[Debug] Value to copy:
-2: i32
[Debug]
**About to evaluate statement**: [
var@8 := move var@9 == 2: i32;
@@ -23973,72 +57789,6 @@ copy *(px)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> 2: i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@9
-
-[Debug] Value to move:
-2: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-2: i32
-
[Debug]
**About to evaluate statement**: [
var@7 := ¬ move var@8;
@@ -24121,40 +57871,6 @@ move var@9
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> s@0 : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-s@0 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@7);
@@ -24236,40 +57952,6 @@ s@0 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> true ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@12 := copy x;
@@ -24350,40 +58032,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
var@11 := move var@12 == 0: i32;
@@ -24463,72 +58111,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> 0: i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@12
-
-[Debug] Value to move:
-0: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@10 := ¬ move var@11;
@@ -24607,40 +58189,6 @@ move var@12
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> s@2 : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@11
-
-[Debug] Value to move:
-s@2 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@10);
@@ -24718,40 +58266,6 @@ s@2 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> true ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@10
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@15 := copy *(py);
@@ -24828,40 +58342,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> &mut@3 (2: i32) ;
- py -> &mut@1 (⌊mut@3⌋) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(py)
-
-[Debug] Value to copy:
-2: i32
[Debug]
**About to evaluate statement**: [
var@14 := move var@15 == 2: i32;
@@ -24937,72 +58417,6 @@ copy *(py)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> 2: i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@15
-
-[Debug] Value to move:
-2: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-2: i32
-
[Debug]
**About to evaluate statement**: [
var@13 := ¬ move var@14;
@@ -25077,40 +58491,6 @@ move var@15
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> s@4 : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@14
-
-[Debug] Value to move:
-s@4 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@13);
@@ -25184,40 +58564,6 @@ s@4 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> true ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@13
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@18 := copy y;
@@ -25290,40 +58636,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⌊mut@1⌋ ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> &mut@1 (2: i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-2: i32
[Debug]
**About to evaluate statement**: [
var@17 := move var@18 == 2: i32;
@@ -25395,72 +58707,6 @@ copy y
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> 2: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> 2: i32 ;
-}
-
-
-- op:
-move var@18
-
-[Debug] Value to move:
-2: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> 2: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-2: i32
-
[Debug]
**About to evaluate statement**: [
var@16 := ¬ move var@17;
@@ -25531,40 +58777,6 @@ move var@18
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> 2: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> s@6 : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@17
-
-[Debug] Value to move:
-s@6 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@16);
@@ -25634,40 +58846,6 @@ s@6 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> 2: i32 ;
- px -> ⊥ : &'_ mut (i32) ;
- py -> ⊥ : &'_ mut (i32) ;
- ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : i32 ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> true ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@16
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
return
@@ -25795,25 +58973,6 @@ true
- type_params: [test1::List<i32>]
- args: [move var@3]
- dest: var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> test1::List::Nil ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-test1::List::Nil
[Debug]
**About to evaluate statement**: [
(l as test1::List::Cons).0 := 0: i32;
@@ -25856,23 +59015,6 @@ test1::List::Nil
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
-}
-
-
-- op:
-0: i32
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0))
ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
@@ -25917,25 +59059,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-s@0 : std::boxed::Box<test1::List<i32>>
[Debug]
**About to evaluate statement**: [
set_discriminant(l, 0);
@@ -26100,28 +59223,6 @@ s@0 : std::boxed::Box<test1::List<i32>>
- type_params: [i32]
- args: [0: i32]
- dest: b
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> ⊥ : std::boxed::Box<i32> ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@3 := &two-phase b;
@@ -26242,28 +59343,6 @@ s@0 : std::boxed::Box<test1::List<i32>>
- type_params: [i32]
- args: [move var@3]
- dest: x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- b -> @shared_loan({0}, s@0 : std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ mut (i32) ;
- var@3 -> ⌊inactivated_mut@0⌋ ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@3
-
[Debug] activate_inactivated_mut_borrow: resulting value:
{ Values.value =
(Values.Symbolic
@@ -26274,8 +59353,6 @@ move var@3
});
ty =
(Types.Adt ((Types.Assumed Types.Box), [], [(Types.Integer Types.I32)])) }
-[Debug] Value to move:
-&mut@0 (s@0 : std::boxed::Box<i32>)
[Debug]
**About to evaluate statement**: [
*(x) := 1: i32;
@@ -26340,8 +59417,9 @@ move var@3
-[Debug] eval_operand:
-- ctx:
+[Debug] expand_symbolic_value: s@1 : &r@0 mut (i32)
+
+- original context:
# Ended regions: {}
# 1 frame(s)
@@ -26363,8 +59441,27 @@ move var@3
}
-- op:
-1: i32
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ b -> ⌊mut@0⌋ ;
+ x -> &mut@1 (s@2 : i32) ;
+ var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
+ x -> ⊥ : &'_ (i32) ;
+ var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)),
+ ⌊mut@1, proj_loans (s@2 : i32)⌋
+ }
+}
+
[Debug]
**About to evaluate statement**: [
@@ -26429,6 +59526,112 @@ move var@3
+[Debug] end_abstraction: 0
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ b -> ⌊mut@0⌋ ;
+ x -> &mut@1 (1: i32) ;
+ var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
+ x -> ⊥ : &'_ (i32) ;
+ var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)),
+ ⌊mut@1, proj_loans (s@2 : i32)⌋
+ }
+}
+
+[Debug] end_abstraction: 0
+- context after parent abstractions ended:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ b -> ⌊mut@0⌋ ;
+ x -> &mut@1 (1: i32) ;
+ var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
+ x -> ⊥ : &'_ (i32) ;
+ var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)),
+ ⌊mut@1, proj_loans (s@2 : i32)⌋
+ }
+}
+
+[Debug] end_abstraction: 0
+- context after loans ended:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ b -> ⌊mut@0⌋ ;
+ x -> ⊥ : &'_ mut (i32) ;
+ var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
+ x -> ⊥ : &'_ (i32) ;
+ var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)),
+ @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }
+ }
+}
+
+[Debug] end_abstraction: 0
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ b -> ⌊mut@0⌋ ;
+ x -> &mut@1 (1: i32) ;
+ var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
+ x -> ⊥ : &'_ (i32) ;
+ var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@0 (proj_borrows (s@0 : std::boxed::Box<i32> <: std::boxed::Box<i32>)),
+ ⌊mut@1, proj_loans (s@2 : i32)⌋
+ }
+}
+
+
+- new context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ b -> s@3 : std::boxed::Box<i32> ;
+ x -> ⊥ : &'_ mut (i32) ;
+ var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
+ x -> ⊥ : &'_ (i32) ;
+ var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+}
+
[Debug]
**About to evaluate statement**: [
x := move core::ops::deref::Deref<Box<i32>>::deref(move var@5);
@@ -26488,8 +59691,17 @@ move var@3
- type_params: [i32]
- args: [move var@5]
- dest: x
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy *(x);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ drop(b);
+ return
+]
+
+**Context**:
# Ended regions: {0}
# 1 frame(s)
@@ -26499,27 +59711,22 @@ move var@3
b -> @shared_loan({2}, s@3 : std::boxed::Box<i32>) ;
x -> ⊥ : &'_ mut (i32) ;
var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⊥ : &'_ (i32) ;
- var@5 -> ⌊shared@2⌋ ;
+ x -> s@4 : &r@1 (i32) ;
+ var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
var@6 -> ⊥ : bool ;
var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ ⌊shared@2⌋,
+ proj_loans (s@4 : &r@1 (i32))
+ }
}
-- op:
-move var@5
-[Debug] Value to move:
-⌊shared@2⌋
[Debug]
**About to evaluate statement**: [
- var@8 := copy *(x);
- var@7 := move var@8 == 1: i32;
- var@6 := ¬ move var@7;
- assert(¬move var@6);
- drop(b);
- return
+ var@8 := copy *(x)
]
**Context**:
@@ -26545,12 +59752,9 @@ move var@5
-[Debug]
-**About to evaluate statement**: [
- var@8 := copy *(x)
-]
+[Debug] expand_symbolic_value: s@4 : &r@1 (i32)
-**Context**:
+- original context:
# Ended regions: {0}
# 1 frame(s)
@@ -26572,9 +59776,7 @@ move var@5
}
-
-[Debug] eval_operand:
-- ctx:
+- new context:
# Ended regions: {0}
# 1 frame(s)
@@ -26584,23 +59786,18 @@ move var@5
b -> @shared_loan({2}, s@3 : std::boxed::Box<i32>) ;
x -> ⊥ : &'_ mut (i32) ;
var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> s@4 : &r@1 (i32) ;
+ x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
var@6 -> ⊥ : bool ;
var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
⌊shared@2⌋,
- proj_loans (s@4 : &r@1 (i32))
+ @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32))
}
}
-- op:
-copy *(x)
-
-[Debug] Value to copy:
-s@5 : i32
[Debug]
**About to evaluate statement**: [
var@7 := move var@8 == 1: i32;
@@ -26661,8 +59858,15 @@ s@5 : i32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ drop(b);
+ return
+]
+
+**Context**:
# Ended regions: {0}
# 1 frame(s)
@@ -26675,8 +59879,8 @@ s@5 : i32
x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
- var@8 -> s@5 : i32 ;
+ var@7 -> s@6 : bool ;
+ var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
⌊shared@2⌋,
@shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32))
@@ -26684,13 +59888,13 @@ s@5 : i32
}
-- op:
-move var@8
-[Debug] Value to move:
-s@5 : i32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7
+]
+
+**Context**:
# Ended regions: {0}
# 1 frame(s)
@@ -26703,7 +59907,7 @@ s@5 : i32
x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : bool ;
+ var@7 -> s@6 : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
⌊shared@2⌋,
@@ -26712,12 +59916,9 @@ s@5 : i32
}
-- op:
-1: i32
[Debug]
**About to evaluate statement**: [
- var@6 := ¬ move var@7;
assert(¬move var@6);
drop(b);
return
@@ -26735,8 +59936,8 @@ s@5 : i32
var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> s@6 : bool ;
+ var@6 -> s@7 : bool ;
+ var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
⌊shared@2⌋,
@@ -26748,7 +59949,7 @@ s@5 : i32
[Debug]
**About to evaluate statement**: [
- var@6 := ¬ move var@7
+ assert(¬move var@6)
]
**Context**:
@@ -26763,8 +59964,8 @@ s@5 : i32
var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> ⊥ : bool ;
- var@7 -> s@6 : bool ;
+ var@6 -> s@7 : bool ;
+ var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
⌊shared@2⌋,
@@ -26774,8 +59975,13 @@ s@5 : i32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ drop(b);
+ return
+]
+
+**Context**:
# Ended regions: {0}
# 1 frame(s)
@@ -26788,7 +59994,7 @@ s@5 : i32
x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
var@6 -> ⊥ : bool ;
- var@7 -> s@6 : bool ;
+ var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
⌊shared@2⌋,
@@ -26797,16 +60003,10 @@ s@5 : i32
}
-- op:
-move var@7
-[Debug] Value to move:
-s@6 : bool
[Debug]
**About to evaluate statement**: [
- assert(¬move var@6);
- drop(b);
- return
+ drop(b)
]
**Context**:
@@ -26821,7 +60021,7 @@ s@6 : bool
var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> s@7 : bool ;
+ var@6 -> ⊥ : bool ;
var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
@@ -26832,12 +60032,9 @@ s@6 : bool
-[Debug]
-**About to evaluate statement**: [
- assert(¬move var@6)
-]
-
-**Context**:
+[Debug] drop_value: place: b
+[Debug] end_abstraction: 1
+- original context:
# Ended regions: {0}
# 1 frame(s)
@@ -26849,7 +60046,7 @@ s@6 : bool
var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> s@7 : bool ;
+ var@6 -> ⊥ : bool ;
var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
@@ -26858,10 +60055,8 @@ s@6 : bool
}
}
-
-
-[Debug] eval_operand:
-- ctx:
+[Debug] end_abstraction: 1
+- context after parent abstractions ended:
# Ended regions: {0}
# 1 frame(s)
@@ -26873,7 +60068,7 @@ s@6 : bool
var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
x -> ⌊shared@3⌋ ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
- var@6 -> true ;
+ var@6 -> ⊥ : bool ;
var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
@@ -26882,19 +60077,8 @@ s@6 : bool
}
}
-
-- op:
-move var@6
-
-[Debug] Value to move:
-true
-[Debug]
-**About to evaluate statement**: [
- drop(b);
- return
-]
-
-**Context**:
+[Debug] end_abstraction: 1
+- context after loans ended:
# Ended regions: {0}
# 1 frame(s)
@@ -26904,25 +60088,19 @@ true
b -> @shared_loan({2}, s@3 : std::boxed::Box<i32>) ;
x -> ⊥ : &'_ mut (i32) ;
var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
- x -> ⌊shared@3⌋ ;
+ x -> ⊥ : &'_ (i32) ;
var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
var@6 -> ⊥ : bool ;
var@7 -> ⊥ : bool ;
var@8 -> ⊥ : i32 ;
abs@1{parents={}}{regions={1}} {
⌊shared@2⌋,
- @shared_loan({3}, s@5 : i32, proj_loans (s@5 : i32))
+ @ended_shared_loan(s@5 : i32, proj_loans (s@5 : i32))
}
}
-
-
-[Debug]
-**About to evaluate statement**: [
- drop(b)
-]
-
-**Context**:
+[Debug] end_abstraction: 1
+- original context:
# Ended regions: {0}
# 1 frame(s)
@@ -26944,8 +60122,23 @@ true
}
+- new context:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ b -> s@3 : std::boxed::Box<i32> ;
+ x -> ⊥ : &'_ mut (i32) ;
+ var@3 -> ⊥ : &'_ mut (std::boxed::Box<i32>) ;
+ x -> ⊥ : &'_ (i32) ;
+ var@5 -> ⊥ : &'_ (std::boxed::Box<i32>) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+}
-[Debug] drop_value: place: b
[Debug]
**About to evaluate statement**: [
return
@@ -27006,23 +60199,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : i32 ;
- x -> s@0 : i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-s@0 : i32
[Debug]
**About to evaluate statement**: [
return
@@ -27098,28 +60274,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- px -> ⊥ : &'_ (i32) ;
- y -> ⊥ : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
px := &x;
@@ -27231,30 +60385,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> ⊥ : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy x
-
-[Debug] Value to copy:
-@shared_loan({0}, 0: i32)
[Debug]
**About to evaluate statement**: [
y := move copy_int(move var@4);
@@ -27309,30 +60439,6 @@ copy x
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> ⊥ : i32 ;
- var@4 -> 0: i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-0: i32
[Debug]
**About to evaluate statement**: [
var@7 := copy *(px);
@@ -27386,30 +60492,6 @@ move var@4
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> s@0 : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy *(px)
-
-[Debug] Value to copy:
-0: i32
[Debug]
**About to evaluate statement**: [
var@8 := copy y;
@@ -27462,30 +60544,6 @@ copy *(px)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> s@0 : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> 0: i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-s@0 : i32
[Debug]
**About to evaluate statement**: [
var@6 := move var@7 == move var@8;
@@ -27537,54 +60595,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> s@0 : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> 0: i32 ;
- var@8 -> s@0 : i32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-0: i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> s@0 : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> s@0 : i32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-s@0 : i32
[Debug]
**About to evaluate statement**: [
var@5 := ¬ move var@6;
@@ -27635,30 +60645,6 @@ s@0 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> s@0 : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> ⊥ : bool ;
- var@6 -> s@1 : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-s@1 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@5);
@@ -27708,30 +60694,6 @@ s@1 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> @shared_loan({0}, 0: i32) ;
- px -> ⌊shared@0⌋ ;
- y -> s@0 : i32 ;
- var@4 -> ⊥ : i32 ;
- var@5 -> true ;
- var@6 -> ⊥ : bool ;
- var@7 -> ⊥ : i32 ;
- var@8 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@5
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
return
@@ -27811,6 +60773,38 @@ true
+[Debug] expand_symbolic_value: s@0 : &r@0 (test1::List<T>)
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ proj_loans (s@0 : &r@0 (test1::List<T>))
+ }
+ var@0 -> ⊥ : bool ;
+ l -> s@0 : &r@0 (test1::List<T>) ;
+ var@2 -> ⊥ : isize ;
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ @shared_loan({0}, s@1 : test1::List<T>, proj_loans (s@1 : test1::List<T>))
+ }
+ var@0 -> ⊥ : bool ;
+ l -> ⌊shared@0⌋ ;
+ var@2 -> ⊥ : isize ;
+}
+
+
[Debug]
**About to evaluate statement**: [
switch (move var@2) {
@@ -27874,27 +60868,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- abs@0{parents={}}{regions={0}} {
- @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box<test1::List<T>>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box<test1::List<T>>); })
- }
- var@0 -> ⊥ : bool ;
- l -> ⌊shared@0⌋ ;
- var@2 -> 0: isize ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-0: isize
[Debug]
**About to evaluate statement**: [
var@0 := true
@@ -27916,25 +60889,6 @@ move var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- abs@0{parents={}}{regions={0}} {
- @shared_loan({0}, test1::List::Cons { 0 = s@2 : T; 1 = s@3 : std::boxed::Box<test1::List<T>>; }, test1::List::Cons { 0 = proj_loans (s@2 : T); 1 = proj_loans (s@3 : std::boxed::Box<test1::List<T>>); })
- }
- var@0 -> ⊥ : bool ;
- l -> ⌊shared@0⌋ ;
- var@2 -> ⊥ : isize ;
-}
-
-
-- op:
-true
-
[Debug]
**About to evaluate statement**: [
return
@@ -28019,27 +60973,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- abs@0{parents={}}{regions={0}} {
- @shared_loan({0}, test1::List::Nil, test1::List::Nil)
- }
- var@0 -> ⊥ : bool ;
- l -> ⌊shared@0⌋ ;
- var@2 -> 1: isize ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-1: isize
[Debug]
**About to evaluate statement**: [
var@0 := false
@@ -28061,25 +60994,6 @@ move var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- abs@0{parents={}}{regions={0}} {
- @shared_loan({0}, test1::List::Nil, test1::List::Nil)
- }
- var@0 -> ⊥ : bool ;
- l -> ⌊shared@0⌋ ;
- var@2 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
return
@@ -28220,29 +61134,6 @@ false
- type_params: [test1::List<i32>]
- args: [move var@3]
- dest: var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> test1::List::Nil ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⊥ : &'_ (test1::List<i32>) ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-test1::List::Nil
[Debug]
**About to evaluate statement**: [
(l as test1::List::Cons).0 := 0: i32;
@@ -28298,27 +61189,6 @@ test1::List::Nil
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⊥ : &'_ (test1::List<i32>) ;
-}
-
-
-- op:
-0: i32
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0))
ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
@@ -28376,29 +61246,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⊥ : &'_ (test1::List<i32>) ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-s@0 : std::boxed::Box<test1::List<i32>>
[Debug]
**About to evaluate statement**: [
set_discriminant(l, 0);
@@ -28555,29 +61402,6 @@ s@0 : std::boxed::Box<test1::List<i32>>
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> @shared_loan({0}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
-}
-
-
-- op:
-copy var@7
-
-[Debug] Value to copy:
-⌊shared@0⌋
[Debug]
**About to evaluate statement**: [
var@5 := move is_cons<i32>(move var@6);
@@ -28628,8 +61452,15 @@ copy var@7
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@4 := ¬ move var@5;
+ assert(¬move var@4);
+ drop(l);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -28640,23 +61471,20 @@ copy var@7
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
var@4 -> ⊥ : bool ;
- var@5 -> ⊥ : bool ;
- var@6 -> ⌊shared@1⌋ ;
+ var@5 -> s@1 : bool ;
+ var@6 -> ⊥ : &'_ (test1::List<i32>) ;
var@7 -> ⌊shared@0⌋ ;
+ abs@0{parents={}}{regions={0}} {
+ ⌊shared@1⌋,
+ proj_loans (s@1 : bool)
+ }
}
-- op:
-move var@6
-[Debug] Value to move:
-⌊shared@1⌋
[Debug]
**About to evaluate statement**: [
- var@4 := ¬ move var@5;
- assert(¬move var@4);
- drop(l);
- return
+ var@4 := ¬ move var@5
]
**Context**:
@@ -28683,7 +61511,9 @@ move var@6
[Debug]
**About to evaluate statement**: [
- var@4 := ¬ move var@5
+ assert(¬move var@4);
+ drop(l);
+ return
]
**Context**:
@@ -28696,8 +61526,8 @@ move var@6
l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> s@1 : bool ;
+ var@4 -> s@2 : bool ;
+ var@5 -> ⊥ : bool ;
var@6 -> ⊥ : &'_ (test1::List<i32>) ;
var@7 -> ⌊shared@0⌋ ;
abs@0{parents={}}{regions={0}} {
@@ -28708,8 +61538,12 @@ move var@6
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@4)
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -28719,8 +61553,8 @@ move var@6
l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> ⊥ : bool ;
- var@5 -> s@1 : bool ;
+ var@4 -> s@2 : bool ;
+ var@5 -> ⊥ : bool ;
var@6 -> ⊥ : &'_ (test1::List<i32>) ;
var@7 -> ⌊shared@0⌋ ;
abs@0{parents={}}{regions={0}} {
@@ -28730,14 +61564,9 @@ move var@6
}
-- op:
-move var@5
-[Debug] Value to move:
-s@1 : bool
[Debug]
**About to evaluate statement**: [
- assert(¬move var@4);
drop(l);
return
]
@@ -28752,7 +61581,7 @@ s@1 : bool
l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> s@2 : bool ;
+ var@4 -> ⊥ : bool ;
var@5 -> ⊥ : bool ;
var@6 -> ⊥ : &'_ (test1::List<i32>) ;
var@7 -> ⌊shared@0⌋ ;
@@ -28766,7 +61595,7 @@ s@1 : bool
[Debug]
**About to evaluate statement**: [
- assert(¬move var@4)
+ drop(l)
]
**Context**:
@@ -28779,7 +61608,7 @@ s@1 : bool
l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> s@2 : bool ;
+ var@4 -> ⊥ : bool ;
var@5 -> ⊥ : bool ;
var@6 -> ⊥ : &'_ (test1::List<i32>) ;
var@7 -> ⌊shared@0⌋ ;
@@ -28791,80 +61620,85 @@ s@1 : bool
-[Debug] eval_operand:
-- ctx:
+[Debug] drop_value: place: l
+[Debug] end_abstraction: 0
+- original context:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
+ l -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
- var@4 -> true ;
+ var@4 -> ⊥ : bool ;
var@5 -> ⊥ : bool ;
var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
+ var@7 -> ⊥ : &'_ (test1::List<i32>) ;
abs@0{parents={}}{regions={0}} {
⌊shared@1⌋,
proj_loans (s@1 : bool)
}
}
-
-- op:
-move var@4
-
-[Debug] Value to move:
-true
-[Debug]
-**About to evaluate statement**: [
- drop(l);
- return
-]
-
-**Context**:
+[Debug] end_abstraction: 0
+- context after parent abstractions ended:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
+ l -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
var@4 -> ⊥ : bool ;
var@5 -> ⊥ : bool ;
var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
+ var@7 -> ⊥ : &'_ (test1::List<i32>) ;
abs@0{parents={}}{regions={0}} {
⌊shared@1⌋,
proj_loans (s@1 : bool)
}
}
+[Debug] end_abstraction: 0
+- context after loans ended:
+# Ended regions: {}
+# 1 frame(s)
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ l -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
+ var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
+ var@3 -> ⊥ : test1::List<i32> ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : bool ;
+ var@6 -> ⊥ : &'_ (test1::List<i32>) ;
+ var@7 -> ⊥ : &'_ (test1::List<i32>) ;
+ abs@0{parents={}}{regions={0}} {
+ ⌊shared@1⌋,
+ proj_loans (s@1 : bool)
+ }
+}
-[Debug]
-**About to evaluate statement**: [
- drop(l)
-]
-
-**Context**:
+[Debug] end_abstraction: 0
+- original context:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- l -> @shared_loan({0, 1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
+ l -> @shared_loan({1}, test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }) ;
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
var@4 -> ⊥ : bool ;
var@5 -> ⊥ : bool ;
var@6 -> ⊥ : &'_ (test1::List<i32>) ;
- var@7 -> ⌊shared@0⌋ ;
+ var@7 -> ⊥ : &'_ (test1::List<i32>) ;
abs@0{parents={}}{regions={0}} {
⌊shared@1⌋,
proj_loans (s@1 : bool)
@@ -28872,8 +61706,22 @@ true
}
+- new context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } ;
+ var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
+ var@3 -> ⊥ : test1::List<i32> ;
+ var@4 -> ⊥ : bool ;
+ var@5 -> ⊥ : bool ;
+ var@6 -> ⊥ : &'_ (test1::List<i32>) ;
+ var@7 -> ⊥ : &'_ (test1::List<i32>) ;
+}
-[Debug] drop_value: place: l
[Debug]
**About to evaluate statement**: [
return
@@ -28971,30 +61819,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> s@0 : test1::List<T> ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> ⊥ : bool ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
var@7 := false;
@@ -29067,30 +61891,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> s@0 : test1::List<T> ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> ⊥ : bool ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
var@7 := true;
@@ -29162,30 +61962,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> s@0 : test1::List<T> ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-true
-
[Debug]
**About to evaluate statement**: [
var@8 := true;
@@ -29256,30 +62032,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> s@0 : test1::List<T> ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> true ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-true
-
[Debug]
**About to evaluate statement**: [
var@2 := discriminant(l);
@@ -29391,32 +62143,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ;
- var@2 -> 0: isize ;
- hd -> ⊥ : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> true ;
- var@8 -> true ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-0: isize
[Debug]
**About to evaluate statement**: [
var@8 := false;
@@ -29478,30 +62204,6 @@ move var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> true ;
- var@8 -> true ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
hd := move (l as test1::List::Cons).0;
@@ -29562,32 +62264,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> test1::List::Cons { 0 = s@1 : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> true ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move (l as test1::List::Cons).0
-
-[Debug] Value to move:
-s@1 : T
[Debug]
**About to evaluate statement**: [
var@7 := false;
@@ -29647,30 +62323,6 @@ s@1 : T
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> s@1 : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> true ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-false
-
[Debug]
**About to evaluate statement**: [
tl := move (l as test1::List::Cons).1;
@@ -29729,32 +62381,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> test1::List::Cons { 0 = ⊥ : T; 1 = s@2 : std::boxed::Box<test1::List<T>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> s@1 : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move (l as test1::List::Cons).1
-
-[Debug] Value to move:
-s@2 : std::boxed::Box<test1::List<T>>
[Debug]
**About to evaluate statement**: [
var@5 := move hd;
@@ -29812,32 +62438,6 @@ s@2 : std::boxed::Box<test1::List<T>>
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box<test1::List<T>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> s@1 : T ;
- tl -> s@2 : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move hd
-
-[Debug] Value to move:
-s@1 : T
[Debug]
**About to evaluate statement**: [
var@6 := move deref_box(tl);
@@ -29894,8 +62494,9 @@ s@1 : T
-[Debug] eval_operand:
-- ctx:
+[Debug] expand_symbolic_value: s@2 : std::boxed::Box<test1::List<T>>
+
+- original context:
# Ended regions: {}
# 1 frame(s)
@@ -29915,20 +62516,7 @@ s@1 : T
}
-- op:
-move deref_box(tl)
-
-[Debug] Value to move:
-s@3 : test1::List<T>
-[Debug]
-**About to evaluate statement**: [
- (var@0).0 := move var@5;
- (var@0).1 := move var@6;
- var@9 := move alloc::alloc::box_free<test1::List<T>>(move tl);
- return
-]
-
-**Context**:
+- new context:
# Ended regions: {}
# 1 frame(s)
@@ -29938,9 +62526,9 @@ s@3 : test1::List<T>
l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box<test1::List<T>>; } ;
var@2 -> ⊥ : isize ;
hd -> ⊥ : T ;
- tl -> @Box(⊥ : test1::List<T>) ;
+ tl -> @Box(s@3 : test1::List<T>) ;
var@5 -> s@1 : T ;
- var@6 -> s@3 : test1::List<T> ;
+ var@6 -> ⊥ : test1::List<T> ;
var@7 -> false ;
var@8 -> false ;
var@9 -> ⊥ : () ;
@@ -29948,10 +62536,12 @@ s@3 : test1::List<T>
}
-
[Debug]
**About to evaluate statement**: [
- (var@0).0 := move var@5
+ (var@0).0 := move var@5;
+ (var@0).1 := move var@6;
+ var@9 := move alloc::alloc::box_free<test1::List<T>>(move tl);
+ return
]
**Context**:
@@ -29975,8 +62565,12 @@ s@3 : test1::List<T>
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ (var@0).0 := move var@5
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -29996,11 +62590,7 @@ s@3 : test1::List<T>
}
-- op:
-move var@5
-[Debug] Value to move:
-s@1 : T
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjTuple 2), 0))
ty: (Types.Adt (Types.Tuple, [],
@@ -30061,32 +62651,6 @@ ty: (Types.Adt (Types.Tuple, [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> (s@1 : T, ⊥ : test1::List<T>) ;
- l -> test1::List::Cons { 0 = ⊥ : T; 1 = ⊥ : std::boxed::Box<test1::List<T>>; } ;
- var@2 -> ⊥ : isize ;
- hd -> ⊥ : T ;
- tl -> @Box(⊥ : test1::List<T>) ;
- var@5 -> ⊥ : T ;
- var@6 -> s@3 : test1::List<T> ;
- var@7 -> false ;
- var@8 -> false ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move var@6
-
-[Debug] Value to move:
-s@3 : test1::List<T>
[Debug]
**About to evaluate statement**: [
var@9 := move alloc::alloc::box_free<test1::List<T>>(move tl);
@@ -30214,32 +62778,6 @@ s@3 : test1::List<T>
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : (T, test1::List<T>) ;
- l -> test1::List::Nil ;
- var@2 -> 1: isize ;
- hd -> ⊥ : T ;
- tl -> ⊥ : std::boxed::Box<test1::List<T>> ;
- var@5 -> ⊥ : T ;
- var@6 -> ⊥ : test1::List<T> ;
- var@7 -> true ;
- var@8 -> true ;
- var@9 -> ⊥ : () ;
- var@10 -> ⊥ : isize ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-1: isize
[Debug]
**About to evaluate statement**: [
panic
@@ -30403,32 +62941,6 @@ move var@2
- type_params: [test1::List<i32>]
- args: [move var@3]
- dest: var@2
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> test1::List::Nil ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@3
-
-[Debug] Value to move:
-test1::List::Nil
[Debug]
**About to evaluate statement**: [
(l as test1::List::Cons).0 := 0: i32;
@@ -30493,30 +63005,6 @@ test1::List::Nil
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjAdt (1, (Some 0))), 0))
ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
@@ -30583,32 +63071,6 @@ ty: (Types.Adt ((Types.AdtId 1), [], [(Types.Integer Types.I32)]))
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = ⊥ : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> s@0 : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@2
-
-[Debug] Value to move:
-s@0 : std::boxed::Box<test1::List<i32>>
[Debug]
**About to evaluate statement**: [
set_discriminant(l, 0);
@@ -30732,32 +63194,6 @@ s@0 : std::boxed::Box<test1::List<i32>>
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move l
-
-[Debug] Value to move:
-test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }
[Debug]
**About to evaluate statement**: [
var@6 := move split_list<i32>(move var@7);
@@ -30818,32 +63254,6 @@ test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> ⊥ : i32 ;
- tl -> ⊥ : test1::List<i32> ;
- var@6 -> ⊥ : (i32, test1::List<i32>) ;
- var@7 -> test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; } ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@7
-
-[Debug] Value to move:
-test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }
[Debug]
**About to evaluate statement**: [
hd := copy (var@6).0;
@@ -30903,8 +63313,9 @@ test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }
-[Debug] eval_operand:
-- ctx:
+[Debug] expand_symbolic_value: s@1 : (i32, test1::List<i32>)
+
+- original context:
# Ended regions: {}
# 1 frame(s)
@@ -30924,23 +63335,7 @@ test1::List::Cons { 0 = 0: i32; 1 = s@0 : std::boxed::Box<test1::List<i32>>; }
}
-- op:
-copy (var@6).0
-
-[Debug] Value to copy:
-s@2 : i32
-[Debug]
-**About to evaluate statement**: [
- tl := move (var@6).1;
- var@10 := copy hd;
- var@9 := move var@10 == 0: i32;
- var@8 := ¬ move var@9;
- assert(¬move var@8);
- drop(tl);
- return
-]
-
-**Context**:
+- new context:
# Ended regions: {}
# 1 frame(s)
@@ -30950,7 +63345,7 @@ s@2 : i32
l -> ⊥ : test1::List<i32> ;
var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
var@3 -> ⊥ : test1::List<i32> ;
- hd -> s@2 : i32 ;
+ hd -> ⊥ : i32 ;
tl -> ⊥ : test1::List<i32> ;
var@6 -> (s@2 : i32, s@3 : test1::List<i32>) ;
var@7 -> ⊥ : test1::List<i32> ;
@@ -30960,10 +63355,15 @@ s@2 : i32
}
-
[Debug]
**About to evaluate statement**: [
- tl := move (var@6).1
+ tl := move (var@6).1;
+ var@10 := copy hd;
+ var@9 := move var@10 == 0: i32;
+ var@8 := ¬ move var@9;
+ assert(¬move var@8);
+ drop(tl);
+ return
]
**Context**:
@@ -30987,8 +63387,12 @@ s@2 : i32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ tl := move (var@6).1
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -31008,11 +63412,7 @@ s@2 : i32
}
-- op:
-move (var@6).1
-[Debug] Value to move:
-s@3 : test1::List<i32>
[Debug]
**About to evaluate statement**: [
var@10 := copy hd;
@@ -31070,32 +63470,6 @@ s@3 : test1::List<i32>
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> s@2 : i32 ;
- tl -> s@3 : test1::List<i32> ;
- var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy hd
-
-[Debug] Value to copy:
-s@2 : i32
[Debug]
**About to evaluate statement**: [
var@9 := move var@10 == 0: i32;
@@ -31152,56 +63526,6 @@ s@2 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> s@2 : i32 ;
- tl -> s@3 : test1::List<i32> ;
- var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> s@2 : i32 ;
-}
-
-
-- op:
-move var@10
-
-[Debug] Value to move:
-s@2 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> s@2 : i32 ;
- tl -> s@3 : test1::List<i32> ;
- var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@8 := ¬ move var@9;
@@ -31257,32 +63581,6 @@ s@2 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> s@2 : i32 ;
- tl -> s@3 : test1::List<i32> ;
- var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> ⊥ : bool ;
- var@9 -> s@4 : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@9
-
-[Debug] Value to move:
-s@4 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@8);
@@ -31337,32 +63635,6 @@ s@4 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- l -> ⊥ : test1::List<i32> ;
- var@2 -> ⊥ : std::boxed::Box<test1::List<i32>> ;
- var@3 -> ⊥ : test1::List<i32> ;
- hd -> s@2 : i32 ;
- tl -> s@3 : test1::List<i32> ;
- var@6 -> (s@2 : i32, ⊥ : test1::List<i32>) ;
- var@7 -> ⊥ : test1::List<i32> ;
- var@8 -> true ;
- var@9 -> ⊥ : bool ;
- var@10 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@8
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
drop(tl);
@@ -31501,31 +63773,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- abs@0{parents={}}{regions={0}} {
- proj_loans (s@0 : bool),
- proj_loans (s@1 : &r@0 mut (T)),
- proj_loans (s@2 : &r@0 mut (T))
- }
- var@0 -> ⊥ : &'_ mut (T) ;
- b -> s@0 : bool ;
- x -> s@1 : &r@0 mut (T) ;
- y -> s@2 : &r@0 mut (T) ;
- var@4 -> ⊥ : bool ;
-}
-
-
-- op:
-copy b
-
-[Debug] Value to copy:
-s@0 : bool
[Debug]
**About to evaluate statement**: [
if (move var@4) {
@@ -31587,8 +63834,12 @@ s@0 : bool
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@0 := &mut *(x)
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -31603,21 +63854,14 @@ s@0 : bool
b -> true ;
x -> s@1 : &r@0 mut (T) ;
y -> s@2 : &r@0 mut (T) ;
- var@4 -> true ;
+ var@4 -> ⊥ : bool ;
}
-- op:
-move var@4
-[Debug] Value to move:
-true
-[Debug]
-**About to evaluate statement**: [
- var@0 := &mut *(x)
-]
+[Debug] expand_symbolic_value: s@1 : &r@0 mut (T)
-**Context**:
+- original context:
# Ended regions: {}
# 1 frame(s)
@@ -31636,32 +63880,25 @@ true
}
-
-[Debug] eval_operand:
-- ctx:
+- new context:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
abs@0{parents={}}{regions={0}} {
- false,
- proj_loans (s@1 : &r@0 mut (T)),
+ true,
+ ⌊mut@0, proj_loans (s@3 : T)⌋,
proj_loans (s@2 : &r@0 mut (T))
}
var@0 -> ⊥ : &'_ mut (T) ;
- b -> false ;
- x -> s@1 : &r@0 mut (T) ;
+ b -> true ;
+ x -> &mut@0 (s@3 : T) ;
y -> s@2 : &r@0 mut (T) ;
- var@4 -> false ;
+ var@4 -> ⊥ : bool ;
}
-- op:
-move var@4
-
-[Debug] Value to move:
-false
[Debug]
**About to evaluate statement**: [
var@0 := move y
@@ -31687,31 +63924,6 @@ false
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- abs@0{parents={}}{regions={0}} {
- false,
- proj_loans (s@1 : &r@0 mut (T)),
- proj_loans (s@2 : &r@0 mut (T))
- }
- var@0 -> ⊥ : &'_ mut (T) ;
- b -> false ;
- x -> s@1 : &r@0 mut (T) ;
- y -> s@2 : &r@0 mut (T) ;
- var@4 -> ⊥ : bool ;
-}
-
-
-- op:
-move y
-
-[Debug] Value to move:
-s@2 : &r@0 mut (T)
[Debug]
**About to evaluate statement**: [
return
@@ -31852,38 +64064,6 @@ s@2 : &r@0 mut (T)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : i32 ;
- y -> ⊥ : i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
y := 0: i32;
@@ -31972,38 +64152,6 @@ s@2 : &r@0 mut (T)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> 0: i32 ;
- y -> ⊥ : i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@5 := &mut x;
@@ -32429,114 +64577,14 @@ s@2 : &r@0 mut (T)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⌊inactivated_mut@1⌋ ;
- var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ;
- var@6 -> ⌊inactivated_mut@3⌋ ;
- var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-true
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⌊inactivated_mut@1⌋ ;
- var@5 -> &mut@0 (@shared_loan({1}, 0: i32)) ;
- var@6 -> ⌊inactivated_mut@3⌋ ;
- var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@4
-
[Debug] activate_inactivated_mut_borrow: resulting value:
{ Values.value =
(Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 }));
ty = (Types.Integer Types.I32) }
-[Debug] Value to move:
-&mut@1 (0: i32)
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
- var@6 -> ⌊inactivated_mut@3⌋ ;
- var@7 -> &mut@2 (@shared_loan({3}, 0: i32)) ;
- var@8 -> ⊥ : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@6
-
[Debug] activate_inactivated_mut_borrow: resulting value:
{ Values.value =
(Values.Concrete (Values.Scalar { Values.value = 0; int_ty = Types.I32 }));
ty = (Types.Integer Types.I32) }
-[Debug] Value to move:
-&mut@3 (0: i32)
[Debug]
**About to evaluate statement**: [
var@8 := copy *(z);
@@ -32631,8 +64679,9 @@ move var@6
-[Debug] eval_operand:
-- ctx:
+[Debug] expand_symbolic_value: s@0 : &r@0 mut (i32)
+
+- original context:
# Ended regions: {}
# 1 frame(s)
@@ -32666,30 +64715,7 @@ move var@6
}
-- op:
-copy *(z)
-
-[Debug] Value to copy:
-s@1 : i32
-[Debug]
-**About to evaluate statement**: [
- *(z) := copy var@8 + 1: i32;
- var@12 := copy *(z);
- var@11 := move var@12 == 1: i32;
- var@10 := ¬ move var@11;
- assert(¬move var@10);
- var@15 := copy x;
- var@14 := move var@15 == 1: i32;
- var@13 := ¬ move var@14;
- assert(¬move var@13);
- var@18 := copy y;
- var@17 := move var@18 == 0: i32;
- var@16 := ¬ move var@17;
- assert(¬move var@16);
- return
-]
-
-**Context**:
+- new context:
# Ended regions: {}
# 1 frame(s)
@@ -32703,7 +64729,7 @@ s@1 : i32
var@5 -> &mut@0 (⌊mut@1⌋) ;
var@6 -> ⊥ : &'_ mut (i32) ;
var@7 -> &mut@2 (⌊mut@3⌋) ;
- var@8 -> s@1 : i32 ;
+ var@8 -> ⊥ : i32 ;
var@9 -> ⊥ : (i32, bool) ;
var@10 -> ⊥ : bool ;
var@11 -> ⊥ : bool ;
@@ -32723,10 +64749,22 @@ s@1 : i32
}
-
[Debug]
**About to evaluate statement**: [
- *(z) := copy var@8 + 1: i32
+ *(z) := copy var@8 + 1: i32;
+ var@12 := copy *(z);
+ var@11 := move var@12 == 1: i32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ var@15 := copy x;
+ var@14 := move var@15 == 1: i32;
+ var@13 := ¬ move var@14;
+ assert(¬move var@13);
+ var@18 := copy y;
+ var@17 := move var@18 == 0: i32;
+ var@16 := ¬ move var@17;
+ assert(¬move var@16);
+ return
]
**Context**:
@@ -32764,48 +64802,12 @@ s@1 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (s@1 : i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (⌊mut@3⌋) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
- abs@0{parents={}}{regions={0}} {
- true,
- &mut@1 (0: i32),
- &mut@3 (0: i32),
- ⌊mut@4, proj_loans (s@1 : i32)⌋
- }
-}
-
-
-- op:
-copy var@8
+[Debug]
+**About to evaluate statement**: [
+ *(z) := copy var@8 + 1: i32
+]
-[Debug] Value to copy:
-s@1 : i32
-[Debug] eval_operand:
-- ctx:
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -32839,8 +64841,6 @@ s@1 : i32
}
-- op:
-1: i32
[Debug]
**About to evaluate statement**: [
@@ -32934,46 +64934,6 @@ s@1 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (s@2 : i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (⌊mut@3⌋) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
- abs@0{parents={}}{regions={0}} {
- true,
- &mut@1 (0: i32),
- &mut@3 (0: i32),
- ⌊mut@4, proj_loans (s@1 : i32)⌋
- }
-}
-
-
-- op:
-copy *(z)
-
-[Debug] Value to copy:
-s@2 : i32
[Debug]
**About to evaluate statement**: [
var@11 := move var@12 == 1: i32;
@@ -33065,8 +65025,22 @@ s@2 : i32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ var@15 := copy x;
+ var@14 := move var@15 == 1: i32;
+ var@13 := ¬ move var@14;
+ assert(¬move var@13);
+ var@18 := copy y;
+ var@17 := move var@18 == 0: i32;
+ var@16 := ¬ move var@17;
+ assert(¬move var@16);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -33083,8 +65057,8 @@ s@2 : i32
var@8 -> s@1 : i32 ;
var@9 -> ⊥ : (i32, bool) ;
var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> s@2 : i32 ;
+ var@11 -> s@3 : bool ;
+ var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
var@14 -> ⊥ : bool ;
var@15 -> ⊥ : i32 ;
@@ -33100,13 +65074,13 @@ s@2 : i32
}
-- op:
-move var@12
-[Debug] Value to move:
-s@2 : i32
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ var@10 := ¬ move var@11
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -33123,7 +65097,7 @@ s@2 : i32
var@8 -> s@1 : i32 ;
var@9 -> ⊥ : (i32, bool) ;
var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
+ var@11 -> s@3 : bool ;
var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
var@14 -> ⊥ : bool ;
@@ -33140,12 +65114,9 @@ s@2 : i32
}
-- op:
-1: i32
[Debug]
**About to evaluate statement**: [
- var@10 := ¬ move var@11;
assert(¬move var@10);
var@15 := copy x;
var@14 := move var@15 == 1: i32;
@@ -33174,8 +65145,8 @@ s@2 : i32
var@7 -> &mut@2 (⌊mut@3⌋) ;
var@8 -> s@1 : i32 ;
var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> s@3 : bool ;
+ var@10 -> s@4 : bool ;
+ var@11 -> ⊥ : bool ;
var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
var@14 -> ⊥ : bool ;
@@ -33195,7 +65166,7 @@ s@2 : i32
[Debug]
**About to evaluate statement**: [
- var@10 := ¬ move var@11
+ assert(¬move var@10)
]
**Context**:
@@ -33214,44 +65185,8 @@ s@2 : i32
var@7 -> &mut@2 (⌊mut@3⌋) ;
var@8 -> s@1 : i32 ;
var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> s@3 : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
- abs@0{parents={}}{regions={0}} {
- true,
- &mut@1 (0: i32),
- &mut@3 (0: i32),
- ⌊mut@4, proj_loans (s@1 : i32)⌋
- }
-}
-
-
-
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- y -> ⌊mut@2⌋ ;
- z -> &mut@4 (s@2 : i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (⌊mut@3⌋) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> s@3 : bool ;
+ var@10 -> s@4 : bool ;
+ var@11 -> ⊥ : bool ;
var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
var@14 -> ⊥ : bool ;
@@ -33268,14 +65203,9 @@ s@2 : i32
}
-- op:
-move var@11
-[Debug] Value to move:
-s@3 : bool
[Debug]
**About to evaluate statement**: [
- assert(¬move var@10);
var@15 := copy x;
var@14 := move var@15 == 1: i32;
var@13 := ¬ move var@14;
@@ -33303,7 +65233,7 @@ s@3 : bool
var@7 -> &mut@2 (⌊mut@3⌋) ;
var@8 -> s@1 : i32 ;
var@9 -> ⊥ : (i32, bool) ;
- var@10 -> s@4 : bool ;
+ var@10 -> ⊥ : bool ;
var@11 -> ⊥ : bool ;
var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
@@ -33324,7 +65254,7 @@ s@3 : bool
[Debug]
**About to evaluate statement**: [
- assert(¬move var@10)
+ var@15 := copy x
]
**Context**:
@@ -33343,7 +65273,7 @@ s@3 : bool
var@7 -> &mut@2 (⌊mut@3⌋) ;
var@8 -> s@1 : i32 ;
var@9 -> ⊥ : (i32, bool) ;
- var@10 -> s@4 : bool ;
+ var@10 -> ⊥ : bool ;
var@11 -> ⊥ : bool ;
var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
@@ -33362,24 +65292,24 @@ s@3 : bool
-[Debug] eval_operand:
-- ctx:
+[Debug] end_abstraction: 0
+- original context:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
+ x -> ⌊mut@1⌋ ;
y -> ⌊mut@2⌋ ;
z -> &mut@4 (s@2 : i32) ;
var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
+ var@5 -> ⊥ : &'_ mut (i32) ;
var@6 -> ⊥ : &'_ mut (i32) ;
var@7 -> &mut@2 (⌊mut@3⌋) ;
var@8 -> s@1 : i32 ;
var@9 -> ⊥ : (i32, bool) ;
- var@10 -> true ;
+ var@10 -> ⊥ : bool ;
var@11 -> ⊥ : bool ;
var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
@@ -33396,37 +65326,19 @@ s@3 : bool
}
}
-
-- op:
-move var@10
-
-[Debug] Value to move:
-true
-[Debug]
-**About to evaluate statement**: [
- var@15 := copy x;
- var@14 := move var@15 == 1: i32;
- var@13 := ¬ move var@14;
- assert(¬move var@13);
- var@18 := copy y;
- var@17 := move var@18 == 0: i32;
- var@16 := ¬ move var@17;
- assert(¬move var@16);
- return
-]
-
-**Context**:
+[Debug] end_abstraction: 0
+- context after parent abstractions ended:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
+ x -> ⌊mut@1⌋ ;
y -> ⌊mut@2⌋ ;
z -> &mut@4 (s@2 : i32) ;
var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
+ var@5 -> ⊥ : &'_ mut (i32) ;
var@6 -> ⊥ : &'_ mut (i32) ;
var@7 -> &mut@2 (⌊mut@3⌋) ;
var@8 -> s@1 : i32 ;
@@ -33448,25 +65360,19 @@ true
}
}
-
-
-[Debug]
-**About to evaluate statement**: [
- var@15 := copy x
-]
-
-**Context**:
+[Debug] end_abstraction: 0
+- context after loans ended:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
+ x -> ⌊mut@1⌋ ;
y -> ⌊mut@2⌋ ;
- z -> &mut@4 (s@2 : i32) ;
+ z -> ⊥ : &'_ mut (i32) ;
var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
+ var@5 -> ⊥ : &'_ mut (i32) ;
var@6 -> ⊥ : &'_ mut (i32) ;
var@7 -> &mut@2 (⌊mut@3⌋) ;
var@8 -> s@1 : i32 ;
@@ -33484,25 +65390,23 @@ true
true,
&mut@1 (0: i32),
&mut@3 (0: i32),
- ⌊mut@4, proj_loans (s@1 : i32)⌋
+ @ended_mut_loan{ given_back=proj_borrows (s@2 : i32 <: i32); child=proj_loans (s@1 : i32) }
}
}
-
-
-[Debug] eval_operand:
-- ctx:
+[Debug] end_abstraction: 0
+- original context:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
+ x -> ⌊mut@1⌋ ;
y -> ⌊mut@2⌋ ;
z -> &mut@4 (s@2 : i32) ;
var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> &mut@0 (⌊mut@1⌋) ;
+ var@5 -> ⊥ : &'_ mut (i32) ;
var@6 -> ⊥ : &'_ mut (i32) ;
var@7 -> &mut@2 (⌊mut@3⌋) ;
var@8 -> s@1 : i32 ;
@@ -33525,24 +65429,7 @@ true
}
-- op:
-copy x
-
-[Debug] Value to copy:
-s@5 : i32
-[Debug]
-**About to evaluate statement**: [
- var@14 := move var@15 == 1: i32;
- var@13 := ¬ move var@14;
- assert(¬move var@13);
- var@18 := copy y;
- var@17 := move var@18 == 0: i32;
- var@16 := ¬ move var@17;
- assert(¬move var@16);
- return
-]
-
-**Context**:
+- new context:
# Ended regions: {0}
# 1 frame(s)
@@ -33563,17 +65450,22 @@ s@5 : i32
var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
var@14 -> ⊥ : bool ;
- var@15 -> s@5 : i32 ;
+ var@15 -> ⊥ : i32 ;
var@16 -> ⊥ : bool ;
var@17 -> ⊥ : bool ;
var@18 -> ⊥ : i32 ;
}
-
-
[Debug]
**About to evaluate statement**: [
- var@14 := move var@15 == 1: i32
+ var@14 := move var@15 == 1: i32;
+ var@13 := ¬ move var@14;
+ assert(¬move var@13);
+ var@18 := copy y;
+ var@17 := move var@18 == 0: i32;
+ var@16 := ¬ move var@17;
+ assert(¬move var@16);
+ return
]
**Context**:
@@ -33605,42 +65497,12 @@ s@5 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {0}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@5 : i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (s@6 : i32) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> s@5 : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@15
+[Debug]
+**About to evaluate statement**: [
+ var@14 := move var@15 == 1: i32
+]
-[Debug] Value to move:
-s@5 : i32
-[Debug] eval_operand:
-- ctx:
+**Context**:
# Ended regions: {0}
# 1 frame(s)
@@ -33661,15 +65523,13 @@ s@5 : i32
var@12 -> ⊥ : i32 ;
var@13 -> ⊥ : bool ;
var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
+ var@15 -> s@5 : i32 ;
var@16 -> ⊥ : bool ;
var@17 -> ⊥ : bool ;
var@18 -> ⊥ : i32 ;
}
-- op:
-1: i32
[Debug]
**About to evaluate statement**: [
@@ -33745,40 +65605,6 @@ s@5 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {0}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@5 : i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (s@6 : i32) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> s@7 : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@14
-
-[Debug] Value to move:
-s@7 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@13);
@@ -33852,40 +65678,6 @@ s@7 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {0}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@5 : i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (s@6 : i32) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> true ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@13
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
var@18 := copy y;
@@ -33958,40 +65750,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {0}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@5 : i32 ;
- y -> ⌊mut@2⌋ ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> &mut@2 (s@6 : i32) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-copy y
-
-[Debug] Value to copy:
-s@6 : i32
[Debug]
**About to evaluate statement**: [
var@17 := move var@18 == 0: i32;
@@ -34063,72 +65821,6 @@ s@6 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {0}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@5 : i32 ;
- y -> s@6 : i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> s@6 : i32 ;
-}
-
-
-- op:
-move var@18
-
-[Debug] Value to move:
-s@6 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {0}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@5 : i32 ;
- y -> s@6 : i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-0: i32
-
[Debug]
**About to evaluate statement**: [
var@16 := ¬ move var@17;
@@ -34199,40 +65891,6 @@ s@6 : i32
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {0}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@5 : i32 ;
- y -> s@6 : i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> ⊥ : bool ;
- var@17 -> s@9 : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@17
-
-[Debug] Value to move:
-s@9 : bool
[Debug]
**About to evaluate statement**: [
assert(¬move var@16);
@@ -34302,40 +65960,6 @@ s@9 : bool
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {0}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> s@5 : i32 ;
- y -> s@6 : i32 ;
- z -> ⊥ : &'_ mut (i32) ;
- var@4 -> ⊥ : &'_ mut (i32) ;
- var@5 -> ⊥ : &'_ mut (i32) ;
- var@6 -> ⊥ : &'_ mut (i32) ;
- var@7 -> ⊥ : &'_ mut (i32) ;
- var@8 -> s@1 : i32 ;
- var@9 -> ⊥ : (i32, bool) ;
- var@10 -> ⊥ : bool ;
- var@11 -> ⊥ : bool ;
- var@12 -> ⊥ : i32 ;
- var@13 -> ⊥ : bool ;
- var@14 -> ⊥ : bool ;
- var@15 -> ⊥ : i32 ;
- var@16 -> true ;
- var@17 -> ⊥ : bool ;
- var@18 -> ⊥ : i32 ;
-}
-
-
-- op:
-move var@16
-
-[Debug] Value to move:
-true
[Debug]
**About to evaluate statement**: [
return
@@ -34421,6 +66045,44 @@ true
+[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (T))
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (T)))
+ }
+ abs@1{parents={0}}{regions={1}} {
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (T)))
+ }
+ var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ;
+ x -> s@0 : &r@0 mut (&r@1 mut (T)) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ;
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ ⌊mut@0, proj_loans (s@1 : &r@1 mut (T))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_loan(0, proj_loans (s@1 : &r@1 mut (T)))
+ }
+ var@0 -> ⊥ : &'_ mut (&'_ mut (T)) ;
+ x -> &mut@0 (s@1 : &r@1 mut (T)) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (T)) ;
+}
+
+
[Debug]
**About to evaluate statement**: [
var@0 := &mut *(var@2);
@@ -34539,6 +66201,38 @@ true
+[Debug] expand_symbolic_value: s@0 : &r@0 mut ((&r@0 mut (T), u32))
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ proj_loans (s@0 : &r@0 mut ((&r@0 mut (T), u32)))
+ }
+ var@0 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ;
+ x -> s@0 : &r@0 mut ((&r@0 mut (T), u32)) ;
+ var@2 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ;
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ ⌊mut@0, proj_loans (s@1 : (&r@0 mut (T), u32))⌋
+ }
+ var@0 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ;
+ x -> &mut@0 (s@1 : (&r@0 mut (T), u32)) ;
+ var@2 -> ⊥ : &'_ mut ((&'_ mut (T), u32)) ;
+}
+
+
[Debug]
**About to evaluate statement**: [
var@0 := &mut *(var@2);
@@ -34669,30 +66363,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⊥ : u32 ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⊥ : (&'_ mut (u32), u32) ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-0: u32
-
[Debug]
**About to evaluate statement**: [
px := &mut x;
@@ -34820,32 +66490,6 @@ true
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> &mut@0 (0: u32) ;
- p -> ⊥ : (&'_ mut (u32), u32) ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-move px
-
-[Debug] Value to move:
-&mut@0 (0: u32)
[Debug]
**About to evaluate statement**: [
(p).0 := move var@4;
@@ -34908,32 +66552,6 @@ move px
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⊥ : (&'_ mut (u32), u32) ;
- var@4 -> &mut@0 (0: u32) ;
- pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-move var@4
-
-[Debug] Value to move:
-&mut@0 (0: u32)
[Debug] expand_bottom_value_from_projection:
pe: (Expressions.Field ((Expressions.ProjTuple 2), 0))
ty: (Types.Adt (Types.Tuple, [],
@@ -35001,30 +66619,6 @@ ty: (Types.Adt (Types.Tuple, [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> (&mut@0 (0: u32), ⊥ : u32) ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-1: u32
-
[Debug]
**About to evaluate statement**: [
pp0 := &mut p;
@@ -35202,30 +66796,6 @@ ty: (Types.Adt (Types.Tuple, [],
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⌊mut@1⌋ ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> &mut@1 (@shared_loan({2}, (&mut@0 (0: u32), 1: u32))) ;
- pp1 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- var@7 -> ⌊inactivated_mut@2⌋ ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
-}
-
-
-- op:
-move var@7
-
[Debug] activate_inactivated_mut_borrow: resulting value:
{ Values.value =
(Values.Adt
@@ -35253,8 +66823,6 @@ move var@7
(Types.Integer Types.U32)]
))
}
-[Debug] Value to move:
-&mut@2 ((&mut@0 (0: u32), 1: u32))
[Debug]
**About to evaluate statement**: [
y := 2: u32;
@@ -35320,34 +66888,6 @@ move var@7
-[Debug] eval_operand:
-- ctx:
-# Ended regions: {}
-# 1 frame(s)
-
-# Frame 0:
-{
- var@0 -> ⊥ : () ;
- x -> ⌊mut@0⌋ ;
- px -> ⊥ : &'_ mut (u32) ;
- p -> ⌊mut@1⌋ ;
- var@4 -> ⊥ : &'_ mut (u32) ;
- pp0 -> &mut@1 (⌊mut@2⌋) ;
- pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ;
- var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
- y -> ⊥ : u32 ;
- var@9 -> ⊥ : &'_ mut (u32) ;
- var@10 -> ⊥ : &'_ mut (u32) ;
- abs@0{parents={}}{regions={0}} {
- &mut@2 ((&mut@0 (0: u32), 1: u32)),
- proj_loans (s@0 : &r@0 mut ((&r@0 mut (u32), u32)))
- }
-}
-
-
-- op:
-2: u32
-
[Debug]
**About to evaluate statement**: [
var@10 := &mut y;
@@ -35537,8 +67077,9 @@ move var@7
-[Debug] eval_operand:
-- ctx:
+[Debug] expand_symbolic_value: s@0 : &r@0 mut ((&r@0 mut (u32), u32))
+
+- original context:
# Ended regions: {}
# 1 frame(s)
@@ -35553,7 +67094,7 @@ move var@7
pp1 -> s@0 : &r@0 mut ((&r@0 mut (u32), u32)) ;
var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
y -> ⌊mut@3⌋ ;
- var@9 -> &mut@4 (2: u32) ;
+ var@9 -> ⊥ : &'_ mut (u32) ;
var@10 -> &mut@3 (⌊mut@4⌋) ;
abs@0{parents={}}{regions={0}} {
&mut@2 ((&mut@0 (0: u32), 1: u32)),
@@ -35562,18 +67103,33 @@ move var@7
}
-- op:
-move var@9
+- new context:
+# Ended regions: {}
+# 1 frame(s)
-[Debug] Value to move:
-&mut@4 (2: u32)
-[Debug]
-**About to evaluate statement**: [
- *((pp1).1) := 3: u32;
- return
-]
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⊥ : &'_ mut (u32) ;
+ p -> ⌊mut@1⌋ ;
+ var@4 -> ⊥ : &'_ mut (u32) ;
+ pp0 -> &mut@1 (⌊mut@2⌋) ;
+ pp1 -> &mut@5 (s@1 : (&r@0 mut (u32), u32)) ;
+ var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
+ y -> ⌊mut@3⌋ ;
+ var@9 -> ⊥ : &'_ mut (u32) ;
+ var@10 -> &mut@3 (⌊mut@4⌋) ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 ((&mut@0 (0: u32), 1: u32)),
+ ⌊mut@5, proj_loans (s@1 : (&r@0 mut (u32), u32))⌋
+ }
+}
-**Context**:
+
+[Debug] expand_symbolic_value: s@1 : (&r@0 mut (u32), u32)
+
+- original context:
# Ended regions: {}
# 1 frame(s)
@@ -35585,22 +67141,46 @@ move var@9
p -> ⌊mut@1⌋ ;
var@4 -> ⊥ : &'_ mut (u32) ;
pp0 -> &mut@1 (⌊mut@2⌋) ;
- pp1 -> &mut@5 ((&mut@4 (2: u32), s@3 : u32)) ;
+ pp1 -> &mut@5 (s@1 : (&r@0 mut (u32), u32)) ;
var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
y -> ⌊mut@3⌋ ;
var@9 -> ⊥ : &'_ mut (u32) ;
var@10 -> &mut@3 (⌊mut@4⌋) ;
abs@0{parents={}}{regions={0}} {
&mut@2 ((&mut@0 (0: u32), 1: u32)),
- ⌊mut@5, (proj_loans (s@2 : &r@0 mut (u32)), proj_loans (s@3 : u32))⌋
+ ⌊mut@5, proj_loans (s@1 : (&r@0 mut (u32), u32))⌋
}
}
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⊥ : &'_ mut (u32) ;
+ p -> ⌊mut@1⌋ ;
+ var@4 -> ⊥ : &'_ mut (u32) ;
+ pp0 -> &mut@1 (⌊mut@2⌋) ;
+ pp1 -> &mut@5 ((s@2 : &r@0 mut (u32), s@3 : u32)) ;
+ var@7 -> ⊥ : &'_ mut ((&'_ mut (u32), u32)) ;
+ y -> ⌊mut@3⌋ ;
+ var@9 -> ⊥ : &'_ mut (u32) ;
+ var@10 -> &mut@3 (⌊mut@4⌋) ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 ((&mut@0 (0: u32), 1: u32)),
+ ⌊mut@5, (proj_loans (s@2 : &r@0 mut (u32)), proj_loans (s@3 : u32))⌋
+ }
+}
+
[Debug]
**About to evaluate statement**: [
- *((pp1).1) := 3: u32
+ *((pp1).1) := 3: u32;
+ return
]
**Context**:
@@ -35628,8 +67208,12 @@ move var@9
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ *((pp1).1) := 3: u32
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
@@ -35653,8 +67237,6 @@ move var@9
}
-- op:
-3: u32
[Debug]
**About to evaluate statement**: [
@@ -35731,6 +67313,38 @@ move var@9
+[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32)))
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ proj_loans (s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))))
+ }
+ var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ;
+ x -> s@0 : &r@0 mut (&r@0 mut ((&r@0 mut (T), u32))) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ;
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ ⌊mut@0, proj_loans (s@1 : &r@0 mut ((&r@0 mut (T), u32)))⌋
+ }
+ var@0 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ;
+ x -> &mut@0 (s@1 : &r@0 mut ((&r@0 mut (T), u32))) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut ((&'_ mut (T), u32))) ;
+}
+
+
[Debug]
**About to evaluate statement**: [
var@0 := &mut *(var@2);
@@ -35840,6 +67454,38 @@ move var@9
+[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32)))
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ proj_loans (s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))))
+ }
+ var@0 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ;
+ x -> s@0 : &r@0 mut (&r@0 mut (&r@0 mut (u32))) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ;
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ abs@0{parents={}}{regions={0}} {
+ ⌊mut@0, proj_loans (s@1 : &r@0 mut (&r@0 mut (u32)))⌋
+ }
+ var@0 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ;
+ x -> &mut@0 (s@1 : &r@0 mut (&r@0 mut (u32))) ;
+ var@2 -> ⊥ : &'_ mut (&'_ mut (&'_ mut (u32))) ;
+}
+
+
[Debug]
**About to evaluate statement**: [
var@0 := &mut *(var@2);
@@ -35967,25 +67613,27 @@ move var@9
-[Debug] eval_operand:
-- ctx:
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> ⊥ : &'_ (u32) ;
+ var@0 -> s@0 : &'static (u32) ;
x -> s@0 : &'static (u32) ;
}
-- op:
-copy x
-[Debug] Value to copy:
-s@0 : &'static (u32)
+[Debug] test_function_symbolic: test_char
[Debug]
**About to evaluate statement**: [
+ var@0 := a;
return
]
@@ -35995,17 +67643,14 @@ s@0 : &'static (u32)
# Frame 0:
{
- var@0 -> s@0 : &'static (u32) ;
- x -> s@0 : &'static (u32) ;
+ var@0 -> ⊥ : char ;
}
-[Debug] test_function_symbolic: test_char
[Debug]
**About to evaluate statement**: [
- var@0 := a;
- return
+ var@0 := a
]
**Context**:
@@ -36021,7 +67666,7 @@ s@0 : &'static (u32)
[Debug]
**About to evaluate statement**: [
- var@0 := a
+ return
]
**Context**:
@@ -36030,27 +67675,153 @@ s@0 : &'static (u32)
# Frame 0:
{
- var@0 -> ⊥ : char ;
+ var@0 -> a ;
}
-[Debug] eval_operand:
-- ctx:
+[Debug] test_function_symbolic: test_loops
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop1(2: u32);
+ var@4 := copy x;
+ var@3 := move var@4 == 2: u32;
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
# Ended regions: {}
# 1 frame(s)
# Frame 0:
{
- var@0 -> ⊥ : char ;
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
}
-- op:
-a
[Debug]
**About to evaluate statement**: [
+ x := move test_loop1(2: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy x;
+ var@3 := move var@4 == 2: u32;
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
return
]
@@ -36060,7 +67831,6658 @@ a
# Frame 0:
{
- var@0 -> a ;
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@4 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 == 2: u32;
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> s@0 : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@3 := move var@4 == 2: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> s@0 : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@2 := ¬ move var@3;
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> s@1 : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@2 := ¬ move var@3
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> s@1 : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@2);
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> s@2 : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@2)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> s@2 : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop2(2: u32);
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop2(2: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy x;
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 == 1: u32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> s@3 : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 == 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> s@3 : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> s@4 : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> s@4 : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@6);
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> s@5 : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@6)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> s@5 : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop3(2: u32);
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop3(2: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy x;
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := move var@12 == 3: u32;
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> s@6 : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := move var@12 == 3: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> s@6 : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := ¬ move var@11;
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> s@7 : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := ¬ move var@11
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> s@7 : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@10);
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> s@8 : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@10)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> s@8 : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop4(20: u32);
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop4(20: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@16 := copy x;
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@16 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@15 := move var@16 == 1: u32;
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> s@9 : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@15 := move var@16 == 1: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> s@9 : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := ¬ move var@15;
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> s@10 : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := ¬ move var@15
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> s@10 : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@14);
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> s@11 : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@14)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> s@11 : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop5(2: u32);
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop5(2: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@20 := copy x;
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@20 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@19 := move var@20 == 2: u32;
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> s@12 : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@19 := move var@20 == 2: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> s@12 : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@18 := ¬ move var@19;
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> s@13 : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@18 := ¬ move var@19
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> s@13 : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@18);
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> s@14 : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@18)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> s@14 : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop6(2: u32);
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := move test_loop6(2: u32)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> ⊥ : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@24 := copy x;
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@24 := copy x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@23 := move var@24 == 2: u32;
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> s@15 : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@23 := move var@24 == 2: u32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> s@15 : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@22 := ¬ move var@23;
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> s@16 : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@22 := ¬ move var@23
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> s@16 : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@22);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> s@17 : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@22)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> s@17 : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@0 : u32 ;
+ var@2 -> ⊥ : bool ;
+ var@3 -> ⊥ : bool ;
+ var@4 -> ⊥ : u32 ;
+ x -> s@3 : u32 ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : u32 ;
+ x -> s@6 : u32 ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : bool ;
+ var@12 -> ⊥ : u32 ;
+ x -> s@9 : u32 ;
+ var@14 -> ⊥ : bool ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : u32 ;
+ x -> s@12 : u32 ;
+ var@18 -> ⊥ : bool ;
+ var@19 -> ⊥ : bool ;
+ var@20 -> ⊥ : u32 ;
+ x -> s@15 : u32 ;
+ var@22 -> ⊥ : bool ;
+ var@23 -> ⊥ : bool ;
+ var@24 -> ⊥ : u32 ;
+}
+
+
+
+[Debug] test_function_symbolic: id_mut_mut_test1
+[Debug]
+**About to evaluate statement**: [
+ x := 0: i32;
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := 0: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 0: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ px := &mut x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 0: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (0: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppx := &mut px
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (0: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (&mut@0 (0: i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := &two-phase *(ppx)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (&mut@0 (0: i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⌊inactivated_mut@2⌋ ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppy := move id_mut_mut<i32>(move var@5)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⌊inactivated_mut@2⌋ ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug] activate_inactivated_mut_borrow: resulting value:
+{ Values.value =
+ (Values.Borrow
+ (Values.MutBorrow (<opaque>,
+ { Values.value =
+ (Values.Concrete
+ (Values.Scalar { Values.value = 0; int_ty = Types.I32 }));
+ ty = (Types.Integer Types.I32) }
+ )));
+ ty = (Types.Ref (Types.Erased, (Types.Integer Types.I32), Types.Mut)) }
+[Debug]
+**About to evaluate statement**: [
+ *(*(ppy)) := 1: i32;
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(*(ppy)) := 1: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+}
+
+
+
+[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32))
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (s@1 : &r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32)))
+ }
+}
+
+
+[Debug] expand_symbolic_value: s@1 : &r@1 mut (i32)
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (s@1 : &r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32)))
+ }
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (s@2 : i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy *(px);
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := copy *(px)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug] end_abstraction: 0
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@2⌋ ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+[Debug] end_abstraction: 0
+- context after parent abstractions ended:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@2⌋ ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+[Debug] end_abstraction: 0
+- context after loans ended:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@2⌋ ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 1: i32); child=@ignored_mut_loan(4, proj_loans (s@2 : i32)) }
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+[Debug] end_abstraction: 0
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@2⌋ ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+- new context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> s@3 : &r@1 mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+[Debug] expand_symbolic_value: s@3 : &r@1 mut (i32)
+
+- original context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> s@3 : &r@1 mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+- new context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 == 1: i32;
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> s@4 : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@7 := move var@8 == 1: i32
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> s@4 : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7;
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> s@5 : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@6 := ¬ move var@7
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> s@5 : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@6);
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> s@6 : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@6)
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> s@6 : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy x;
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy x
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+
+[Debug] end_abstraction: 1
+- original context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+[Debug] end_abstraction: 1
+- context after parent abstractions ended:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+[Debug] end_abstraction: 1
+- context after loans ended:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=proj_borrows (s@4 : i32 <: i32); child=proj_loans (s@4 : i32) }; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=⊥ : &r@1 mut (i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+[Debug] end_abstraction: 1
+- original context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@5 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@5, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@4 (1: i32); child: ⌊mut@4, proj_loans (s@2 : i32)⌋}
+ }
+}
+
+
+- new context:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := move var@11 == 1: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> s@7 : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := move var@11 == 1: i32
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> s@7 : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> s@8 : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := ¬ move var@10
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> s@8 : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@9);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> s@9 : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@9)
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> s@9 : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@6 -> ⊥ : bool ;
+ var@7 -> ⊥ : bool ;
+ var@8 -> ⊥ : i32 ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+}
+
+
+
+[Debug] test_function_symbolic: id_mut_mut_test2
+[Debug]
+**About to evaluate statement**: [
+ x := 0: i32;
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ x := 0: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⊥ : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ px := &mut x;
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 0: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ px := &mut x
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> 0: i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppx := &mut px;
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (0: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppx := &mut px
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@0 (0: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := &two-phase *(ppx);
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (&mut@0 (0: i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@5 := &two-phase *(ppx)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (&mut@0 (0: i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppy := move id_mut_mut<i32>(move var@5);
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⌊inactivated_mut@2⌋ ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ ppy := move id_mut_mut<i32>(move var@5)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (@shared_loan({2}, &mut@0 (0: i32))) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⌊inactivated_mut@2⌋ ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug] activate_inactivated_mut_borrow: resulting value:
+{ Values.value =
+ (Values.Borrow
+ (Values.MutBorrow (<opaque>,
+ { Values.value =
+ (Values.Concrete
+ (Values.Scalar { Values.value = 0; int_ty = Types.I32 }));
+ ty = (Types.Integer Types.I32) }
+ )));
+ ty = (Types.Ref (Types.Erased, (Types.Integer Types.I32), Types.Mut)) }
+[Debug]
+**About to evaluate statement**: [
+ *(*(ppy)) := 1: i32;
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(*(ppy)) := 1: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+}
+
+
+
+[Debug] expand_symbolic_value: s@0 : &r@0 mut (&r@1 mut (i32))
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> s@0 : &r@0 mut (&r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ proj_loans (s@0 : &r@0 mut (&r@1 mut (i32)))
+ }
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (s@1 : &r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32)))
+ }
+}
+
+
+[Debug] expand_symbolic_value: s@1 : &r@1 mut (i32)
+
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (s@1 : &r@1 mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, proj_loans (s@1 : &r@1 mut (i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, proj_loans (s@1 : &r@1 mut (i32)))
+ }
+}
+
+
+- new context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (s@2 : i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+[Debug]
+**About to evaluate statement**: [
+ y := 2: i32;
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ y := 2: i32
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⊥ : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ py := &mut y;
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 2: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ py := &mut y
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> 2: i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := &mut *(py);
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (2: i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@8 := &mut *(py)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (2: i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(ppy) := move var@8;
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> &mut@6 (2: i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(ppy) := move var@8
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@4 (1: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> &mut@6 (2: i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ignored_mut_loan(4, proj_loans (s@2 : i32))⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, ⌊mut@4, proj_loans (s@2 : i32)⌋)
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy *(px);
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@6 (2: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) })
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@11 := copy *(px)
+]
+
+**Context**:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@1⌋ ;
+ ppx -> &mut@1 (⌊mut@2⌋) ;
+ ppy -> &mut@3 (&mut@6 (2: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) })
+ }
+}
+
+
+
+[Debug] end_abstraction: 0
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@2⌋ ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> &mut@3 (&mut@6 (2: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) })
+ }
+}
+
+[Debug] end_abstraction: 0
+- context after parent abstractions ended:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@2⌋ ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> &mut@3 (&mut@6 (2: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) })
+ }
+}
+
+[Debug] end_abstraction: 0
+- context after loans ended:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@2⌋ ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ @ended_mut_loan{ given_back=@ignored_mut_borrow(None, 2: i32); child=@ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)} }
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+[Debug] end_abstraction: 0
+- original context:
+# Ended regions: {}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⌊mut@2⌋ ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> &mut@3 (&mut@6 (2: i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@0{parents={}}{regions={0}} {
+ &mut@2 (@ignored_mut_borrow(None, 0: i32)),
+ ⌊mut@3, @ended_ignored_mut_loan{ given_back=1: i32; child: proj_loans (s@2 : i32)}⌋
+ }
+ abs@1{parents={0}}{regions={1}} {
+ @ignored_mut_borrow(Some (2), &mut@0 (0: i32)),
+ @ignored_mut_loan(3, @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) })
+ }
+}
+
+
+- new context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> s@3 : &r@1 mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+[Debug] expand_symbolic_value: s@3 : &r@1 mut (i32)
+
+- original context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> s@3 : &r@1 mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=proj_loans (s@3 : &r@1 mut (i32)); child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+- new context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := move var@11 == 2: i32;
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> s@4 : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@10 := move var@11 == 2: i32
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> s@4 : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := ¬ move var@10;
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> s@5 : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@9 := ¬ move var@10
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> s@5 : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@9);
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> s@6 : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@9)
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> s@6 : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(px) := 3: i32;
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ *(px) := 3: i32
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (s@4 : i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy x;
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@14 := copy x
+]
+
+**Context**:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+
+[Debug] end_abstraction: 1
+- original context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+[Debug] end_abstraction: 1
+- context after parent abstractions ended:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+[Debug] end_abstraction: 1
+- context after loans ended:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=@ended_mut_loan{ given_back=3: i32; child=proj_loans (s@4 : i32) }; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+[Debug] end_abstraction: 1
+- original context:
+# Ended regions: {0}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> ⌊mut@0⌋ ;
+ px -> &mut@7 (3: i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (⌊mut@6⌋) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+ abs@1{parents={}}{regions={1}} {
+ @ended_ignored_mut_borrow{ given_back_loans_proj=⌊mut@7, proj_loans (s@4 : i32)⌋; child=&mut@0 (0: i32)),
+ @ended_ignored_mut_loan{ given_back=&mut@6 (2: i32); child: @ended_mut_loan{ given_back=1: i32; child=proj_loans (s@2 : i32) }}
+ }
+}
+
+
+- new context:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+[Debug]
+**About to evaluate statement**: [
+ var@13 := move var@14 == 1: i32;
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> s@7 : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@13 := move var@14 == 1: i32
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> s@7 : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := ¬ move var@13;
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> s@9 : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@12 := ¬ move var@13
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> s@9 : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@12);
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> s@10 : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@12)
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> s@10 : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@17 := copy y;
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@17 := copy y
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> ⌊mut@5⌋ ;
+ py -> &mut@5 (s@8 : i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@16 := move var@17 == 3: i32;
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> s@8 : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> s@8 : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@16 := move var@17 == 3: i32
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> s@8 : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> s@8 : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@15 := ¬ move var@16;
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> s@8 : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> s@11 : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ var@15 := ¬ move var@16
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> s@8 : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> s@11 : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@15);
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> s@8 : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> s@12 : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ assert(¬move var@15)
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> s@8 : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> s@12 : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
+}
+
+
+
+[Debug]
+**About to evaluate statement**: [
+ return
+]
+
+**Context**:
+# Ended regions: {0, 1}
+# 1 frame(s)
+
+# Frame 0:
+{
+ var@0 -> ⊥ : () ;
+ x -> s@7 : i32 ;
+ px -> ⊥ : &'_ mut (i32) ;
+ ppx -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ ppy -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ var@5 -> ⊥ : &'_ mut (&'_ mut (i32)) ;
+ y -> s@8 : i32 ;
+ py -> ⊥ : &'_ mut (i32) ;
+ var@8 -> ⊥ : &'_ mut (i32) ;
+ var@9 -> ⊥ : bool ;
+ var@10 -> ⊥ : bool ;
+ var@11 -> ⊥ : i32 ;
+ var@12 -> ⊥ : bool ;
+ var@13 -> ⊥ : bool ;
+ var@14 -> ⊥ : i32 ;
+ var@15 -> ⊥ : bool ;
+ var@16 -> ⊥ : bool ;
+ var@17 -> ⊥ : i32 ;
}