YES Problem: rec[revApp_0][2](Nil(),Cons(x1,x2)) -> Cons(x1,x2) rec[revApp_0][2](Cons(x14,x10),x6) -> rec[revApp_0][2](x10,Cons(x14,x6)) rec[dfsAcc_0][3](Leaf(x40),x56) -> Cons(x40,x56) rec[dfsAcc_0][3](Node(x14,x10),x6) -> rec[dfsAcc_0][3](x10,rec[dfsAcc_0][3](x14,x6)) main(x1) -> rec[revApp_0][2](rec[dfsAcc_0][3](x1,Nil()),Nil()) Proof: Matrix Interpretation Processor: dim=1 interpretation: [main](x0) = 4x0 + 4, [Node](x0, x1) = 5x0 + x1 + 2, [rec[dfsAcc_0][3]](x0, x1) = x0 + x1 + 1, [Leaf](x0) = x0 + 1, [rec[revApp_0][2]](x0, x1) = x0 + x1 + 3, [Cons](x0, x1) = x0 + x1, [Nil] = 0 orientation: rec[revApp_0][2](Nil(),Cons(x1,x2)) = x1 + x2 + 3 >= x1 + x2 = Cons(x1,x2) rec[revApp_0][2](Cons(x14,x10),x6) = x10 + x14 + x6 + 3 >= x10 + x14 + x6 + 3 = rec[revApp_0][2](x10,Cons(x14,x6)) rec[dfsAcc_0][3](Leaf(x40),x56) = x40 + x56 + 2 >= x40 + x56 = Cons(x40,x56) rec[dfsAcc_0][3](Node(x14,x10),x6) = x10 + 5x14 + x6 + 3 >= x10 + x14 + x6 + 2 = rec[dfsAcc_0][3](x10,rec[dfsAcc_0][3](x14,x6)) main(x1) = 4x1 + 4 >= x1 + 4 = rec[revApp_0][2](rec[dfsAcc_0][3](x1,Nil()),Nil()) problem: rec[revApp_0][2](Cons(x14,x10),x6) -> rec[revApp_0][2](x10,Cons(x14,x6)) main(x1) -> rec[revApp_0][2](rec[dfsAcc_0][3](x1,Nil()),Nil()) Matrix Interpretation Processor: dim=1 interpretation: [main](x0) = x0 + 1, [rec[dfsAcc_0][3]](x0, x1) = x0 + x1, [rec[revApp_0][2]](x0, x1) = x0 + x1, [Cons](x0, x1) = x0 + x1 + 4, [Nil] = 0 orientation: rec[revApp_0][2](Cons(x14,x10),x6) = x10 + x14 + x6 + 4 >= x10 + x14 + x6 + 4 = rec[revApp_0][2](x10,Cons(x14,x6)) main(x1) = x1 + 1 >= x1 = rec[revApp_0][2](rec[dfsAcc_0][3](x1,Nil()),Nil()) problem: rec[revApp_0][2](Cons(x14,x10),x6) -> rec[revApp_0][2](x10,Cons(x14,x6)) Matrix Interpretation Processor: dim=1 interpretation: [rec[revApp_0][2]](x0, x1) = 2x0 + x1 + 2, [Cons](x0, x1) = 2x0 + x1 + 2 orientation: rec[revApp_0][2](Cons(x14,x10),x6) = 2x10 + 4x14 + x6 + 6 >= 2x10 + 2x14 + x6 + 4 = rec[revApp_0][2](x10,Cons(x14,x6)) problem: Qed