/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Outermost Termination of the given OTRS could be proven: (0) OTRS (1) Raffelsieper-Zantema-Transformation [SOUND, 0 ms] (2) QTRS (3) DependencyPairsProof [EQUIVALENT, 0 ms] (4) QDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) QDP (8) UsableRulesProof [EQUIVALENT, 0 ms] (9) QDP (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) QDP (13) TransformationProof [EQUIVALENT, 0 ms] (14) QDP (15) DependencyGraphProof [EQUIVALENT, 0 ms] (16) QDP (17) QDPOrderProof [EQUIVALENT, 22 ms] (18) QDP (19) SplitQDPProof [EQUIVALENT, 0 ms] (20) AND (21) QDP (22) SemLabProof [SOUND, 0 ms] (23) QDP (24) DependencyGraphProof [EQUIVALENT, 0 ms] (25) QDP (26) QDPOrderProof [EQUIVALENT, 21 ms] (27) QDP (28) PisEmptyProof [SOUND, 0 ms] (29) TRUE (30) QDP (31) SemLabProof [SOUND, 2990 ms] (32) QDP (33) DependencyGraphProof [EQUIVALENT, 0 ms] (34) QDP (35) QDPOrderProof [EQUIVALENT, 0 ms] (36) QDP (37) PisEmptyProof [EQUIVALENT, 0 ms] (38) YES ---------------------------------------- (0) Obligation: Term rewrite system R: The TRS R consists of the following rules: f(g(u, v), y, z) -> c f(0, 1, x) -> f(x, x, x) g(x, y) -> x g(x, y) -> y f(f(x, y, z), u, v) -> c f(0, u, v) -> c Outermost Strategy. ---------------------------------------- (1) Raffelsieper-Zantema-Transformation (SOUND) We applied the Raffelsieper-Zantema transformation to transform the outermost TRS to a standard TRS. ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. ---------------------------------------- (3) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (4) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(x)) -> TOP(down(x)) TOP(up(x)) -> DOWN(x) DOWN(f(c, y17, y18)) -> F_FLAT(down(c), block(y17), block(y18)) DOWN(f(c, y17, y18)) -> DOWN(c) DOWN(f(c, y17, y18)) -> F_FLAT(block(c), down(y17), block(y18)) DOWN(f(c, y17, y18)) -> DOWN(y17) DOWN(f(c, y17, y18)) -> F_FLAT(block(c), block(y17), down(y18)) DOWN(f(c, y17, y18)) -> DOWN(y18) DOWN(f(1, y21, y22)) -> F_FLAT(down(1), block(y21), block(y22)) DOWN(f(1, y21, y22)) -> DOWN(1) DOWN(f(1, y21, y22)) -> F_FLAT(block(1), down(y21), block(y22)) DOWN(f(1, y21, y22)) -> DOWN(y21) DOWN(f(1, y21, y22)) -> F_FLAT(block(1), block(y21), down(y22)) DOWN(f(1, y21, y22)) -> DOWN(y22) DOWN(f(fresh_constant, y23, y24)) -> F_FLAT(down(fresh_constant), block(y23), block(y24)) DOWN(f(fresh_constant, y23, y24)) -> DOWN(fresh_constant) DOWN(f(fresh_constant, y23, y24)) -> F_FLAT(block(fresh_constant), down(y23), block(y24)) DOWN(f(fresh_constant, y23, y24)) -> DOWN(y23) DOWN(f(fresh_constant, y23, y24)) -> F_FLAT(block(fresh_constant), block(y23), down(y24)) DOWN(f(fresh_constant, y23, y24)) -> DOWN(y24) The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 13 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: DOWN(f(c, y17, y18)) -> DOWN(y18) DOWN(f(c, y17, y18)) -> DOWN(y17) DOWN(f(1, y21, y22)) -> DOWN(y21) DOWN(f(1, y21, y22)) -> DOWN(y22) DOWN(f(fresh_constant, y23, y24)) -> DOWN(y23) DOWN(f(fresh_constant, y23, y24)) -> DOWN(y24) The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) UsableRulesProof (EQUIVALENT) 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. ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: DOWN(f(c, y17, y18)) -> DOWN(y18) DOWN(f(c, y17, y18)) -> DOWN(y17) DOWN(f(1, y21, y22)) -> DOWN(y21) DOWN(f(1, y21, y22)) -> DOWN(y22) DOWN(f(fresh_constant, y23, y24)) -> DOWN(y23) DOWN(f(fresh_constant, y23, y24)) -> DOWN(y24) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *DOWN(f(c, y17, y18)) -> DOWN(y18) The graph contains the following edges 1 > 1 *DOWN(f(c, y17, y18)) -> DOWN(y17) The graph contains the following edges 1 > 1 *DOWN(f(1, y21, y22)) -> DOWN(y21) The graph contains the following edges 1 > 1 *DOWN(f(1, y21, y22)) -> DOWN(y22) The graph contains the following edges 1 > 1 *DOWN(f(fresh_constant, y23, y24)) -> DOWN(y23) The graph contains the following edges 1 > 1 *DOWN(f(fresh_constant, y23, y24)) -> DOWN(y24) The graph contains the following edges 1 > 1 ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(x)) -> TOP(down(x)) The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule TOP(up(x)) -> TOP(down(x)) at position [0] we obtained the following new rules [LPAR04]: (TOP(up(f(g(x0, x1), x2, x3))) -> TOP(up(c)),TOP(up(f(g(x0, x1), x2, x3))) -> TOP(up(c))) (TOP(up(f(0, 1, x0))) -> TOP(up(f(x0, x0, x0))),TOP(up(f(0, 1, x0))) -> TOP(up(f(x0, x0, x0)))) (TOP(up(g(x0, x1))) -> TOP(up(x0)),TOP(up(g(x0, x1))) -> TOP(up(x0))) (TOP(up(g(x0, x1))) -> TOP(up(x1)),TOP(up(g(x0, x1))) -> TOP(up(x1))) (TOP(up(f(f(x0, x1, x2), x3, x4))) -> TOP(up(c)),TOP(up(f(f(x0, x1, x2), x3, x4))) -> TOP(up(c))) (TOP(up(f(0, x0, x1))) -> TOP(up(c)),TOP(up(f(0, x0, x1))) -> TOP(up(c))) (TOP(up(f(c, x0, x1))) -> TOP(f_flat(down(c), block(x0), block(x1))),TOP(up(f(c, x0, x1))) -> TOP(f_flat(down(c), block(x0), block(x1)))) (TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), down(x0), block(x1))),TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), down(x0), block(x1)))) (TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), block(x0), down(x1))),TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), block(x0), down(x1)))) (TOP(up(f(1, x0, x1))) -> TOP(f_flat(down(1), block(x0), block(x1))),TOP(up(f(1, x0, x1))) -> TOP(f_flat(down(1), block(x0), block(x1)))) (TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), down(x0), block(x1))),TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), down(x0), block(x1)))) (TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), block(x0), down(x1))),TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), block(x0), down(x1)))) (TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(down(fresh_constant), block(x0), block(x1))),TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(down(fresh_constant), block(x0), block(x1)))) (TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), down(x0), block(x1))),TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), down(x0), block(x1)))) (TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), block(x0), down(x1))),TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), block(x0), down(x1)))) ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1), x2, x3))) -> TOP(up(c)) TOP(up(f(0, 1, x0))) -> TOP(up(f(x0, x0, x0))) TOP(up(g(x0, x1))) -> TOP(up(x0)) TOP(up(g(x0, x1))) -> TOP(up(x1)) TOP(up(f(f(x0, x1, x2), x3, x4))) -> TOP(up(c)) TOP(up(f(0, x0, x1))) -> TOP(up(c)) TOP(up(f(c, x0, x1))) -> TOP(f_flat(down(c), block(x0), block(x1))) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), down(x0), block(x1))) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), block(x0), down(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(down(1), block(x0), block(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), down(x0), block(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), block(x0), down(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(down(fresh_constant), block(x0), block(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes. ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(0, 1, x0))) -> TOP(up(f(x0, x0, x0))) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), down(x0), block(x1))) TOP(up(g(x0, x1))) -> TOP(up(x0)) TOP(up(g(x0, x1))) -> TOP(up(x1)) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), block(x0), down(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), down(x0), block(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), block(x0), down(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(g(x0, x1))) -> TOP(up(x0)) TOP(up(g(x0, x1))) -> TOP(up(x1)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 1 POL(1) = 0 POL(TOP(x_1)) = x_1 POL(block(x_1)) = 0 POL(c) = 0 POL(down(x_1)) = 0 POL(f(x_1, x_2, x_3)) = 0 POL(f_flat(x_1, x_2, x_3)) = 0 POL(fresh_constant) = 0 POL(g(x_1, x_2)) = 1 + x_1 + x_2 POL(up(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(0, 1, x0))) -> TOP(up(f(x0, x0, x0))) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), down(x0), block(x1))) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), block(x0), down(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), down(x0), block(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), block(x0), down(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) SplitQDPProof (EQUIVALENT) We show in the first subproof that some pairs and rules can be removed, afterwards, we continue with the remaining DP-Problem ---------------------------------------- (20) Complex Obligation (AND) ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(0, 1, x0))) -> TOP(up(f(x0, x0, x0))) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), down(x0), block(x1))) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), block(x0), down(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), down(x0), block(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), block(x0), down(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) SemLabProof (SOUND) We found the following model for the rules of the TRSs R and P. Interpretation over the domain with elements from 0 to 1. c: 0 block: 0 TOP: 0 g: 0 top: 0 down: 0 f: 0 0: 0 fresh_constant: 0 up: 0 1: 1 f_flat: 0 g_flat: 0 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-1-0(0., 1., x0))) -> TOP.0(up.0(f.0-0-0(x0, x0, x0))) TOP.0(up.0(f.0-1-1(0., 1., x0))) -> TOP.0(up.0(f.1-1-1(x0, x0, x0))) TOP.0(up.0(f.0-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(f.0-0-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(f.0-1-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), down.1(x0), block.0(x1))) TOP.0(up.0(f.0-1-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), down.1(x0), block.1(x1))) TOP.0(up.0(f.0-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(f.0-0-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), block.0(x0), down.1(x1))) TOP.0(up.0(f.0-1-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(f.0-1-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), block.1(x0), down.1(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-1-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.1(x0), block.0(x1))) TOP.0(up.0(f.1-1-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.1(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-0-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.0(x0), down.1(x1))) TOP.0(up.0(f.1-1-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-1-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.1(x0), down.1(x1))) TOP.0(up.0(f.0-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(f.0-0-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(f.0-1-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), down.1(x0), block.0(x1))) TOP.0(up.0(f.0-1-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), down.1(x0), block.1(x1))) TOP.0(up.0(f.0-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(f.0-0-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), block.0(x0), down.1(x1))) TOP.0(up.0(f.0-1-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) TOP.0(up.0(f.0-1-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), block.1(x0), down.1(x1))) The TRS R consists of the following rules: down.0(f.0-0-0(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(0., 1., x)) -> up.0(f.0-0-0(x, x, x)) down.0(f.0-1-1(0., 1., x)) -> up.0(f.1-1-1(x, x, x)) down.0(g.0-0(x, y)) -> up.0(x) down.0(g.0-1(x, y)) -> up.0(x) down.0(g.1-0(x, y)) -> up.1(x) down.0(g.1-1(x, y)) -> up.1(x) down.0(g.0-0(x, y)) -> up.0(y) down.0(g.0-1(x, y)) -> up.1(y) down.0(g.1-0(x, y)) -> up.0(y) down.0(g.1-1(x, y)) -> up.1(y) down.0(f.0-0-0(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(0., u, v)) -> up.0(c.) down.0(f.0-0-1(0., u, v)) -> up.0(c.) down.0(f.0-1-0(0., u, v)) -> up.0(c.) down.0(f.0-1-1(0., u, v)) -> up.0(c.) top.0(up.0(x)) -> top.0(down.0(x)) top.0(up.1(x)) -> top.0(down.1(x)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.0(y17), block.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.0(y17), block.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.1(y17), block.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.1(y17), block.1(y18)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.0(y17), block.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.0(y17), block.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.1(y17), block.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.1(y17), block.1(y18)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.0(y17), down.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.0(y17), down.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.1(y17), down.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.1(y17), down.1(y18)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.1(y22)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.0(y23), block.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.0(y23), block.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.1(y23), block.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.1(y23), block.1(y24)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.0(y23), block.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.0(y23), block.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.1(y23), block.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.1(y23), block.1(y24)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.0(y23), down.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.0(y23), down.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.1(y23), down.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.1(y23), down.1(y24)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) g_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(g.1-1(x_1, x_2)) g_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(g.1-1(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 13 less nodes. ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(f.0-1-0(0., 1., x0))) -> TOP.0(up.0(f.0-0-0(x0, x0, x0))) TOP.0(up.0(f.0-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(f.0-0-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(f.0-1-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-1-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.1(x0), down.0(x1))) TOP.0(up.0(f.0-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(f.0-0-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(f.0-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(f.0-1-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0-0-0(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(0., 1., x)) -> up.0(f.0-0-0(x, x, x)) down.0(f.0-1-1(0., 1., x)) -> up.0(f.1-1-1(x, x, x)) down.0(g.0-0(x, y)) -> up.0(x) down.0(g.0-1(x, y)) -> up.0(x) down.0(g.1-0(x, y)) -> up.1(x) down.0(g.1-1(x, y)) -> up.1(x) down.0(g.0-0(x, y)) -> up.0(y) down.0(g.0-1(x, y)) -> up.1(y) down.0(g.1-0(x, y)) -> up.0(y) down.0(g.1-1(x, y)) -> up.1(y) down.0(f.0-0-0(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(0., u, v)) -> up.0(c.) down.0(f.0-0-1(0., u, v)) -> up.0(c.) down.0(f.0-1-0(0., u, v)) -> up.0(c.) down.0(f.0-1-1(0., u, v)) -> up.0(c.) top.0(up.0(x)) -> top.0(down.0(x)) top.0(up.1(x)) -> top.0(down.1(x)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.0(y17), block.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.0(y17), block.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.1(y17), block.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.1(y17), block.1(y18)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.0(y17), block.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.0(y17), block.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.1(y17), block.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.1(y17), block.1(y18)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.0(y17), down.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.0(y17), down.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.1(y17), down.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.1(y17), down.1(y18)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.1(y22)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.0(y23), block.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.0(y23), block.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.1(y23), block.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.1(y23), block.1(y24)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.0(y23), block.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.0(y23), block.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.1(y23), block.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.1(y23), block.1(y24)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.0(y23), down.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.0(y23), down.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.1(y23), down.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.1(y23), down.1(y24)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) g_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(g.1-1(x_1, x_2)) g_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(g.1-1(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(f.0-1-0(0., 1., x0))) -> TOP.0(up.0(f.0-0-0(x0, x0, x0))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0.) = 1 POL(1.) = 0 POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = 0 POL(c.) = 0 POL(down.0(x_1)) = 0 POL(down.1(x_1)) = 0 POL(f.0-0-0(x_1, x_2, x_3)) = 0 POL(f.0-0-1(x_1, x_2, x_3)) = 0 POL(f.0-1-0(x_1, x_2, x_3)) = x_1 POL(f.0-1-1(x_1, x_2, x_3)) = 0 POL(f.1-0-0(x_1, x_2, x_3)) = 0 POL(f.1-0-1(x_1, x_2, x_3)) = 0 POL(f.1-1-0(x_1, x_2, x_3)) = 0 POL(f.1-1-1(x_1, x_2, x_3)) = 0 POL(f_flat.0-0-0(x_1, x_2, x_3)) = x_1 POL(fresh_constant.) = 0 POL(g.0-0(x_1, x_2)) = x_1 + x_2 POL(g.0-1(x_1, x_2)) = x_1 + x_2 POL(g.1-0(x_1, x_2)) = x_1 + x_2 POL(g.1-1(x_1, x_2)) = x_1 + x_2 POL(up.0(x_1)) = x_1 POL(up.1(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: f_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(f.0-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(f.0-0-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(f.0-1-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-1-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.1(x0), down.0(x1))) TOP.0(up.0(f.0-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(f.0-0-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(f.0-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(f.0-1-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0-0-0(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.0-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.0-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.1-0(u, v), y, z)) -> up.0(c.) down.0(f.0-0-0(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-0-1(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-1(g.1-1(u, v), y, z)) -> up.0(c.) down.0(f.0-1-0(0., 1., x)) -> up.0(f.0-0-0(x, x, x)) down.0(f.0-1-1(0., 1., x)) -> up.0(f.1-1-1(x, x, x)) down.0(g.0-0(x, y)) -> up.0(x) down.0(g.0-1(x, y)) -> up.0(x) down.0(g.1-0(x, y)) -> up.1(x) down.0(g.1-1(x, y)) -> up.1(x) down.0(g.0-0(x, y)) -> up.0(y) down.0(g.0-1(x, y)) -> up.1(y) down.0(g.1-0(x, y)) -> up.0(y) down.0(g.1-1(x, y)) -> up.1(y) down.0(f.0-0-0(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.0-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-0-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-0-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-1-0(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-1(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-0(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-1-1(f.1-1-1(x, y, z), u, v)) -> up.0(c.) down.0(f.0-0-0(0., u, v)) -> up.0(c.) down.0(f.0-0-1(0., u, v)) -> up.0(c.) down.0(f.0-1-0(0., u, v)) -> up.0(c.) down.0(f.0-1-1(0., u, v)) -> up.0(c.) top.0(up.0(x)) -> top.0(down.0(x)) top.0(up.1(x)) -> top.0(down.1(x)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.0(y17), block.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.0(y17), block.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.1(y17), block.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(down.0(c.), block.1(y17), block.1(y18)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.0(y17), block.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.0(y17), block.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.1(y17), block.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), down.1(y17), block.1(y18)) down.0(f.0-0-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.0(y17), down.0(y18)) down.0(f.0-0-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.0(y17), down.1(y18)) down.0(f.0-1-0(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.1(y17), down.0(y18)) down.0(f.0-1-1(c., y17, y18)) -> f_flat.0-0-0(block.0(c.), block.1(y17), down.1(y18)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.1(y22)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.0(y23), block.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.0(y23), block.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.1(y23), block.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.0(fresh_constant.), block.1(y23), block.1(y24)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.0(y23), block.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.0(y23), block.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.1(y23), block.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), down.1(y23), block.1(y24)) down.0(f.0-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.0(y23), down.0(y24)) down.0(f.0-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.0(y23), down.1(y24)) down.0(f.0-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.1(y23), down.0(y24)) down.0(f.0-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.0(fresh_constant.), block.1(y23), down.1(y24)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) g_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(g.1-1(x_1, x_2)) g_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(g.1-1(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (28) PisEmptyProof (SOUND) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (29) TRUE ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), down(x0), block(x1))) TOP(up(f(c, x0, x1))) -> TOP(f_flat(block(c), block(x0), down(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), down(x0), block(x1))) TOP(up(f(1, x0, x1))) -> TOP(f_flat(block(1), block(x0), down(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(f(fresh_constant, x0, x1))) -> TOP(f_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(g(u, v), y, z)) -> up(c) down(f(0, 1, x)) -> up(f(x, x, x)) down(g(x, y)) -> up(x) down(g(x, y)) -> up(y) down(f(f(x, y, z), u, v)) -> up(c) down(f(0, u, v)) -> up(c) top(up(x)) -> top(down(x)) down(f(c, y17, y18)) -> f_flat(down(c), block(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), down(y17), block(y18)) down(f(c, y17, y18)) -> f_flat(block(c), block(y17), down(y18)) down(f(1, y21, y22)) -> f_flat(down(1), block(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), down(y21), block(y22)) down(f(1, y21, y22)) -> f_flat(block(1), block(y21), down(y22)) down(f(fresh_constant, y23, y24)) -> f_flat(down(fresh_constant), block(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), down(y23), block(y24)) down(f(fresh_constant, y23, y24)) -> f_flat(block(fresh_constant), block(y23), down(y24)) f_flat(up(x_1), block(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), up(x_2), block(x_3)) -> up(f(x_1, x_2, x_3)) f_flat(block(x_1), block(x_2), up(x_3)) -> up(f(x_1, x_2, x_3)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) SemLabProof (SOUND) We found the following model for the rules of the TRSs R and P. Interpretation over the domain with elements from 0 to 1. c: 1 block: 0 TOP: 0 g: 0 top: 0 down: 0 f: 0 0: 0 fresh_constant: 1 up: 0 1: 1 f_flat: 0 g_flat: 0 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.1-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-1-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), down.1(x0), block.0(x1))) TOP.0(up.0(f.1-1-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), down.1(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-0-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), block.0(x0), down.1(x1))) TOP.0(up.0(f.1-1-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-1-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), block.1(x0), down.1(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-1-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.1(x0), block.0(x1))) TOP.0(up.0(f.1-1-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.1(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-0-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.0(x0), down.1(x1))) TOP.0(up.0(f.1-1-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-1-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.1(x0), down.1(x1))) TOP.0(up.0(f.1-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-1-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), down.1(x0), block.0(x1))) TOP.0(up.0(f.1-1-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), down.1(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-0-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.1(x1))) TOP.0(up.0(f.1-1-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-1-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.1(x1))) The TRS R consists of the following rules: down.0(f.0-0-0(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(0., 1., x)) -> up.0(f.0-0-0(x, x, x)) down.0(f.0-1-1(0., 1., x)) -> up.0(f.1-1-1(x, x, x)) down.0(g.0-0(x, y)) -> up.0(x) down.0(g.0-1(x, y)) -> up.0(x) down.0(g.1-0(x, y)) -> up.1(x) down.0(g.1-1(x, y)) -> up.1(x) down.0(g.0-0(x, y)) -> up.0(y) down.0(g.0-1(x, y)) -> up.1(y) down.0(g.1-0(x, y)) -> up.0(y) down.0(g.1-1(x, y)) -> up.1(y) down.0(f.0-0-0(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(0., u, v)) -> up.1(c.) down.0(f.0-0-1(0., u, v)) -> up.1(c.) down.0(f.0-1-0(0., u, v)) -> up.1(c.) down.0(f.0-1-1(0., u, v)) -> up.1(c.) top.0(up.0(x)) -> top.0(down.0(x)) top.0(up.1(x)) -> top.0(down.1(x)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.0(y17), block.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.0(y17), block.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.1(y17), block.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.1(y17), block.1(y18)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.0(y17), block.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.0(y17), block.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.1(y17), block.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.1(y17), block.1(y18)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.0(y17), down.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.0(y17), down.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.1(y17), down.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.1(y17), down.1(y18)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.1(y22)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.0(y23), block.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.0(y23), block.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.1(y23), block.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.1(y23), block.1(y24)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.0(y23), block.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.0(y23), block.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.1(y23), block.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.1(y23), block.1(y24)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.0(y23), down.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.0(y23), down.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.1(y23), down.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.1(y23), down.1(y24)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) g_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(g.1-1(x_1, x_2)) g_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(g.1-1(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 12 less nodes. ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.1-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-1-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-1-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-1-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0-0-0(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(0., 1., x)) -> up.0(f.0-0-0(x, x, x)) down.0(f.0-1-1(0., 1., x)) -> up.0(f.1-1-1(x, x, x)) down.0(g.0-0(x, y)) -> up.0(x) down.0(g.0-1(x, y)) -> up.0(x) down.0(g.1-0(x, y)) -> up.1(x) down.0(g.1-1(x, y)) -> up.1(x) down.0(g.0-0(x, y)) -> up.0(y) down.0(g.0-1(x, y)) -> up.1(y) down.0(g.1-0(x, y)) -> up.0(y) down.0(g.1-1(x, y)) -> up.1(y) down.0(f.0-0-0(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(0., u, v)) -> up.1(c.) down.0(f.0-0-1(0., u, v)) -> up.1(c.) down.0(f.0-1-0(0., u, v)) -> up.1(c.) down.0(f.0-1-1(0., u, v)) -> up.1(c.) top.0(up.0(x)) -> top.0(down.0(x)) top.0(up.1(x)) -> top.0(down.1(x)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.0(y17), block.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.0(y17), block.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.1(y17), block.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.1(y17), block.1(y18)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.0(y17), block.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.0(y17), block.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.1(y17), block.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.1(y17), block.1(y18)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.0(y17), down.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.0(y17), down.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.1(y17), down.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.1(y17), down.1(y18)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.1(y22)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.0(y23), block.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.0(y23), block.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.1(y23), block.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.1(y23), block.1(y24)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.0(y23), block.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.0(y23), block.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.1(y23), block.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.1(y23), block.1(y24)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.0(y23), down.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.0(y23), down.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.1(y23), down.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.1(y23), down.1(y24)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) g_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(g.1-1(x_1, x_2)) g_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(g.1-1(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(f.1-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-1-0(c., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(c.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-1-0(1., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(1.), block.1(x0), down.0(x1))) TOP.0(up.0(f.1-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(f.1-0-1(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(f.1-0-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(f.1-1-0(fresh_constant., x0, x1))) -> TOP.0(f_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.0(x1))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0.) = 1 POL(1.) = 0 POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = 0 POL(c.) = 0 POL(down.0(x_1)) = x_1 POL(down.1(x_1)) = 0 POL(f.0-0-0(x_1, x_2, x_3)) = 1 + x_2 POL(f.0-0-1(x_1, x_2, x_3)) = 1 POL(f.0-1-0(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(f.0-1-1(x_1, x_2, x_3)) = 1 + x_2 + x_3 POL(f.1-0-0(x_1, x_2, x_3)) = x_2 + x_3 POL(f.1-0-1(x_1, x_2, x_3)) = x_2 POL(f.1-1-0(x_1, x_2, x_3)) = x_3 POL(f.1-1-1(x_1, x_2, x_3)) = 0 POL(f_flat.0-0-0(x_1, x_2, x_3)) = x_2 + x_3 POL(fresh_constant.) = 0 POL(g.0-0(x_1, x_2)) = 1 + x_1 + x_2 POL(g.0-1(x_1, x_2)) = 1 + x_1 + x_2 POL(g.1-0(x_1, x_2)) = 1 + x_1 + x_2 POL(g.1-1(x_1, x_2)) = 1 + x_1 + x_2 POL(up.0(x_1)) = 1 + x_1 POL(up.1(x_1)) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down.0(f.0-0-0(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(0., 1., x)) -> up.0(f.0-0-0(x, x, x)) down.0(f.0-1-1(0., 1., x)) -> up.0(f.1-1-1(x, x, x)) down.0(g.0-0(x, y)) -> up.0(x) down.0(g.0-1(x, y)) -> up.0(x) down.0(g.1-0(x, y)) -> up.1(x) down.0(g.1-1(x, y)) -> up.1(x) down.0(g.0-0(x, y)) -> up.0(y) down.0(g.0-1(x, y)) -> up.1(y) down.0(g.1-0(x, y)) -> up.0(y) down.0(g.1-1(x, y)) -> up.1(y) down.0(f.0-0-0(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(0., u, v)) -> up.1(c.) down.0(f.0-0-1(0., u, v)) -> up.1(c.) down.0(f.0-1-0(0., u, v)) -> up.1(c.) down.0(f.0-1-1(0., u, v)) -> up.1(c.) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.0(y17), block.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.0(y17), block.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.1(y17), block.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.1(y17), block.1(y18)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.0(y17), block.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.0(y17), block.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.1(y17), block.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.1(y17), block.1(y18)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.0(y17), down.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.0(y17), down.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.1(y17), down.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.1(y17), down.1(y18)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.1(y22)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.0(y23), block.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.0(y23), block.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.1(y23), block.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.1(y23), block.1(y24)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.0(y23), block.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.0(y23), block.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.1(y23), block.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.1(y23), block.1(y24)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.0(y23), down.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.0(y23), down.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.1(y23), down.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.1(y23), down.1(y24)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) ---------------------------------------- (36) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: down.0(f.0-0-0(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.0-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.0-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.1-0(u, v), y, z)) -> up.1(c.) down.0(f.0-0-0(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-0-1(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-1(g.1-1(u, v), y, z)) -> up.1(c.) down.0(f.0-1-0(0., 1., x)) -> up.0(f.0-0-0(x, x, x)) down.0(f.0-1-1(0., 1., x)) -> up.0(f.1-1-1(x, x, x)) down.0(g.0-0(x, y)) -> up.0(x) down.0(g.0-1(x, y)) -> up.0(x) down.0(g.1-0(x, y)) -> up.1(x) down.0(g.1-1(x, y)) -> up.1(x) down.0(g.0-0(x, y)) -> up.0(y) down.0(g.0-1(x, y)) -> up.1(y) down.0(g.1-0(x, y)) -> up.0(y) down.0(g.1-1(x, y)) -> up.1(y) down.0(f.0-0-0(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.0-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-0-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-0-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-1-0(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-1(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-0(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-1-1(f.1-1-1(x, y, z), u, v)) -> up.1(c.) down.0(f.0-0-0(0., u, v)) -> up.1(c.) down.0(f.0-0-1(0., u, v)) -> up.1(c.) down.0(f.0-1-0(0., u, v)) -> up.1(c.) down.0(f.0-1-1(0., u, v)) -> up.1(c.) top.0(up.0(x)) -> top.0(down.0(x)) top.0(up.1(x)) -> top.0(down.1(x)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.0(y17), block.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.0(y17), block.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.1(y17), block.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(down.1(c.), block.1(y17), block.1(y18)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.0(y17), block.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.0(y17), block.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.1(y17), block.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), down.1(y17), block.1(y18)) down.0(f.1-0-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.0(y17), down.0(y18)) down.0(f.1-0-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.0(y17), down.1(y18)) down.0(f.1-1-0(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.1(y17), down.0(y18)) down.0(f.1-1-1(c., y17, y18)) -> f_flat.0-0-0(block.1(c.), block.1(y17), down.1(y18)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(down.1(1.), block.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.0(y21), block.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), down.1(y21), block.1(y22)) down.0(f.1-0-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.0(y22)) down.0(f.1-0-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.0(y21), down.1(y22)) down.0(f.1-1-0(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.0(y22)) down.0(f.1-1-1(1., y21, y22)) -> f_flat.0-0-0(block.1(1.), block.1(y21), down.1(y22)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.0(y23), block.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.0(y23), block.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.1(y23), block.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(down.1(fresh_constant.), block.1(y23), block.1(y24)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.0(y23), block.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.0(y23), block.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.1(y23), block.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), down.1(y23), block.1(y24)) down.0(f.1-0-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.0(y23), down.0(y24)) down.0(f.1-0-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.0(y23), down.1(y24)) down.0(f.1-1-0(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.1(y23), down.0(y24)) down.0(f.1-1-1(fresh_constant., y23, y24)) -> f_flat.0-0-0(block.1(fresh_constant.), block.1(y23), down.1(y24)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.0-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.0-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.0-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.0-1-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(f.1-0-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(f.1-0-1(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(f.1-1-0(x_1, x_2, x_3)) f_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(f.1-1-1(x_1, x_2, x_3)) g_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(g.1-1(x_1, x_2)) g_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(g.0-0(x_1, x_2)) g_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(g.0-1(x_1, x_2)) g_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) g_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(g.1-1(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (38) YES