122.65/31.92 YES 122.76/31.92 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 122.76/31.92 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 122.76/31.92 122.76/31.92 122.76/31.92 Outermost Termination of the given OTRS could be proven: 122.76/31.92 122.76/31.92 (0) OTRS 122.76/31.92 (1) Raffelsieper-Zantema-Transformation [SOUND, 0 ms] 122.76/31.92 (2) QTRS 122.76/31.92 (3) DependencyPairsProof [EQUIVALENT, 0 ms] 122.76/31.92 (4) QDP 122.76/31.92 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 122.76/31.92 (6) AND 122.76/31.92 (7) QDP 122.76/31.92 (8) UsableRulesProof [EQUIVALENT, 0 ms] 122.76/31.92 (9) QDP 122.76/31.92 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 122.76/31.92 (11) YES 122.76/31.92 (12) QDP 122.76/31.92 (13) TransformationProof [EQUIVALENT, 2 ms] 122.76/31.92 (14) QDP 122.76/31.92 (15) DependencyGraphProof [EQUIVALENT, 0 ms] 122.76/31.92 (16) QDP 122.76/31.92 (17) QDPOrderProof [EQUIVALENT, 29 ms] 122.76/31.92 (18) QDP 122.76/31.92 (19) DependencyGraphProof [EQUIVALENT, 0 ms] 122.76/31.92 (20) QDP 122.76/31.92 (21) QDPOrderProof [EQUIVALENT, 6 ms] 122.76/31.92 (22) QDP 122.76/31.92 (23) QDPOrderProof [EQUIVALENT, 6043 ms] 122.76/31.92 (24) QDP 122.76/31.92 (25) PisEmptyProof [EQUIVALENT, 0 ms] 122.76/31.92 (26) YES 122.76/31.92 122.76/31.92 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (0) 122.76/31.92 Obligation: 122.76/31.92 Term rewrite system R: 122.76/31.92 The TRS R consists of the following rules: 122.76/31.92 122.76/31.92 eq(n__0, n__0) -> true 122.76/31.92 eq(n__s(X), n__s(Y)) -> eq(activate(X), activate(Y)) 122.76/31.92 eq(X, Y) -> false 122.76/31.92 inf(X) -> cons(X, n__inf(s(X))) 122.76/31.92 take(0, X) -> nil 122.76/31.92 take(s(X), cons(Y, L)) -> cons(activate(Y), n__take(activate(X), activate(L))) 122.76/31.92 length(nil) -> 0 122.76/31.92 length(cons(X, L)) -> s(n__length(activate(L))) 122.76/31.92 0 -> n__0 122.76/31.92 s(X) -> n__s(X) 122.76/31.92 inf(X) -> n__inf(X) 122.76/31.92 take(X1, X2) -> n__take(X1, X2) 122.76/31.92 length(X) -> n__length(X) 122.76/31.92 activate(n__0) -> 0 122.76/31.92 activate(n__s(X)) -> s(X) 122.76/31.92 activate(n__inf(X)) -> inf(X) 122.76/31.92 activate(n__take(X1, X2)) -> take(X1, X2) 122.76/31.92 activate(n__length(X)) -> length(X) 122.76/31.92 activate(X) -> X 122.76/31.92 122.76/31.92 122.76/31.92 122.76/31.92 Outermost Strategy. 122.76/31.92 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (1) Raffelsieper-Zantema-Transformation (SOUND) 122.76/31.92 We applied the Raffelsieper-Zantema transformation to transform the outermost TRS to a standard TRS. 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (2) 122.76/31.92 Obligation: 122.76/31.92 Q restricted rewrite system: 122.76/31.92 The TRS R consists of the following rules: 122.76/31.92 122.76/31.92 down(eq(n__0, n__0)) -> up(true) 122.76/31.92 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.76/31.92 down(eq(X, Y)) -> up(false) 122.76/31.92 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.76/31.92 down(take(0, X)) -> up(nil) 122.76/31.92 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.76/31.92 down(length(nil)) -> up(0) 122.76/31.92 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.76/31.92 down(0) -> up(n__0) 122.76/31.92 down(s(X)) -> up(n__s(X)) 122.76/31.92 down(inf(X)) -> up(n__inf(X)) 122.76/31.92 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.76/31.92 down(length(X)) -> up(n__length(X)) 122.76/31.92 down(activate(n__0)) -> up(0) 122.76/31.92 down(activate(n__s(X))) -> up(s(X)) 122.76/31.92 down(activate(n__inf(X))) -> up(inf(X)) 122.76/31.92 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.76/31.92 down(activate(n__length(X))) -> up(length(X)) 122.76/31.92 down(activate(X)) -> up(X) 122.76/31.92 top(up(x)) -> top(down(x)) 122.76/31.92 down(n__s(y2)) -> n__s_flat(down(y2)) 122.76/31.92 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.76/31.92 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.76/31.92 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.76/31.92 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.76/31.92 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.76/31.92 down(n__length(y14)) -> n__length_flat(down(y14)) 122.76/31.92 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.76/31.92 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.76/31.92 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.76/31.92 activate_flat(up(x_1)) -> up(activate(x_1)) 122.76/31.92 inf_flat(up(x_1)) -> up(inf(x_1)) 122.76/31.92 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.76/31.92 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.76/31.92 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.76/31.92 s_flat(up(x_1)) -> up(s(x_1)) 122.76/31.92 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.76/31.92 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.76/31.92 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.76/31.92 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.76/31.92 length_flat(up(x_1)) -> up(length(x_1)) 122.76/31.92 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.76/31.92 122.76/31.92 Q is empty. 122.76/31.92 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (3) DependencyPairsProof (EQUIVALENT) 122.76/31.92 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (4) 122.76/31.92 Obligation: 122.76/31.92 Q DP problem: 122.76/31.92 The TRS P consists of the following rules: 122.76/31.92 122.76/31.92 TOP(up(x)) -> TOP(down(x)) 122.76/31.92 TOP(up(x)) -> DOWN(x) 122.76/31.92 DOWN(n__s(y2)) -> N__S_FLAT(down(y2)) 122.76/31.92 DOWN(n__s(y2)) -> DOWN(y2) 122.76/31.92 DOWN(cons(y5, y6)) -> CONS_FLAT(down(y5), block(y6)) 122.76/31.92 DOWN(cons(y5, y6)) -> DOWN(y5) 122.76/31.92 DOWN(cons(y5, y6)) -> CONS_FLAT(block(y5), down(y6)) 122.76/31.92 DOWN(cons(y5, y6)) -> DOWN(y6) 122.76/31.92 DOWN(n__inf(y7)) -> N__INF_FLAT(down(y7)) 122.76/31.92 DOWN(n__inf(y7)) -> DOWN(y7) 122.76/31.92 DOWN(n__take(y11, y12)) -> N__TAKE_FLAT(down(y11), block(y12)) 122.76/31.92 DOWN(n__take(y11, y12)) -> DOWN(y11) 122.76/31.92 DOWN(n__take(y11, y12)) -> N__TAKE_FLAT(block(y11), down(y12)) 122.76/31.92 DOWN(n__take(y11, y12)) -> DOWN(y12) 122.76/31.92 DOWN(n__length(y14)) -> N__LENGTH_FLAT(down(y14)) 122.76/31.92 DOWN(n__length(y14)) -> DOWN(y14) 122.76/31.92 122.76/31.92 The TRS R consists of the following rules: 122.76/31.92 122.76/31.92 down(eq(n__0, n__0)) -> up(true) 122.76/31.92 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.76/31.92 down(eq(X, Y)) -> up(false) 122.76/31.92 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.76/31.92 down(take(0, X)) -> up(nil) 122.76/31.92 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.76/31.92 down(length(nil)) -> up(0) 122.76/31.92 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.76/31.92 down(0) -> up(n__0) 122.76/31.92 down(s(X)) -> up(n__s(X)) 122.76/31.92 down(inf(X)) -> up(n__inf(X)) 122.76/31.92 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.76/31.92 down(length(X)) -> up(n__length(X)) 122.76/31.92 down(activate(n__0)) -> up(0) 122.76/31.92 down(activate(n__s(X))) -> up(s(X)) 122.76/31.92 down(activate(n__inf(X))) -> up(inf(X)) 122.76/31.92 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.76/31.92 down(activate(n__length(X))) -> up(length(X)) 122.76/31.92 down(activate(X)) -> up(X) 122.76/31.92 top(up(x)) -> top(down(x)) 122.76/31.92 down(n__s(y2)) -> n__s_flat(down(y2)) 122.76/31.92 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.76/31.92 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.76/31.92 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.76/31.92 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.76/31.92 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.76/31.92 down(n__length(y14)) -> n__length_flat(down(y14)) 122.76/31.92 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.76/31.92 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.76/31.92 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.76/31.92 activate_flat(up(x_1)) -> up(activate(x_1)) 122.76/31.92 inf_flat(up(x_1)) -> up(inf(x_1)) 122.76/31.92 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.76/31.92 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.76/31.92 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.76/31.92 s_flat(up(x_1)) -> up(s(x_1)) 122.76/31.92 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.76/31.92 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.76/31.92 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.76/31.92 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.76/31.92 length_flat(up(x_1)) -> up(length(x_1)) 122.76/31.92 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.76/31.92 122.76/31.92 Q is empty. 122.76/31.92 We have to consider all minimal (P,Q,R)-chains. 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (5) DependencyGraphProof (EQUIVALENT) 122.76/31.92 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 8 less nodes. 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (6) 122.76/31.92 Complex Obligation (AND) 122.76/31.92 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (7) 122.76/31.92 Obligation: 122.76/31.92 Q DP problem: 122.76/31.92 The TRS P consists of the following rules: 122.76/31.92 122.76/31.92 DOWN(cons(y5, y6)) -> DOWN(y5) 122.76/31.92 DOWN(n__s(y2)) -> DOWN(y2) 122.76/31.92 DOWN(cons(y5, y6)) -> DOWN(y6) 122.76/31.92 DOWN(n__inf(y7)) -> DOWN(y7) 122.76/31.92 DOWN(n__take(y11, y12)) -> DOWN(y11) 122.76/31.92 DOWN(n__take(y11, y12)) -> DOWN(y12) 122.76/31.92 DOWN(n__length(y14)) -> DOWN(y14) 122.76/31.92 122.76/31.92 The TRS R consists of the following rules: 122.76/31.92 122.76/31.92 down(eq(n__0, n__0)) -> up(true) 122.76/31.92 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.76/31.92 down(eq(X, Y)) -> up(false) 122.76/31.92 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.76/31.92 down(take(0, X)) -> up(nil) 122.76/31.92 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.76/31.92 down(length(nil)) -> up(0) 122.76/31.92 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.76/31.92 down(0) -> up(n__0) 122.76/31.92 down(s(X)) -> up(n__s(X)) 122.76/31.92 down(inf(X)) -> up(n__inf(X)) 122.76/31.92 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.76/31.92 down(length(X)) -> up(n__length(X)) 122.76/31.92 down(activate(n__0)) -> up(0) 122.76/31.92 down(activate(n__s(X))) -> up(s(X)) 122.76/31.92 down(activate(n__inf(X))) -> up(inf(X)) 122.76/31.92 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.76/31.92 down(activate(n__length(X))) -> up(length(X)) 122.76/31.92 down(activate(X)) -> up(X) 122.76/31.92 top(up(x)) -> top(down(x)) 122.76/31.92 down(n__s(y2)) -> n__s_flat(down(y2)) 122.76/31.92 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.76/31.92 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.76/31.92 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.76/31.92 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.76/31.92 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.76/31.92 down(n__length(y14)) -> n__length_flat(down(y14)) 122.76/31.92 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.76/31.92 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.76/31.92 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.76/31.92 activate_flat(up(x_1)) -> up(activate(x_1)) 122.76/31.92 inf_flat(up(x_1)) -> up(inf(x_1)) 122.76/31.92 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.76/31.92 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.76/31.92 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.76/31.92 s_flat(up(x_1)) -> up(s(x_1)) 122.76/31.92 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.76/31.92 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.76/31.92 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.76/31.92 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.76/31.92 length_flat(up(x_1)) -> up(length(x_1)) 122.76/31.92 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.76/31.92 122.76/31.92 Q is empty. 122.76/31.92 We have to consider all minimal (P,Q,R)-chains. 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (8) UsableRulesProof (EQUIVALENT) 122.76/31.92 We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (9) 122.76/31.92 Obligation: 122.76/31.92 Q DP problem: 122.76/31.92 The TRS P consists of the following rules: 122.76/31.92 122.76/31.92 DOWN(cons(y5, y6)) -> DOWN(y5) 122.76/31.92 DOWN(n__s(y2)) -> DOWN(y2) 122.76/31.92 DOWN(cons(y5, y6)) -> DOWN(y6) 122.76/31.92 DOWN(n__inf(y7)) -> DOWN(y7) 122.76/31.92 DOWN(n__take(y11, y12)) -> DOWN(y11) 122.76/31.92 DOWN(n__take(y11, y12)) -> DOWN(y12) 122.76/31.92 DOWN(n__length(y14)) -> DOWN(y14) 122.76/31.92 122.76/31.92 R is empty. 122.76/31.92 Q is empty. 122.76/31.92 We have to consider all minimal (P,Q,R)-chains. 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (10) QDPSizeChangeProof (EQUIVALENT) 122.76/31.92 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 122.76/31.92 122.76/31.92 From the DPs we obtained the following set of size-change graphs: 122.76/31.92 *DOWN(cons(y5, y6)) -> DOWN(y5) 122.76/31.92 The graph contains the following edges 1 > 1 122.76/31.92 122.76/31.92 122.76/31.92 *DOWN(n__s(y2)) -> DOWN(y2) 122.76/31.92 The graph contains the following edges 1 > 1 122.76/31.92 122.76/31.92 122.76/31.92 *DOWN(cons(y5, y6)) -> DOWN(y6) 122.76/31.92 The graph contains the following edges 1 > 1 122.76/31.92 122.76/31.92 122.76/31.92 *DOWN(n__inf(y7)) -> DOWN(y7) 122.76/31.92 The graph contains the following edges 1 > 1 122.76/31.92 122.76/31.92 122.76/31.92 *DOWN(n__take(y11, y12)) -> DOWN(y11) 122.76/31.92 The graph contains the following edges 1 > 1 122.76/31.92 122.76/31.92 122.76/31.92 *DOWN(n__take(y11, y12)) -> DOWN(y12) 122.76/31.92 The graph contains the following edges 1 > 1 122.76/31.92 122.76/31.92 122.76/31.92 *DOWN(n__length(y14)) -> DOWN(y14) 122.76/31.92 The graph contains the following edges 1 > 1 122.76/31.92 122.76/31.92 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (11) 122.76/31.92 YES 122.76/31.92 122.76/31.92 ---------------------------------------- 122.76/31.92 122.76/31.92 (12) 122.76/31.92 Obligation: 122.76/31.92 Q DP problem: 122.76/31.92 The TRS P consists of the following rules: 122.76/31.92 122.76/31.92 TOP(up(x)) -> TOP(down(x)) 122.76/31.92 122.76/31.92 The TRS R consists of the following rules: 122.76/31.92 122.76/31.92 down(eq(n__0, n__0)) -> up(true) 122.76/31.92 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.76/31.92 down(eq(X, Y)) -> up(false) 122.76/31.92 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.76/31.92 down(take(0, X)) -> up(nil) 122.76/31.92 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.76/31.92 down(length(nil)) -> up(0) 122.76/31.92 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.76/31.92 down(0) -> up(n__0) 122.76/31.92 down(s(X)) -> up(n__s(X)) 122.76/31.92 down(inf(X)) -> up(n__inf(X)) 122.76/31.92 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.76/31.92 down(length(X)) -> up(n__length(X)) 122.76/31.92 down(activate(n__0)) -> up(0) 122.76/31.93 down(activate(n__s(X))) -> up(s(X)) 122.76/31.93 down(activate(n__inf(X))) -> up(inf(X)) 122.76/31.93 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.76/31.93 down(activate(n__length(X))) -> up(length(X)) 122.76/31.93 down(activate(X)) -> up(X) 122.76/31.93 top(up(x)) -> top(down(x)) 122.76/31.93 down(n__s(y2)) -> n__s_flat(down(y2)) 122.76/31.93 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.76/31.93 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.76/31.93 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.76/31.93 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.76/31.93 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.76/31.93 down(n__length(y14)) -> n__length_flat(down(y14)) 122.76/31.93 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.76/31.93 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.76/31.93 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.76/31.93 activate_flat(up(x_1)) -> up(activate(x_1)) 122.76/31.93 inf_flat(up(x_1)) -> up(inf(x_1)) 122.76/31.93 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.76/31.93 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.76/31.93 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.76/31.93 s_flat(up(x_1)) -> up(s(x_1)) 122.76/31.93 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.76/31.93 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.76/31.93 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.76/31.93 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.76/31.93 length_flat(up(x_1)) -> up(length(x_1)) 122.76/31.93 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.76/31.93 122.76/31.93 Q is empty. 122.76/31.93 We have to consider all minimal (P,Q,R)-chains. 122.76/31.93 ---------------------------------------- 122.76/31.93 122.76/31.93 (13) TransformationProof (EQUIVALENT) 122.76/31.93 By narrowing [LPAR04] the rule TOP(up(x)) -> TOP(down(x)) at position [0] we obtained the following new rules [LPAR04]: 122.76/31.93 122.76/31.93 (TOP(up(eq(n__0, n__0))) -> TOP(up(true)),TOP(up(eq(n__0, n__0))) -> TOP(up(true))) 122.76/31.93 (TOP(up(eq(n__s(x0), n__s(x1)))) -> TOP(up(eq(activate(x0), activate(x1)))),TOP(up(eq(n__s(x0), n__s(x1)))) -> TOP(up(eq(activate(x0), activate(x1))))) 122.76/31.93 (TOP(up(eq(x0, x1))) -> TOP(up(false)),TOP(up(eq(x0, x1))) -> TOP(up(false))) 122.76/31.93 (TOP(up(inf(x0))) -> TOP(up(cons(x0, n__inf(s(x0))))),TOP(up(inf(x0))) -> TOP(up(cons(x0, n__inf(s(x0)))))) 122.76/31.93 (TOP(up(take(0, x0))) -> TOP(up(nil)),TOP(up(take(0, x0))) -> TOP(up(nil))) 122.76/31.93 (TOP(up(take(s(x0), cons(x1, x2)))) -> TOP(up(cons(activate(x1), n__take(activate(x0), activate(x2))))),TOP(up(take(s(x0), cons(x1, x2)))) -> TOP(up(cons(activate(x1), n__take(activate(x0), activate(x2)))))) 122.76/31.93 (TOP(up(length(nil))) -> TOP(up(0)),TOP(up(length(nil))) -> TOP(up(0))) 122.76/31.93 (TOP(up(length(cons(x0, x1)))) -> TOP(up(s(n__length(activate(x1))))),TOP(up(length(cons(x0, x1)))) -> TOP(up(s(n__length(activate(x1)))))) 122.76/31.93 (TOP(up(0)) -> TOP(up(n__0)),TOP(up(0)) -> TOP(up(n__0))) 122.76/31.93 (TOP(up(s(x0))) -> TOP(up(n__s(x0))),TOP(up(s(x0))) -> TOP(up(n__s(x0)))) 122.76/31.93 (TOP(up(inf(x0))) -> TOP(up(n__inf(x0))),TOP(up(inf(x0))) -> TOP(up(n__inf(x0)))) 122.76/31.93 (TOP(up(take(x0, x1))) -> TOP(up(n__take(x0, x1))),TOP(up(take(x0, x1))) -> TOP(up(n__take(x0, x1)))) 122.76/31.93 (TOP(up(length(x0))) -> TOP(up(n__length(x0))),TOP(up(length(x0))) -> TOP(up(n__length(x0)))) 122.76/31.93 (TOP(up(activate(n__0))) -> TOP(up(0)),TOP(up(activate(n__0))) -> TOP(up(0))) 122.76/31.93 (TOP(up(activate(n__s(x0)))) -> TOP(up(s(x0))),TOP(up(activate(n__s(x0)))) -> TOP(up(s(x0)))) 122.76/31.93 (TOP(up(activate(n__inf(x0)))) -> TOP(up(inf(x0))),TOP(up(activate(n__inf(x0)))) -> TOP(up(inf(x0)))) 122.76/31.93 (TOP(up(activate(n__take(x0, x1)))) -> TOP(up(take(x0, x1))),TOP(up(activate(n__take(x0, x1)))) -> TOP(up(take(x0, x1)))) 122.76/31.93 (TOP(up(activate(n__length(x0)))) -> TOP(up(length(x0))),TOP(up(activate(n__length(x0)))) -> TOP(up(length(x0)))) 122.76/31.93 (TOP(up(activate(x0))) -> TOP(up(x0)),TOP(up(activate(x0))) -> TOP(up(x0))) 122.76/31.93 (TOP(up(n__s(x0))) -> TOP(n__s_flat(down(x0))),TOP(up(n__s(x0))) -> TOP(n__s_flat(down(x0)))) 122.76/31.93 (TOP(up(cons(x0, x1))) -> TOP(cons_flat(down(x0), block(x1))),TOP(up(cons(x0, x1))) -> TOP(cons_flat(down(x0), block(x1)))) 122.76/31.93 (TOP(up(cons(x0, x1))) -> TOP(cons_flat(block(x0), down(x1))),TOP(up(cons(x0, x1))) -> TOP(cons_flat(block(x0), down(x1)))) 122.76/31.93 (TOP(up(n__inf(x0))) -> TOP(n__inf_flat(down(x0))),TOP(up(n__inf(x0))) -> TOP(n__inf_flat(down(x0)))) 122.76/31.93 (TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(down(x0), block(x1))),TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(down(x0), block(x1)))) 122.81/31.93 (TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(block(x0), down(x1))),TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(block(x0), down(x1)))) 122.81/31.93 (TOP(up(n__length(x0))) -> TOP(n__length_flat(down(x0))),TOP(up(n__length(x0))) -> TOP(n__length_flat(down(x0)))) 122.81/31.93 122.81/31.93 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (14) 122.81/31.93 Obligation: 122.81/31.93 Q DP problem: 122.81/31.93 The TRS P consists of the following rules: 122.81/31.93 122.81/31.93 TOP(up(eq(n__0, n__0))) -> TOP(up(true)) 122.81/31.93 TOP(up(eq(n__s(x0), n__s(x1)))) -> TOP(up(eq(activate(x0), activate(x1)))) 122.81/31.93 TOP(up(eq(x0, x1))) -> TOP(up(false)) 122.81/31.93 TOP(up(inf(x0))) -> TOP(up(cons(x0, n__inf(s(x0))))) 122.81/31.93 TOP(up(take(0, x0))) -> TOP(up(nil)) 122.81/31.93 TOP(up(take(s(x0), cons(x1, x2)))) -> TOP(up(cons(activate(x1), n__take(activate(x0), activate(x2))))) 122.81/31.93 TOP(up(length(nil))) -> TOP(up(0)) 122.81/31.93 TOP(up(length(cons(x0, x1)))) -> TOP(up(s(n__length(activate(x1))))) 122.81/31.93 TOP(up(0)) -> TOP(up(n__0)) 122.81/31.93 TOP(up(s(x0))) -> TOP(up(n__s(x0))) 122.81/31.93 TOP(up(inf(x0))) -> TOP(up(n__inf(x0))) 122.81/31.93 TOP(up(take(x0, x1))) -> TOP(up(n__take(x0, x1))) 122.81/31.93 TOP(up(length(x0))) -> TOP(up(n__length(x0))) 122.81/31.93 TOP(up(activate(n__0))) -> TOP(up(0)) 122.81/31.93 TOP(up(activate(n__s(x0)))) -> TOP(up(s(x0))) 122.81/31.93 TOP(up(activate(n__inf(x0)))) -> TOP(up(inf(x0))) 122.81/31.93 TOP(up(activate(n__take(x0, x1)))) -> TOP(up(take(x0, x1))) 122.81/31.93 TOP(up(activate(n__length(x0)))) -> TOP(up(length(x0))) 122.81/31.93 TOP(up(activate(x0))) -> TOP(up(x0)) 122.81/31.93 TOP(up(n__s(x0))) -> TOP(n__s_flat(down(x0))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(block(x0), down(x1))) 122.81/31.93 TOP(up(n__inf(x0))) -> TOP(n__inf_flat(down(x0))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(block(x0), down(x1))) 122.81/31.93 TOP(up(n__length(x0))) -> TOP(n__length_flat(down(x0))) 122.81/31.93 122.81/31.93 The TRS R consists of the following rules: 122.81/31.93 122.81/31.93 down(eq(n__0, n__0)) -> up(true) 122.81/31.93 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.81/31.93 down(eq(X, Y)) -> up(false) 122.81/31.93 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.81/31.93 down(take(0, X)) -> up(nil) 122.81/31.93 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.81/31.93 down(length(nil)) -> up(0) 122.81/31.93 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.81/31.93 down(0) -> up(n__0) 122.81/31.93 down(s(X)) -> up(n__s(X)) 122.81/31.93 down(inf(X)) -> up(n__inf(X)) 122.81/31.93 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.81/31.93 down(length(X)) -> up(n__length(X)) 122.81/31.93 down(activate(n__0)) -> up(0) 122.81/31.93 down(activate(n__s(X))) -> up(s(X)) 122.81/31.93 down(activate(n__inf(X))) -> up(inf(X)) 122.81/31.93 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.81/31.93 down(activate(n__length(X))) -> up(length(X)) 122.81/31.93 down(activate(X)) -> up(X) 122.81/31.93 top(up(x)) -> top(down(x)) 122.81/31.93 down(n__s(y2)) -> n__s_flat(down(y2)) 122.81/31.93 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.81/31.93 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.81/31.93 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.81/31.93 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.81/31.93 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.81/31.93 down(n__length(y14)) -> n__length_flat(down(y14)) 122.81/31.93 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.81/31.93 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.81/31.93 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.93 activate_flat(up(x_1)) -> up(activate(x_1)) 122.81/31.93 inf_flat(up(x_1)) -> up(inf(x_1)) 122.81/31.93 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.93 s_flat(up(x_1)) -> up(s(x_1)) 122.81/31.93 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.81/31.93 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.81/31.93 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 length_flat(up(x_1)) -> up(length(x_1)) 122.81/31.93 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.93 122.81/31.93 Q is empty. 122.81/31.93 We have to consider all minimal (P,Q,R)-chains. 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (15) DependencyGraphProof (EQUIVALENT) 122.81/31.93 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 7 less nodes. 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (16) 122.81/31.93 Obligation: 122.81/31.93 Q DP problem: 122.81/31.93 The TRS P consists of the following rules: 122.81/31.93 122.81/31.93 TOP(up(inf(x0))) -> TOP(up(cons(x0, n__inf(s(x0))))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(take(s(x0), cons(x1, x2)))) -> TOP(up(cons(activate(x1), n__take(activate(x0), activate(x2))))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(block(x0), down(x1))) 122.81/31.93 TOP(up(length(cons(x0, x1)))) -> TOP(up(s(n__length(activate(x1))))) 122.81/31.93 TOP(up(s(x0))) -> TOP(up(n__s(x0))) 122.81/31.93 TOP(up(n__s(x0))) -> TOP(n__s_flat(down(x0))) 122.81/31.93 TOP(up(inf(x0))) -> TOP(up(n__inf(x0))) 122.81/31.93 TOP(up(n__inf(x0))) -> TOP(n__inf_flat(down(x0))) 122.81/31.93 TOP(up(take(x0, x1))) -> TOP(up(n__take(x0, x1))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(length(x0))) -> TOP(up(n__length(x0))) 122.81/31.93 TOP(up(n__length(x0))) -> TOP(n__length_flat(down(x0))) 122.81/31.93 TOP(up(activate(n__s(x0)))) -> TOP(up(s(x0))) 122.81/31.93 TOP(up(activate(n__inf(x0)))) -> TOP(up(inf(x0))) 122.81/31.93 TOP(up(activate(n__take(x0, x1)))) -> TOP(up(take(x0, x1))) 122.81/31.93 TOP(up(activate(n__length(x0)))) -> TOP(up(length(x0))) 122.81/31.93 TOP(up(activate(x0))) -> TOP(up(x0)) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(block(x0), down(x1))) 122.81/31.93 122.81/31.93 The TRS R consists of the following rules: 122.81/31.93 122.81/31.93 down(eq(n__0, n__0)) -> up(true) 122.81/31.93 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.81/31.93 down(eq(X, Y)) -> up(false) 122.81/31.93 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.81/31.93 down(take(0, X)) -> up(nil) 122.81/31.93 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.81/31.93 down(length(nil)) -> up(0) 122.81/31.93 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.81/31.93 down(0) -> up(n__0) 122.81/31.93 down(s(X)) -> up(n__s(X)) 122.81/31.93 down(inf(X)) -> up(n__inf(X)) 122.81/31.93 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.81/31.93 down(length(X)) -> up(n__length(X)) 122.81/31.93 down(activate(n__0)) -> up(0) 122.81/31.93 down(activate(n__s(X))) -> up(s(X)) 122.81/31.93 down(activate(n__inf(X))) -> up(inf(X)) 122.81/31.93 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.81/31.93 down(activate(n__length(X))) -> up(length(X)) 122.81/31.93 down(activate(X)) -> up(X) 122.81/31.93 top(up(x)) -> top(down(x)) 122.81/31.93 down(n__s(y2)) -> n__s_flat(down(y2)) 122.81/31.93 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.81/31.93 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.81/31.93 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.81/31.93 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.81/31.93 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.81/31.93 down(n__length(y14)) -> n__length_flat(down(y14)) 122.81/31.93 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.81/31.93 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.81/31.93 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.93 activate_flat(up(x_1)) -> up(activate(x_1)) 122.81/31.93 inf_flat(up(x_1)) -> up(inf(x_1)) 122.81/31.93 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.93 s_flat(up(x_1)) -> up(s(x_1)) 122.81/31.93 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.81/31.93 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.81/31.93 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 length_flat(up(x_1)) -> up(length(x_1)) 122.81/31.93 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.93 122.81/31.93 Q is empty. 122.81/31.93 We have to consider all minimal (P,Q,R)-chains. 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (17) QDPOrderProof (EQUIVALENT) 122.81/31.93 We use the reduction pair processor [LPAR04,JAR06]. 122.81/31.93 122.81/31.93 122.81/31.93 The following pairs can be oriented strictly and are deleted. 122.81/31.93 122.81/31.93 TOP(up(inf(x0))) -> TOP(up(cons(x0, n__inf(s(x0))))) 122.81/31.93 TOP(up(take(s(x0), cons(x1, x2)))) -> TOP(up(cons(activate(x1), n__take(activate(x0), activate(x2))))) 122.81/31.93 TOP(up(length(cons(x0, x1)))) -> TOP(up(s(n__length(activate(x1))))) 122.81/31.93 TOP(up(inf(x0))) -> TOP(up(n__inf(x0))) 122.81/31.93 TOP(up(take(x0, x1))) -> TOP(up(n__take(x0, x1))) 122.81/31.93 TOP(up(length(x0))) -> TOP(up(n__length(x0))) 122.81/31.93 TOP(up(activate(n__s(x0)))) -> TOP(up(s(x0))) 122.81/31.93 TOP(up(activate(x0))) -> TOP(up(x0)) 122.81/31.93 The remaining pairs can at least be oriented weakly. 122.81/31.93 Used ordering: Polynomial interpretation [POLO]: 122.81/31.93 122.81/31.93 POL(0) = 0 122.81/31.93 POL(TOP(x_1)) = x_1 122.81/31.93 POL(activate(x_1)) = 1 + x_1 122.81/31.93 POL(block(x_1)) = 0 122.81/31.93 POL(cons(x_1, x_2)) = 0 122.81/31.93 POL(cons_flat(x_1, x_2)) = 0 122.81/31.93 POL(down(x_1)) = 0 122.81/31.93 POL(eq(x_1, x_2)) = 0 122.81/31.93 POL(false) = 1 122.81/31.93 POL(inf(x_1)) = 1 122.81/31.93 POL(length(x_1)) = 1 122.81/31.93 POL(n__0) = 0 122.81/31.93 POL(n__inf(x_1)) = 0 122.81/31.93 POL(n__inf_flat(x_1)) = 0 122.81/31.93 POL(n__length(x_1)) = 0 122.81/31.93 POL(n__length_flat(x_1)) = 0 122.81/31.93 POL(n__s(x_1)) = 0 122.81/31.93 POL(n__s_flat(x_1)) = 0 122.81/31.93 POL(n__take(x_1, x_2)) = 0 122.81/31.93 POL(n__take_flat(x_1, x_2)) = 0 122.81/31.93 POL(nil) = 0 122.81/31.93 POL(s(x_1)) = 0 122.81/31.93 POL(take(x_1, x_2)) = 1 122.81/31.93 POL(true) = 1 122.81/31.93 POL(up(x_1)) = x_1 122.81/31.93 122.81/31.93 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 122.81/31.93 122.81/31.93 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.93 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.93 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.93 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 122.81/31.93 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (18) 122.81/31.93 Obligation: 122.81/31.93 Q DP problem: 122.81/31.93 The TRS P consists of the following rules: 122.81/31.93 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(block(x0), down(x1))) 122.81/31.93 TOP(up(s(x0))) -> TOP(up(n__s(x0))) 122.81/31.93 TOP(up(n__s(x0))) -> TOP(n__s_flat(down(x0))) 122.81/31.93 TOP(up(n__inf(x0))) -> TOP(n__inf_flat(down(x0))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(n__length(x0))) -> TOP(n__length_flat(down(x0))) 122.81/31.93 TOP(up(activate(n__inf(x0)))) -> TOP(up(inf(x0))) 122.81/31.93 TOP(up(activate(n__take(x0, x1)))) -> TOP(up(take(x0, x1))) 122.81/31.93 TOP(up(activate(n__length(x0)))) -> TOP(up(length(x0))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(block(x0), down(x1))) 122.81/31.93 122.81/31.93 The TRS R consists of the following rules: 122.81/31.93 122.81/31.93 down(eq(n__0, n__0)) -> up(true) 122.81/31.93 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.81/31.93 down(eq(X, Y)) -> up(false) 122.81/31.93 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.81/31.93 down(take(0, X)) -> up(nil) 122.81/31.93 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.81/31.93 down(length(nil)) -> up(0) 122.81/31.93 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.81/31.93 down(0) -> up(n__0) 122.81/31.93 down(s(X)) -> up(n__s(X)) 122.81/31.93 down(inf(X)) -> up(n__inf(X)) 122.81/31.93 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.81/31.93 down(length(X)) -> up(n__length(X)) 122.81/31.93 down(activate(n__0)) -> up(0) 122.81/31.93 down(activate(n__s(X))) -> up(s(X)) 122.81/31.93 down(activate(n__inf(X))) -> up(inf(X)) 122.81/31.93 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.81/31.93 down(activate(n__length(X))) -> up(length(X)) 122.81/31.93 down(activate(X)) -> up(X) 122.81/31.93 top(up(x)) -> top(down(x)) 122.81/31.93 down(n__s(y2)) -> n__s_flat(down(y2)) 122.81/31.93 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.81/31.93 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.81/31.93 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.81/31.93 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.81/31.93 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.81/31.93 down(n__length(y14)) -> n__length_flat(down(y14)) 122.81/31.93 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.81/31.93 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.81/31.93 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.93 activate_flat(up(x_1)) -> up(activate(x_1)) 122.81/31.93 inf_flat(up(x_1)) -> up(inf(x_1)) 122.81/31.93 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.93 s_flat(up(x_1)) -> up(s(x_1)) 122.81/31.93 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.81/31.93 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.81/31.93 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 length_flat(up(x_1)) -> up(length(x_1)) 122.81/31.93 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.93 122.81/31.93 Q is empty. 122.81/31.93 We have to consider all minimal (P,Q,R)-chains. 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (19) DependencyGraphProof (EQUIVALENT) 122.81/31.93 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (20) 122.81/31.93 Obligation: 122.81/31.93 Q DP problem: 122.81/31.93 The TRS P consists of the following rules: 122.81/31.93 122.81/31.93 TOP(up(s(x0))) -> TOP(up(n__s(x0))) 122.81/31.93 TOP(up(n__s(x0))) -> TOP(n__s_flat(down(x0))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(block(x0), down(x1))) 122.81/31.93 TOP(up(n__inf(x0))) -> TOP(n__inf_flat(down(x0))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(block(x0), down(x1))) 122.81/31.93 TOP(up(n__length(x0))) -> TOP(n__length_flat(down(x0))) 122.81/31.93 122.81/31.93 The TRS R consists of the following rules: 122.81/31.93 122.81/31.93 down(eq(n__0, n__0)) -> up(true) 122.81/31.93 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.81/31.93 down(eq(X, Y)) -> up(false) 122.81/31.93 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.81/31.93 down(take(0, X)) -> up(nil) 122.81/31.93 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.81/31.93 down(length(nil)) -> up(0) 122.81/31.93 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.81/31.93 down(0) -> up(n__0) 122.81/31.93 down(s(X)) -> up(n__s(X)) 122.81/31.93 down(inf(X)) -> up(n__inf(X)) 122.81/31.93 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.81/31.93 down(length(X)) -> up(n__length(X)) 122.81/31.93 down(activate(n__0)) -> up(0) 122.81/31.93 down(activate(n__s(X))) -> up(s(X)) 122.81/31.93 down(activate(n__inf(X))) -> up(inf(X)) 122.81/31.93 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.81/31.93 down(activate(n__length(X))) -> up(length(X)) 122.81/31.93 down(activate(X)) -> up(X) 122.81/31.93 top(up(x)) -> top(down(x)) 122.81/31.93 down(n__s(y2)) -> n__s_flat(down(y2)) 122.81/31.93 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.81/31.93 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.81/31.93 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.81/31.93 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.81/31.93 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.81/31.93 down(n__length(y14)) -> n__length_flat(down(y14)) 122.81/31.93 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.81/31.93 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.81/31.93 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.93 activate_flat(up(x_1)) -> up(activate(x_1)) 122.81/31.93 inf_flat(up(x_1)) -> up(inf(x_1)) 122.81/31.93 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.93 s_flat(up(x_1)) -> up(s(x_1)) 122.81/31.93 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.81/31.93 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.81/31.93 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 length_flat(up(x_1)) -> up(length(x_1)) 122.81/31.93 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.93 122.81/31.93 Q is empty. 122.81/31.93 We have to consider all minimal (P,Q,R)-chains. 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (21) QDPOrderProof (EQUIVALENT) 122.81/31.93 We use the reduction pair processor [LPAR04,JAR06]. 122.81/31.93 122.81/31.93 122.81/31.93 The following pairs can be oriented strictly and are deleted. 122.81/31.93 122.81/31.93 TOP(up(s(x0))) -> TOP(up(n__s(x0))) 122.81/31.93 The remaining pairs can at least be oriented weakly. 122.81/31.93 Used ordering: Polynomial interpretation [POLO]: 122.81/31.93 122.81/31.93 POL(0) = 0 122.81/31.93 POL(TOP(x_1)) = x_1 122.81/31.93 POL(activate(x_1)) = 0 122.81/31.93 POL(block(x_1)) = 0 122.81/31.93 POL(cons(x_1, x_2)) = 0 122.81/31.93 POL(cons_flat(x_1, x_2)) = 0 122.81/31.93 POL(down(x_1)) = 0 122.81/31.93 POL(eq(x_1, x_2)) = 0 122.81/31.93 POL(false) = 1 122.81/31.93 POL(inf(x_1)) = x_1 122.81/31.93 POL(length(x_1)) = 0 122.81/31.93 POL(n__0) = 0 122.81/31.93 POL(n__inf(x_1)) = 0 122.81/31.93 POL(n__inf_flat(x_1)) = 0 122.81/31.93 POL(n__length(x_1)) = 0 122.81/31.93 POL(n__length_flat(x_1)) = 0 122.81/31.93 POL(n__s(x_1)) = 0 122.81/31.93 POL(n__s_flat(x_1)) = 0 122.81/31.93 POL(n__take(x_1, x_2)) = 0 122.81/31.93 POL(n__take_flat(x_1, x_2)) = 0 122.81/31.93 POL(nil) = 0 122.81/31.93 POL(s(x_1)) = 1 122.81/31.93 POL(take(x_1, x_2)) = 0 122.81/31.93 POL(true) = 1 122.81/31.93 POL(up(x_1)) = x_1 122.81/31.93 122.81/31.93 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 122.81/31.93 122.81/31.93 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.93 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.93 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.93 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.93 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.93 122.81/31.93 122.81/31.93 ---------------------------------------- 122.81/31.93 122.81/31.93 (22) 122.81/31.93 Obligation: 122.81/31.93 Q DP problem: 122.81/31.93 The TRS P consists of the following rules: 122.81/31.93 122.81/31.93 TOP(up(n__s(x0))) -> TOP(n__s_flat(down(x0))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(cons(x0, x1))) -> TOP(cons_flat(block(x0), down(x1))) 122.81/31.93 TOP(up(n__inf(x0))) -> TOP(n__inf_flat(down(x0))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(down(x0), block(x1))) 122.81/31.93 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(block(x0), down(x1))) 122.81/31.93 TOP(up(n__length(x0))) -> TOP(n__length_flat(down(x0))) 122.81/31.93 122.81/31.93 The TRS R consists of the following rules: 122.81/31.93 122.81/31.93 down(eq(n__0, n__0)) -> up(true) 122.81/31.93 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.81/31.93 down(eq(X, Y)) -> up(false) 122.81/31.93 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.81/31.93 down(take(0, X)) -> up(nil) 122.81/31.93 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.81/31.93 down(length(nil)) -> up(0) 122.81/31.93 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.81/31.93 down(0) -> up(n__0) 122.81/31.94 down(s(X)) -> up(n__s(X)) 122.81/31.94 down(inf(X)) -> up(n__inf(X)) 122.81/31.94 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.81/31.94 down(length(X)) -> up(n__length(X)) 122.81/31.94 down(activate(n__0)) -> up(0) 122.81/31.94 down(activate(n__s(X))) -> up(s(X)) 122.81/31.94 down(activate(n__inf(X))) -> up(inf(X)) 122.81/31.94 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.81/31.94 down(activate(n__length(X))) -> up(length(X)) 122.81/31.94 down(activate(X)) -> up(X) 122.81/31.94 top(up(x)) -> top(down(x)) 122.81/31.94 down(n__s(y2)) -> n__s_flat(down(y2)) 122.81/31.94 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.81/31.94 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.81/31.94 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.81/31.94 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.81/31.94 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.81/31.94 down(n__length(y14)) -> n__length_flat(down(y14)) 122.81/31.94 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.81/31.94 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.81/31.94 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.94 activate_flat(up(x_1)) -> up(activate(x_1)) 122.81/31.94 inf_flat(up(x_1)) -> up(inf(x_1)) 122.81/31.94 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.94 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.94 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.94 s_flat(up(x_1)) -> up(s(x_1)) 122.81/31.94 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.81/31.94 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.81/31.94 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.94 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.94 length_flat(up(x_1)) -> up(length(x_1)) 122.81/31.94 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.94 122.81/31.94 Q is empty. 122.81/31.94 We have to consider all minimal (P,Q,R)-chains. 122.81/31.94 ---------------------------------------- 122.81/31.94 122.81/31.94 (23) QDPOrderProof (EQUIVALENT) 122.81/31.94 We use the reduction pair processor [LPAR04,JAR06]. 122.81/31.94 122.81/31.94 122.81/31.94 The following pairs can be oriented strictly and are deleted. 122.81/31.94 122.81/31.94 TOP(up(n__s(x0))) -> TOP(n__s_flat(down(x0))) 122.81/31.94 TOP(up(cons(x0, x1))) -> TOP(cons_flat(down(x0), block(x1))) 122.81/31.94 TOP(up(cons(x0, x1))) -> TOP(cons_flat(block(x0), down(x1))) 122.81/31.94 TOP(up(n__inf(x0))) -> TOP(n__inf_flat(down(x0))) 122.81/31.94 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(down(x0), block(x1))) 122.81/31.94 TOP(up(n__take(x0, x1))) -> TOP(n__take_flat(block(x0), down(x1))) 122.81/31.94 TOP(up(n__length(x0))) -> TOP(n__length_flat(down(x0))) 122.81/31.94 The remaining pairs can at least be oriented weakly. 122.81/31.94 Used ordering: Matrix interpretation [MATRO]: 122.81/31.94 122.81/31.94 Non-tuple symbols: 122.81/31.94 <<< 122.81/31.94 M( n__length_flat_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( true ) = [[0], [0]] 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( n__inf_1(x_1) ) = [[2], [0]] + [[1, 2], [0, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( n__take_2(x_1, x_2) ) = [[2], [1]] + [[1, 1], [0, 1]] * x_1 + [[2, 0], [0, 1]] * x_2 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( n__take_flat_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [2, 1]] * x_1 + [[0, 0], [2, 1]] * x_2 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( n__length_1(x_1) ) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( n__inf_flat_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( block_1(x_1) ) = [[1], [0]] + [[0, 0], [0, 2]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( n__0 ) = [[1], [0]] 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( inf_1(x_1) ) = [[0], [3]] + [[0, 0], [1, 3]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( cons_flat_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [2, 2]] * x_1 + [[0, 0], [0, 1]] * x_2 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( activate_1(x_1) ) = [[0], [2]] + [[0, 0], [1, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( n__s_1(x_1) ) = [[1], [0]] + [[1, 2], [0, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( false ) = [[0], [0]] 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( nil ) = [[0], [2]] 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( s_1(x_1) ) = [[3], [1]] + [[1, 0], [1, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( n__s_flat_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( eq_2(x_1, x_2) ) = [[0], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [1, 0]] * x_2 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( length_1(x_1) ) = [[0], [1]] + [[0, 0], [1, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( take_2(x_1, x_2) ) = [[0], [3]] + [[0, 0], [1, 1]] * x_1 + [[0, 0], [1, 1]] * x_2 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( down_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 2]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( 0 ) = [[1], [2]] 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( up_1(x_1) ) = [[0], [2]] + [[0, 0], [0, 2]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 <<< 122.81/31.94 M( cons_2(x_1, x_2) ) = [[3], [1]] + [[2, 0], [0, 2]] * x_1 + [[2, 0], [0, 1]] * x_2 122.81/31.94 >>> 122.81/31.94 122.81/31.94 Tuple symbols: 122.81/31.94 <<< 122.81/31.94 M( TOP_1(x_1) ) = [[0]] + [[0, 1]] * x_1 122.81/31.94 >>> 122.81/31.94 122.81/31.94 122.81/31.94 122.81/31.94 Matrix type: 122.81/31.94 122.81/31.94 We used a basic matrix type which is not further parametrizeable. 122.81/31.94 122.81/31.94 122.81/31.94 122.81/31.94 122.81/31.94 122.81/31.94 As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order. 122.81/31.94 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 122.81/31.94 122.81/31.94 down(eq(n__0, n__0)) -> up(true) 122.81/31.94 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.81/31.94 down(eq(X, Y)) -> up(false) 122.81/31.94 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.81/31.94 down(take(0, X)) -> up(nil) 122.81/31.94 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.81/31.94 down(length(nil)) -> up(0) 122.81/31.94 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.81/31.94 down(0) -> up(n__0) 122.81/31.94 down(s(X)) -> up(n__s(X)) 122.81/31.94 down(inf(X)) -> up(n__inf(X)) 122.81/31.94 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.81/31.94 down(length(X)) -> up(n__length(X)) 122.81/31.94 down(activate(n__0)) -> up(0) 122.81/31.94 down(activate(n__s(X))) -> up(s(X)) 122.81/31.94 down(activate(n__inf(X))) -> up(inf(X)) 122.81/31.94 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.81/31.94 down(activate(n__length(X))) -> up(length(X)) 122.81/31.94 down(activate(X)) -> up(X) 122.81/31.94 down(n__s(y2)) -> n__s_flat(down(y2)) 122.81/31.94 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.81/31.94 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.81/31.94 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.81/31.94 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.81/31.94 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.81/31.94 down(n__length(y14)) -> n__length_flat(down(y14)) 122.81/31.94 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.94 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.94 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.94 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.94 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.94 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.94 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.94 122.81/31.94 122.81/31.94 ---------------------------------------- 122.81/31.94 122.81/31.94 (24) 122.81/31.94 Obligation: 122.81/31.94 Q DP problem: 122.81/31.94 P is empty. 122.81/31.94 The TRS R consists of the following rules: 122.81/31.94 122.81/31.94 down(eq(n__0, n__0)) -> up(true) 122.81/31.94 down(eq(n__s(X), n__s(Y))) -> up(eq(activate(X), activate(Y))) 122.81/31.94 down(eq(X, Y)) -> up(false) 122.81/31.94 down(inf(X)) -> up(cons(X, n__inf(s(X)))) 122.81/31.94 down(take(0, X)) -> up(nil) 122.81/31.94 down(take(s(X), cons(Y, L))) -> up(cons(activate(Y), n__take(activate(X), activate(L)))) 122.81/31.94 down(length(nil)) -> up(0) 122.81/31.94 down(length(cons(X, L))) -> up(s(n__length(activate(L)))) 122.81/31.94 down(0) -> up(n__0) 122.81/31.94 down(s(X)) -> up(n__s(X)) 122.81/31.94 down(inf(X)) -> up(n__inf(X)) 122.81/31.94 down(take(X1, X2)) -> up(n__take(X1, X2)) 122.81/31.94 down(length(X)) -> up(n__length(X)) 122.81/31.94 down(activate(n__0)) -> up(0) 122.81/31.94 down(activate(n__s(X))) -> up(s(X)) 122.81/31.94 down(activate(n__inf(X))) -> up(inf(X)) 122.81/31.94 down(activate(n__take(X1, X2))) -> up(take(X1, X2)) 122.81/31.94 down(activate(n__length(X))) -> up(length(X)) 122.81/31.94 down(activate(X)) -> up(X) 122.81/31.94 top(up(x)) -> top(down(x)) 122.81/31.94 down(n__s(y2)) -> n__s_flat(down(y2)) 122.81/31.94 down(cons(y5, y6)) -> cons_flat(down(y5), block(y6)) 122.81/31.94 down(cons(y5, y6)) -> cons_flat(block(y5), down(y6)) 122.81/31.94 down(n__inf(y7)) -> n__inf_flat(down(y7)) 122.81/31.94 down(n__take(y11, y12)) -> n__take_flat(down(y11), block(y12)) 122.81/31.94 down(n__take(y11, y12)) -> n__take_flat(block(y11), down(y12)) 122.81/31.94 down(n__length(y14)) -> n__length_flat(down(y14)) 122.81/31.94 eq_flat(up(x_1), block(x_2)) -> up(eq(x_1, x_2)) 122.81/31.94 eq_flat(block(x_1), up(x_2)) -> up(eq(x_1, x_2)) 122.81/31.94 n__s_flat(up(x_1)) -> up(n__s(x_1)) 122.81/31.94 activate_flat(up(x_1)) -> up(activate(x_1)) 122.81/31.94 inf_flat(up(x_1)) -> up(inf(x_1)) 122.81/31.94 cons_flat(up(x_1), block(x_2)) -> up(cons(x_1, x_2)) 122.81/31.94 cons_flat(block(x_1), up(x_2)) -> up(cons(x_1, x_2)) 122.81/31.94 n__inf_flat(up(x_1)) -> up(n__inf(x_1)) 122.81/31.94 s_flat(up(x_1)) -> up(s(x_1)) 122.81/31.94 take_flat(up(x_1), block(x_2)) -> up(take(x_1, x_2)) 122.81/31.94 take_flat(block(x_1), up(x_2)) -> up(take(x_1, x_2)) 122.81/31.94 n__take_flat(up(x_1), block(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.94 n__take_flat(block(x_1), up(x_2)) -> up(n__take(x_1, x_2)) 122.81/31.94 length_flat(up(x_1)) -> up(length(x_1)) 122.81/31.94 n__length_flat(up(x_1)) -> up(n__length(x_1)) 122.81/31.94 122.81/31.94 Q is empty. 122.81/31.94 We have to consider all minimal (P,Q,R)-chains. 122.81/31.94 ---------------------------------------- 122.81/31.94 122.81/31.94 (25) PisEmptyProof (EQUIVALENT) 122.81/31.94 The TRS P is empty. Hence, there is no (P,Q,R) chain. 122.81/31.94 ---------------------------------------- 122.81/31.94 122.81/31.94 (26) 122.81/31.94 YES 122.81/32.00 EOF