/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Outermost Termination of the given OTRS could not be shown: (0) OTRS (1) Thiemann-SpecialC-Transformation [EQUIVALENT, 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) QReductionProof [EQUIVALENT, 0 ms] (11) QDP (12) MRRProof [EQUIVALENT, 15 ms] (13) QDP (14) PisEmptyProof [EQUIVALENT, 0 ms] (15) YES (16) QDP (17) UsableRulesProof [EQUIVALENT, 0 ms] (18) QDP (19) QReductionProof [EQUIVALENT, 0 ms] (20) QDP (21) TransformationProof [EQUIVALENT, 0 ms] (22) QDP (23) QDPOrderProof [EQUIVALENT, 0 ms] (24) QDP (25) UsableRulesProof [EQUIVALENT, 0 ms] (26) QDP (27) QReductionProof [EQUIVALENT, 0 ms] (28) QDP (29) Trivial-Transformation [SOUND, 0 ms] (30) QTRS (31) DependencyPairsProof [EQUIVALENT, 0 ms] (32) QDP (33) DependencyGraphProof [EQUIVALENT, 0 ms] (34) AND (35) QDP (36) UsableRulesProof [EQUIVALENT, 0 ms] (37) QDP (38) QDPSizeChangeProof [EQUIVALENT, 0 ms] (39) YES (40) QDP (41) UsableRulesProof [EQUIVALENT, 0 ms] (42) QDP (43) NonTerminationLoopProof [COMPLETE, 0 ms] (44) NO (45) Raffelsieper-Zantema-Transformation [SOUND, 0 ms] (46) QTRS (47) DependencyPairsProof [EQUIVALENT, 45 ms] (48) QDP (49) DependencyGraphProof [EQUIVALENT, 0 ms] (50) AND (51) QDP (52) UsableRulesProof [EQUIVALENT, 13 ms] (53) QDP (54) QDPSizeChangeProof [EQUIVALENT, 0 ms] (55) YES (56) QDP (57) UsableRulesProof [EQUIVALENT, 0 ms] (58) QDP (59) TransformationProof [EQUIVALENT, 0 ms] (60) QDP (61) DependencyGraphProof [EQUIVALENT, 0 ms] (62) QDP (63) QDPOrderProof [EQUIVALENT, 67 ms] (64) QDP (65) QDPOrderProof [EQUIVALENT, 43 ms] (66) QDP (67) QDPOrderProof [EQUIVALENT, 0 ms] (68) QDP (69) QDPOrderProof [EQUIVALENT, 968 ms] (70) QDP (71) QDPOrderProof [EQUIVALENT, 1152 ms] (72) QDP (73) QDPOrderProof [EQUIVALENT, 1214 ms] (74) QDP (75) QDPOrderProof [EQUIVALENT, 1315 ms] (76) QDP (77) QDPOrderProof [EQUIVALENT, 3346 ms] (78) QDP (79) QDPOrderProof [EQUIVALENT, 1613 ms] (80) QDP (81) SplitQDPProof [EQUIVALENT, 0 ms] (82) AND (83) QDP (84) SemLabProof [SOUND, 0 ms] (85) QDP (86) DependencyGraphProof [EQUIVALENT, 0 ms] (87) QDP (88) UsableRulesReductionPairsProof [EQUIVALENT, 262 ms] (89) QDP (90) MRRProof [EQUIVALENT, 191 ms] (91) QDP (92) DependencyGraphProof [EQUIVALENT, 0 ms] (93) QDP (94) MRRProof [EQUIVALENT, 125 ms] (95) QDP (96) QDPOrderProof [EQUIVALENT, 101 ms] (97) QDP (98) QDPOrderProof [EQUIVALENT, 110 ms] (99) QDP (100) QDPOrderProof [EQUIVALENT, 100 ms] (101) QDP (102) PisEmptyProof [SOUND, 0 ms] (103) TRUE (104) QDP ---------------------------------------- (0) Obligation: Term rewrite system R: The TRS R consists of the following rules: a -> f(a) f(f(f(x))) -> b g(f(f(x)), f(f(y))) -> f(g(x, y)) Outermost Strategy. ---------------------------------------- (1) Thiemann-SpecialC-Transformation (EQUIVALENT) We applied the Thiemann-SpecialC transformation to transform the outermost TRS to an innermost TRS. ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: top(go_up(x)) -> top(reduce(x)) reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_f(f(f(x))) -> result_f(b) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_f(result_f(x)) -> go_up(x) check_g(result_g(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) ---------------------------------------- (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(go_up(x)) -> TOP(reduce(x)) TOP(go_up(x)) -> REDUCE(x) REDUCE(f(x_1)) -> CHECK_F(redex_f(x_1)) REDUCE(f(x_1)) -> REDEX_F(x_1) REDUCE(g(x_1, x_2)) -> CHECK_G(redex_g(x_1, x_2)) REDUCE(g(x_1, x_2)) -> REDEX_G(x_1, x_2) CHECK_F(redex_f(x_1)) -> IN_F_1(reduce(x_1)) CHECK_F(redex_f(x_1)) -> REDUCE(x_1) CHECK_G(redex_g(x_1, x_2)) -> IN_G_1(reduce(x_1), x_2) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_1) CHECK_G(redex_g(x_1, x_2)) -> IN_G_2(x_1, reduce(x_2)) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_2) The TRS R consists of the following rules: top(go_up(x)) -> top(reduce(x)) reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_f(f(f(x))) -> result_f(b) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_f(result_f(x)) -> go_up(x) check_g(result_g(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) 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 6 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: CHECK_F(redex_f(x_1)) -> REDUCE(x_1) REDUCE(f(x_1)) -> CHECK_F(redex_f(x_1)) REDUCE(g(x_1, x_2)) -> CHECK_G(redex_g(x_1, x_2)) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_1) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_2) The TRS R consists of the following rules: top(go_up(x)) -> top(reduce(x)) reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_f(f(f(x))) -> result_f(b) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_f(result_f(x)) -> go_up(x) check_g(result_g(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: CHECK_F(redex_f(x_1)) -> REDUCE(x_1) REDUCE(f(x_1)) -> CHECK_F(redex_f(x_1)) REDUCE(g(x_1, x_2)) -> CHECK_G(redex_g(x_1, x_2)) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_1) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_2) The TRS R consists of the following rules: redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) redex_f(f(f(x))) -> result_f(b) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. top(go_up(x0)) reduce(f(x0)) reduce(g(x0, x1)) reduce(a) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: CHECK_F(redex_f(x_1)) -> REDUCE(x_1) REDUCE(f(x_1)) -> CHECK_F(redex_f(x_1)) REDUCE(g(x_1, x_2)) -> CHECK_G(redex_g(x_1, x_2)) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_1) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_2) The TRS R consists of the following rules: redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) redex_f(f(f(x))) -> result_f(b) The set Q consists of the following terms: redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: CHECK_F(redex_f(x_1)) -> REDUCE(x_1) REDUCE(f(x_1)) -> CHECK_F(redex_f(x_1)) REDUCE(g(x_1, x_2)) -> CHECK_G(redex_g(x_1, x_2)) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_1) CHECK_G(redex_g(x_1, x_2)) -> REDUCE(x_2) Strictly oriented rules of the TRS R: redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) redex_f(f(f(x))) -> result_f(b) Used ordering: Polynomial interpretation [POLO]: POL(CHECK_F(x_1)) = 2 + 2*x_1 POL(CHECK_G(x_1)) = 2 + 2*x_1 POL(REDUCE(x_1)) = 1 + 2*x_1 POL(b) = 0 POL(f(x_1)) = 2 + 2*x_1 POL(g(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(redex_f(x_1)) = x_1 POL(redex_g(x_1, x_2)) = 2*x_1 + 2*x_2 POL(result_f(x_1)) = 1 + x_1 POL(result_g(x_1)) = 1 + x_1 ---------------------------------------- (13) Obligation: Q DP problem: P is empty. R is empty. The set Q consists of the following terms: redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (15) YES ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(go_up(x)) -> TOP(reduce(x)) The TRS R consists of the following rules: top(go_up(x)) -> top(reduce(x)) reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_f(f(f(x))) -> result_f(b) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_f(result_f(x)) -> go_up(x) check_g(result_g(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(go_up(x)) -> TOP(reduce(x)) The TRS R consists of the following rules: reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_g(result_g(x)) -> go_up(x) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) redex_f(f(f(x))) -> result_f(b) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. top(go_up(x0)) ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(go_up(x)) -> TOP(reduce(x)) The TRS R consists of the following rules: reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_g(result_g(x)) -> go_up(x) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) redex_f(f(f(x))) -> result_f(b) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) The set Q consists of the following terms: reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule TOP(go_up(x)) -> TOP(reduce(x)) at position [0] we obtained the following new rules [LPAR04]: (TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))),TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0)))) (TOP(go_up(g(x0, x1))) -> TOP(check_g(redex_g(x0, x1))),TOP(go_up(g(x0, x1))) -> TOP(check_g(redex_g(x0, x1)))) (TOP(go_up(a)) -> TOP(go_up(f(a))),TOP(go_up(a)) -> TOP(go_up(f(a)))) ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))) TOP(go_up(g(x0, x1))) -> TOP(check_g(redex_g(x0, x1))) TOP(go_up(a)) -> TOP(go_up(f(a))) The TRS R consists of the following rules: reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_g(result_g(x)) -> go_up(x) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) redex_f(f(f(x))) -> result_f(b) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) The set Q consists of the following terms: reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(go_up(a)) -> TOP(go_up(f(a))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP(x_1)) = x_1 POL(a) = 1 POL(b) = 0 POL(check_f(x_1)) = x_1 POL(check_g(x_1)) = x_1 POL(f(x_1)) = 0 POL(g(x_1, x_2)) = 0 POL(go_up(x_1)) = x_1 POL(in_f_1(x_1)) = 0 POL(in_g_1(x_1, x_2)) = 0 POL(in_g_2(x_1, x_2)) = 0 POL(redex_f(x_1)) = 0 POL(redex_g(x_1, x_2)) = 0 POL(reduce(x_1)) = 0 POL(result_f(x_1)) = x_1 POL(result_g(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: redex_f(f(f(x))) -> result_f(b) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_g(result_g(x)) -> go_up(x) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))) TOP(go_up(g(x0, x1))) -> TOP(check_g(redex_g(x0, x1))) The TRS R consists of the following rules: reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_g(result_g(x)) -> go_up(x) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) redex_f(f(f(x))) -> result_f(b) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) The set Q consists of the following terms: reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(go_up(x)) -> TOP(reduce(x)) The TRS R consists of the following rules: reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_g(result_g(x)) -> go_up(x) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) redex_f(f(f(x))) -> result_f(b) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. top(go_up(x0)) ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(go_up(x)) -> TOP(reduce(x)) The TRS R consists of the following rules: reduce(f(x_1)) -> check_f(redex_f(x_1)) reduce(g(x_1, x_2)) -> check_g(redex_g(x_1, x_2)) reduce(a) -> go_up(f(a)) redex_g(f(f(x)), f(f(y))) -> result_g(f(g(x, y))) check_g(result_g(x)) -> go_up(x) check_g(redex_g(x_1, x_2)) -> in_g_1(reduce(x_1), x_2) check_g(redex_g(x_1, x_2)) -> in_g_2(x_1, reduce(x_2)) in_g_2(x_1, go_up(x_2)) -> go_up(g(x_1, x_2)) in_g_1(go_up(x_1), x_2) -> go_up(g(x_1, x_2)) redex_f(f(f(x))) -> result_f(b) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) in_f_1(go_up(x_1)) -> go_up(f(x_1)) The set Q consists of the following terms: reduce(f(x0)) reduce(g(x0, x1)) reduce(a) redex_f(f(f(x0))) redex_g(f(f(x0)), f(f(x1))) check_f(result_f(x0)) check_g(result_g(x0)) check_f(redex_f(x0)) check_g(redex_g(x0, x1)) in_f_1(go_up(x0)) in_g_1(go_up(x0), x1) in_g_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) Trivial-Transformation (SOUND) We applied the Trivial transformation to transform the outermost TRS to a standard TRS. ---------------------------------------- (30) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: a -> f(a) f(f(f(x))) -> b g(f(f(x)), f(f(y))) -> f(g(x, y)) Q is empty. ---------------------------------------- (31) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: A -> F(a) A -> A G(f(f(x)), f(f(y))) -> F(g(x, y)) G(f(f(x)), f(f(y))) -> G(x, y) The TRS R consists of the following rules: a -> f(a) f(f(f(x))) -> b g(f(f(x)), f(f(y))) -> f(g(x, y)) 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 2 SCCs with 2 less nodes. ---------------------------------------- (34) Complex Obligation (AND) ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: G(f(f(x)), f(f(y))) -> G(x, y) The TRS R consists of the following rules: a -> f(a) f(f(f(x))) -> b g(f(f(x)), f(f(y))) -> f(g(x, y)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) 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. ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: G(f(f(x)), f(f(y))) -> G(x, y) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) 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: *G(f(f(x)), f(f(y))) -> G(x, y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (39) YES ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: A -> A The TRS R consists of the following rules: a -> f(a) f(f(f(x))) -> b g(f(f(x)), f(f(y))) -> f(g(x, y)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) 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. ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: A -> A R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = A evaluates to t =A Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from A to A. ---------------------------------------- (44) NO ---------------------------------------- (45) Raffelsieper-Zantema-Transformation (SOUND) We applied the Raffelsieper-Zantema transformation to transform the outermost TRS to a standard TRS. ---------------------------------------- (46) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) top(up(x)) -> top(down(x)) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) 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. ---------------------------------------- (47) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (48) 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(a)) -> F_FLAT(down(a)) DOWN(f(a)) -> DOWN(a) DOWN(f(b)) -> F_FLAT(down(b)) DOWN(f(b)) -> DOWN(b) DOWN(f(g(y5, y6))) -> F_FLAT(down(g(y5, y6))) DOWN(f(g(y5, y6))) -> DOWN(g(y5, y6)) DOWN(f(fresh_constant)) -> F_FLAT(down(fresh_constant)) DOWN(f(fresh_constant)) -> DOWN(fresh_constant) DOWN(g(a, y9)) -> G_FLAT(down(a), block(y9)) DOWN(g(a, y9)) -> DOWN(a) DOWN(g(a, y9)) -> G_FLAT(block(a), down(y9)) DOWN(g(a, y9)) -> DOWN(y9) DOWN(g(b, y12)) -> G_FLAT(down(b), block(y12)) DOWN(g(b, y12)) -> DOWN(b) DOWN(g(b, y12)) -> G_FLAT(block(b), down(y12)) DOWN(g(b, y12)) -> DOWN(y12) DOWN(g(g(y13, y14), y15)) -> G_FLAT(down(g(y13, y14)), block(y15)) DOWN(g(g(y13, y14), y15)) -> DOWN(g(y13, y14)) DOWN(g(g(y13, y14), y15)) -> G_FLAT(block(g(y13, y14)), down(y15)) DOWN(g(g(y13, y14), y15)) -> DOWN(y15) DOWN(g(fresh_constant, y16)) -> G_FLAT(down(fresh_constant), block(y16)) DOWN(g(fresh_constant, y16)) -> DOWN(fresh_constant) DOWN(g(fresh_constant, y16)) -> G_FLAT(block(fresh_constant), down(y16)) DOWN(g(fresh_constant, y16)) -> DOWN(y16) DOWN(g(y17, a)) -> G_FLAT(down(y17), block(a)) DOWN(g(y17, a)) -> DOWN(y17) DOWN(g(y17, a)) -> G_FLAT(block(y17), down(a)) DOWN(g(y17, a)) -> DOWN(a) DOWN(g(y31, b)) -> G_FLAT(down(y31), block(b)) DOWN(g(y31, b)) -> DOWN(y31) DOWN(g(y31, b)) -> G_FLAT(block(y31), down(b)) DOWN(g(y31, b)) -> DOWN(b) DOWN(g(y35, g(y36, y37))) -> G_FLAT(down(y35), block(g(y36, y37))) DOWN(g(y35, g(y36, y37))) -> DOWN(y35) DOWN(g(y35, g(y36, y37))) -> G_FLAT(block(y35), down(g(y36, y37))) DOWN(g(y35, g(y36, y37))) -> DOWN(g(y36, y37)) DOWN(g(y51, fresh_constant)) -> G_FLAT(down(y51), block(fresh_constant)) DOWN(g(y51, fresh_constant)) -> DOWN(y51) DOWN(g(y51, fresh_constant)) -> G_FLAT(block(y51), down(fresh_constant)) DOWN(g(y51, fresh_constant)) -> DOWN(fresh_constant) DOWN(f(f(a))) -> F_FLAT(down(f(a))) DOWN(f(f(a))) -> DOWN(f(a)) DOWN(f(f(b))) -> F_FLAT(down(f(b))) DOWN(f(f(b))) -> DOWN(f(b)) DOWN(f(f(g(y57, y58)))) -> F_FLAT(down(f(g(y57, y58)))) DOWN(f(f(g(y57, y58)))) -> DOWN(f(g(y57, y58))) DOWN(f(f(fresh_constant))) -> F_FLAT(down(f(fresh_constant))) DOWN(f(f(fresh_constant))) -> DOWN(f(fresh_constant)) DOWN(g(f(a), y11)) -> G_FLAT(down(f(a)), block(y11)) DOWN(g(f(a), y11)) -> DOWN(f(a)) DOWN(g(f(a), y11)) -> G_FLAT(block(f(a)), down(y11)) DOWN(g(f(a), y11)) -> DOWN(y11) DOWN(g(f(b), y11)) -> G_FLAT(down(f(b)), block(y11)) DOWN(g(f(b), y11)) -> DOWN(f(b)) DOWN(g(f(b), y11)) -> G_FLAT(block(f(b)), down(y11)) DOWN(g(f(b), y11)) -> DOWN(y11) DOWN(g(f(g(y61, y62)), y11)) -> G_FLAT(down(f(g(y61, y62))), block(y11)) DOWN(g(f(g(y61, y62)), y11)) -> DOWN(f(g(y61, y62))) DOWN(g(f(g(y61, y62)), y11)) -> G_FLAT(block(f(g(y61, y62))), down(y11)) DOWN(g(f(g(y61, y62)), y11)) -> DOWN(y11) DOWN(g(f(fresh_constant), y11)) -> G_FLAT(down(f(fresh_constant)), block(y11)) DOWN(g(f(fresh_constant), y11)) -> DOWN(f(fresh_constant)) DOWN(g(f(fresh_constant), y11)) -> G_FLAT(block(f(fresh_constant)), down(y11)) DOWN(g(f(fresh_constant), y11)) -> DOWN(y11) DOWN(g(y21, f(a))) -> G_FLAT(down(y21), block(f(a))) DOWN(g(y21, f(a))) -> DOWN(y21) DOWN(g(y21, f(a))) -> G_FLAT(block(y21), down(f(a))) DOWN(g(y21, f(a))) -> DOWN(f(a)) DOWN(g(y21, f(b))) -> G_FLAT(down(y21), block(f(b))) DOWN(g(y21, f(b))) -> DOWN(y21) DOWN(g(y21, f(b))) -> G_FLAT(block(y21), down(f(b))) DOWN(g(y21, f(b))) -> DOWN(f(b)) DOWN(g(y21, f(g(y65, y66)))) -> G_FLAT(down(y21), block(f(g(y65, y66)))) DOWN(g(y21, f(g(y65, y66)))) -> DOWN(y21) DOWN(g(y21, f(g(y65, y66)))) -> G_FLAT(block(y21), down(f(g(y65, y66)))) DOWN(g(y21, f(g(y65, y66)))) -> DOWN(f(g(y65, y66))) DOWN(g(y21, f(fresh_constant))) -> G_FLAT(down(y21), block(f(fresh_constant))) DOWN(g(y21, f(fresh_constant))) -> DOWN(y21) DOWN(g(y21, f(fresh_constant))) -> G_FLAT(block(y21), down(f(fresh_constant))) DOWN(g(y21, f(fresh_constant))) -> DOWN(f(fresh_constant)) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) top(up(x)) -> top(down(x)) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) 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. ---------------------------------------- (49) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 59 less nodes. ---------------------------------------- (50) Complex Obligation (AND) ---------------------------------------- (51) Obligation: Q DP problem: The TRS P consists of the following rules: DOWN(f(g(y5, y6))) -> DOWN(g(y5, y6)) DOWN(g(a, y9)) -> DOWN(y9) DOWN(g(b, y12)) -> DOWN(y12) DOWN(g(g(y13, y14), y15)) -> DOWN(g(y13, y14)) DOWN(g(g(y13, y14), y15)) -> DOWN(y15) DOWN(g(fresh_constant, y16)) -> DOWN(y16) DOWN(g(y17, a)) -> DOWN(y17) DOWN(g(y31, b)) -> DOWN(y31) DOWN(g(y35, g(y36, y37))) -> DOWN(y35) DOWN(g(y35, g(y36, y37))) -> DOWN(g(y36, y37)) DOWN(g(y51, fresh_constant)) -> DOWN(y51) DOWN(f(f(g(y57, y58)))) -> DOWN(f(g(y57, y58))) DOWN(g(f(a), y11)) -> DOWN(y11) DOWN(g(f(b), y11)) -> DOWN(y11) DOWN(g(f(g(y61, y62)), y11)) -> DOWN(f(g(y61, y62))) DOWN(g(f(g(y61, y62)), y11)) -> DOWN(y11) DOWN(g(f(fresh_constant), y11)) -> DOWN(y11) DOWN(g(y21, f(a))) -> DOWN(y21) DOWN(g(y21, f(b))) -> DOWN(y21) DOWN(g(y21, f(g(y65, y66)))) -> DOWN(y21) DOWN(g(y21, f(g(y65, y66)))) -> DOWN(f(g(y65, y66))) DOWN(g(y21, f(fresh_constant))) -> DOWN(y21) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) top(up(x)) -> top(down(x)) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) 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. ---------------------------------------- (52) 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. ---------------------------------------- (53) Obligation: Q DP problem: The TRS P consists of the following rules: DOWN(f(g(y5, y6))) -> DOWN(g(y5, y6)) DOWN(g(a, y9)) -> DOWN(y9) DOWN(g(b, y12)) -> DOWN(y12) DOWN(g(g(y13, y14), y15)) -> DOWN(g(y13, y14)) DOWN(g(g(y13, y14), y15)) -> DOWN(y15) DOWN(g(fresh_constant, y16)) -> DOWN(y16) DOWN(g(y17, a)) -> DOWN(y17) DOWN(g(y31, b)) -> DOWN(y31) DOWN(g(y35, g(y36, y37))) -> DOWN(y35) DOWN(g(y35, g(y36, y37))) -> DOWN(g(y36, y37)) DOWN(g(y51, fresh_constant)) -> DOWN(y51) DOWN(f(f(g(y57, y58)))) -> DOWN(f(g(y57, y58))) DOWN(g(f(a), y11)) -> DOWN(y11) DOWN(g(f(b), y11)) -> DOWN(y11) DOWN(g(f(g(y61, y62)), y11)) -> DOWN(f(g(y61, y62))) DOWN(g(f(g(y61, y62)), y11)) -> DOWN(y11) DOWN(g(f(fresh_constant), y11)) -> DOWN(y11) DOWN(g(y21, f(a))) -> DOWN(y21) DOWN(g(y21, f(b))) -> DOWN(y21) DOWN(g(y21, f(g(y65, y66)))) -> DOWN(y21) DOWN(g(y21, f(g(y65, y66)))) -> DOWN(f(g(y65, y66))) DOWN(g(y21, f(fresh_constant))) -> DOWN(y21) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (54) 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(f(g(y57, y58)))) -> DOWN(f(g(y57, y58))) The graph contains the following edges 1 > 1 *DOWN(f(g(y5, y6))) -> DOWN(g(y5, y6)) The graph contains the following edges 1 > 1 *DOWN(g(a, y9)) -> DOWN(y9) The graph contains the following edges 1 > 1 *DOWN(g(b, y12)) -> DOWN(y12) The graph contains the following edges 1 > 1 *DOWN(g(g(y13, y14), y15)) -> DOWN(y15) The graph contains the following edges 1 > 1 *DOWN(g(fresh_constant, y16)) -> DOWN(y16) The graph contains the following edges 1 > 1 *DOWN(g(y17, a)) -> DOWN(y17) The graph contains the following edges 1 > 1 *DOWN(g(y31, b)) -> DOWN(y31) The graph contains the following edges 1 > 1 *DOWN(g(y35, g(y36, y37))) -> DOWN(y35) The graph contains the following edges 1 > 1 *DOWN(g(y51, fresh_constant)) -> DOWN(y51) The graph contains the following edges 1 > 1 *DOWN(g(f(a), y11)) -> DOWN(y11) The graph contains the following edges 1 > 1 *DOWN(g(f(b), y11)) -> DOWN(y11) The graph contains the following edges 1 > 1 *DOWN(g(f(g(y61, y62)), y11)) -> DOWN(y11) The graph contains the following edges 1 > 1 *DOWN(g(f(fresh_constant), y11)) -> DOWN(y11) The graph contains the following edges 1 > 1 *DOWN(g(y21, f(a))) -> DOWN(y21) The graph contains the following edges 1 > 1 *DOWN(g(y21, f(b))) -> DOWN(y21) The graph contains the following edges 1 > 1 *DOWN(g(y21, f(g(y65, y66)))) -> DOWN(y21) The graph contains the following edges 1 > 1 *DOWN(g(y21, f(fresh_constant))) -> DOWN(y21) The graph contains the following edges 1 > 1 *DOWN(g(f(g(y61, y62)), y11)) -> DOWN(f(g(y61, y62))) The graph contains the following edges 1 > 1 *DOWN(g(y21, f(g(y65, y66)))) -> DOWN(f(g(y65, y66))) The graph contains the following edges 1 > 1 *DOWN(g(g(y13, y14), y15)) -> DOWN(g(y13, y14)) The graph contains the following edges 1 > 1 *DOWN(g(y35, g(y36, y37))) -> DOWN(g(y36, y37)) The graph contains the following edges 1 > 1 ---------------------------------------- (55) YES ---------------------------------------- (56) 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(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) top(up(x)) -> top(down(x)) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) 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. ---------------------------------------- (57) 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. ---------------------------------------- (58) 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(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) 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(a)) -> TOP(up(f(a))),TOP(up(a)) -> TOP(up(f(a)))) (TOP(up(f(f(f(x0))))) -> TOP(up(b)),TOP(up(f(f(f(x0))))) -> TOP(up(b))) (TOP(up(g(f(f(x0)), f(f(x1))))) -> TOP(up(f(g(x0, x1)))),TOP(up(g(f(f(x0)), f(f(x1))))) -> TOP(up(f(g(x0, x1))))) (TOP(up(f(a))) -> TOP(f_flat(down(a))),TOP(up(f(a))) -> TOP(f_flat(down(a)))) (TOP(up(f(b))) -> TOP(f_flat(down(b))),TOP(up(f(b))) -> TOP(f_flat(down(b)))) (TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))),TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1))))) (TOP(up(f(fresh_constant))) -> TOP(f_flat(down(fresh_constant))),TOP(up(f(fresh_constant))) -> TOP(f_flat(down(fresh_constant)))) (TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))),TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0)))) (TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))),TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0)))) (TOP(up(g(b, x0))) -> TOP(g_flat(down(b), block(x0))),TOP(up(g(b, x0))) -> TOP(g_flat(down(b), block(x0)))) (TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))),TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0)))) (TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))),TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2)))) (TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))),TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2)))) (TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(down(fresh_constant), block(x0))),TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(down(fresh_constant), block(x0)))) (TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))),TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0)))) (TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))),TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a)))) (TOP(up(g(x0, a))) -> TOP(g_flat(block(x0), down(a))),TOP(up(g(x0, a))) -> TOP(g_flat(block(x0), down(a)))) (TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))),TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b)))) (TOP(up(g(x0, b))) -> TOP(g_flat(block(x0), down(b))),TOP(up(g(x0, b))) -> TOP(g_flat(block(x0), down(b)))) (TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))),TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2))))) (TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))),TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2))))) (TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))),TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant)))) (TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(block(x0), down(fresh_constant))),TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(block(x0), down(fresh_constant)))) (TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))),TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a))))) (TOP(up(f(f(b)))) -> TOP(f_flat(down(f(b)))),TOP(up(f(f(b)))) -> TOP(f_flat(down(f(b))))) (TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))),TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1)))))) (TOP(up(f(f(fresh_constant)))) -> TOP(f_flat(down(f(fresh_constant)))),TOP(up(f(f(fresh_constant)))) -> TOP(f_flat(down(f(fresh_constant))))) (TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))),TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0)))) (TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))),TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0)))) (TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))),TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0)))) (TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))),TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0)))) (TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))),TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2)))) (TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))),TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2)))) (TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))),TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0)))) (TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))),TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0)))) (TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))),TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a))))) (TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))),TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a))))) (TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))),TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b))))) (TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))),TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b))))) (TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))),TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2)))))) (TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))),TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2)))))) (TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))),TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant))))) (TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))),TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant))))) ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(a)) -> TOP(up(f(a))) TOP(up(f(f(f(x0))))) -> TOP(up(b)) TOP(up(g(f(f(x0)), f(f(x1))))) -> TOP(up(f(g(x0, x1)))) TOP(up(f(a))) -> TOP(f_flat(down(a))) TOP(up(f(b))) -> TOP(f_flat(down(b))) TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(f(fresh_constant))) -> TOP(f_flat(down(fresh_constant))) TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(down(b), block(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(down(fresh_constant), block(x0))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, a))) -> TOP(g_flat(block(x0), down(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, b))) -> TOP(g_flat(block(x0), down(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(block(x0), down(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(b)))) -> TOP(f_flat(down(f(b)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(f(f(fresh_constant)))) -> TOP(f_flat(down(f(fresh_constant)))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 8 less nodes. ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(g(f(f(x0)), f(f(x1))))) -> TOP(up(f(g(x0, x1)))) TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(f(a))) -> TOP(f_flat(down(a))) TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, a))) -> TOP(g_flat(block(x0), down(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(b)))) -> TOP(f_flat(down(f(b)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(f(f(fresh_constant)))) -> TOP(f_flat(down(f(fresh_constant)))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(g(f(f(x0)), f(f(x1))))) -> TOP(up(f(g(x0, x1)))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP(x_1)) = x_1 POL(a) = 0 POL(b) = 0 POL(block(x_1)) = 0 POL(down(x_1)) = 0 POL(f(x_1)) = 0 POL(f_flat(x_1)) = 0 POL(fresh_constant) = 0 POL(g(x_1, x_2)) = 1 POL(g_flat(x_1, x_2)) = 1 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(up(x_1)) -> up(f(x_1)) 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)) ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(f(a))) -> TOP(f_flat(down(a))) TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, a))) -> TOP(g_flat(block(x0), down(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(b)))) -> TOP(f_flat(down(f(b)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(f(f(fresh_constant)))) -> TOP(f_flat(down(f(fresh_constant)))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (65) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(f(f(b)))) -> TOP(f_flat(down(f(b)))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP(x_1)) = x_1 POL(a) = 0 POL(b) = 1 POL(block(x_1)) = 0 POL(down(x_1)) = 0 POL(f(x_1)) = x_1 POL(f_flat(x_1)) = x_1 POL(fresh_constant) = 0 POL(g(x_1, x_2)) = 0 POL(g_flat(x_1, x_2)) = 0 POL(up(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) down(a) -> up(f(a)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) ---------------------------------------- (66) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(f(a))) -> TOP(f_flat(down(a))) TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, a))) -> TOP(g_flat(block(x0), down(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(f(f(fresh_constant)))) -> TOP(f_flat(down(f(fresh_constant)))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (67) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(f(f(fresh_constant)))) -> TOP(f_flat(down(f(fresh_constant)))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP(x_1)) = x_1 POL(a) = 0 POL(b) = 0 POL(block(x_1)) = 0 POL(down(x_1)) = 0 POL(f(x_1)) = x_1 POL(f_flat(x_1)) = x_1 POL(fresh_constant) = 1 POL(g(x_1, x_2)) = 0 POL(g_flat(x_1, x_2)) = 0 POL(up(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) down(a) -> up(f(a)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) down(f(a)) -> f_flat(down(a)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) ---------------------------------------- (68) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(f(a))) -> TOP(f_flat(down(a))) TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, a))) -> TOP(g_flat(block(x0), down(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (69) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(g(x0, a))) -> TOP(g_flat(block(x0), down(a))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO]: Non-tuple symbols: <<< M( a ) = [[1], [1]] >>> <<< M( b ) = [[0], [0]] >>> <<< M( block_1(x_1) ) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 >>> <<< M( down_1(x_1) ) = [[0], [0]] + [[0, 1], [0, 1]] * x_1 >>> <<< M( f_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 >>> <<< M( fresh_constant ) = [[0], [0]] >>> <<< M( up_1(x_1) ) = [[0], [0]] + [[1, 1], [0, 1]] * x_1 >>> <<< M( f_flat_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 >>> <<< M( g_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [1, 1]] * x_2 >>> <<< M( g_flat_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[1, 0], [1, 0]] * x_2 >>> Tuple symbols: <<< M( TOP_1(x_1) ) = [[0]] + [[0, 1]] * x_1 >>> Matrix type: We used a basic matrix type which is not further parametrizeable. As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order. The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) down(a) -> up(f(a)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) down(f(f(f(x)))) -> up(b) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) ---------------------------------------- (70) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(f(a))) -> TOP(f_flat(down(a))) TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (71) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(f(a))) -> TOP(f_flat(down(a))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO]: Non-tuple symbols: <<< M( a ) = [[0], [1]] >>> <<< M( b ) = [[0], [0]] >>> <<< M( block_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 >>> <<< M( down_1(x_1) ) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 >>> <<< M( f_1(x_1) ) = [[0], [0]] + [[0, 1], [0, 0]] * x_1 >>> <<< M( fresh_constant ) = [[0], [0]] >>> <<< M( up_1(x_1) ) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< M( f_flat_1(x_1) ) = [[0], [0]] + [[0, 1], [0, 0]] * x_1 >>> <<< M( g_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< M( g_flat_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> Tuple symbols: <<< M( TOP_1(x_1) ) = [[0]] + [[1, 0]] * x_1 >>> Matrix type: We used a basic matrix type which is not further parametrizeable. As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order. The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) down(a) -> up(f(a)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) down(f(a)) -> f_flat(down(a)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(block(x0), down(f(fresh_constant)))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO]: Non-tuple symbols: <<< M( a ) = [[0], [0]] >>> <<< M( b ) = [[0], [0]] >>> <<< M( block_1(x_1) ) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< M( down_1(x_1) ) = [[0], [0]] + [[0, 0], [1, 0]] * x_1 >>> <<< M( f_1(x_1) ) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< M( fresh_constant ) = [[1], [1]] >>> <<< M( up_1(x_1) ) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< M( f_flat_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 1]] * x_1 >>> <<< M( g_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[1, 1], [0, 0]] * x_2 >>> <<< M( g_flat_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 1]] * x_2 >>> Tuple symbols: <<< M( TOP_1(x_1) ) = [[0]] + [[0, 1]] * x_1 >>> Matrix type: We used a basic matrix type which is not further parametrizeable. As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order. The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) down(a) -> up(f(a)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) down(f(f(f(x)))) -> up(b) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) ---------------------------------------- (74) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (75) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(g(a, x0))) -> TOP(g_flat(down(a), block(x0))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO]: Non-tuple symbols: <<< M( a ) = [[1], [0]] >>> <<< M( b ) = [[0], [0]] >>> <<< M( block_1(x_1) ) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< M( down_1(x_1) ) = [[0], [0]] + [[0, 1], [0, 0]] * x_1 >>> <<< M( f_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 >>> <<< M( fresh_constant ) = [[0], [0]] >>> <<< M( up_1(x_1) ) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 >>> <<< M( f_flat_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 >>> <<< M( g_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< M( g_flat_2(x_1, x_2) ) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> Tuple symbols: <<< M( TOP_1(x_1) ) = [[0]] + [[1, 0]] * x_1 >>> Matrix type: We used a basic matrix type which is not further parametrizeable. As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order. The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) down(a) -> up(f(a)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) down(f(f(f(x)))) -> up(b) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) ---------------------------------------- (76) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (77) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(down(f(fresh_constant)), block(x0))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO]: Non-tuple symbols: <<< M( a ) = [[0], [0]] >>> <<< M( b ) = [[0], [0]] >>> <<< M( block_1(x_1) ) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< M( down_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 1]] * x_1 >>> <<< M( f_1(x_1) ) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< M( fresh_constant ) = [[1], [0]] >>> <<< M( up_1(x_1) ) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< M( f_flat_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 1]] * x_1 >>> <<< M( g_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< M( g_flat_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 1]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> Tuple symbols: <<< M( TOP_1(x_1) ) = [[0]] + [[0, 1]] * x_1 >>> Matrix type: We used a basic matrix type which is not further parametrizeable. As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order. The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(f(f(a)))) -> TOP(f_flat(down(f(a)))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO]: Non-tuple symbols: <<< M( a ) = [[1], [0]] >>> <<< M( b ) = [[0], [0]] >>> <<< M( block_1(x_1) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 >>> <<< M( down_1(x_1) ) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< M( f_1(x_1) ) = [[0], [0]] + [[0, 1], [1, 0]] * x_1 >>> <<< M( fresh_constant ) = [[0], [0]] >>> <<< M( up_1(x_1) ) = [[0], [0]] + [[0, 1], [1, 0]] * x_1 >>> <<< M( f_flat_1(x_1) ) = [[0], [0]] + [[0, 1], [1, 0]] * x_1 >>> <<< M( g_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< M( g_flat_2(x_1, x_2) ) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> Tuple symbols: <<< M( TOP_1(x_1) ) = [[0]] + [[0, 1]] * x_1 >>> Matrix type: We used a basic matrix type which is not further parametrizeable. As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order. The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) f_flat(up(x_1)) -> up(f(x_1)) down(a) -> up(f(a)) down(f(a)) -> f_flat(down(a)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) ---------------------------------------- (80) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (81) SplitQDPProof (EQUIVALENT) We show in the first subproof that some pairs and rules can be removed, afterwards, we continue with the remaining DP-Problem ---------------------------------------- (82) Complex Obligation (AND) ---------------------------------------- (83) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(f(fresh_constant)) -> f_flat(down(fresh_constant)) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(down(fresh_constant), block(y16)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(g(y51, fresh_constant)) -> g_flat(block(y51), down(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) g_flat(block(x_1), up(x_2)) -> up(g(x_1, x_2)) g_flat(up(x_1), block(x_2)) -> up(g(x_1, x_2)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (84) 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. a: 0 b: 0 block: 0 down: 0 f: 0 fresh_constant: 1 up: 0 f_flat: 0 TOP: 0 g_flat: 0 g: 0 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. ---------------------------------------- (85) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(f.0(g.1-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-1(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-1(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.1(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-1(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.1(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.1(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-1(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.1(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.1-1(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.1(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.1-0(x0, a.))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.1-0(x0, b.))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(g.1-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.1(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-1(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.1(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.1(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-1(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.1(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) TOP.0(up.0(g.1-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.1(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(f.0(f.0(f.1(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(g.0-0(f.0(f.0(x)), f.0(f.1(y)))) -> up.0(f.0(g.0-1(x, y))) down.0(g.0-0(f.0(f.1(x)), f.0(f.0(y)))) -> up.0(f.0(g.1-0(x, y))) down.0(g.0-0(f.0(f.1(x)), f.0(f.1(y)))) -> up.0(f.0(g.1-1(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(f.1(fresh_constant.)) -> f_flat.0(down.1(fresh_constant.)) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(block.0(a.), down.1(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(block.0(b.), down.1(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.1(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.0(y16)) down.0(g.1-1(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.1(y16)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.1-1(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.1(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(down.1(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(down.1(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(g.1-1(y51, fresh_constant.)) -> g_flat.0-0(down.1(y51), block.1(fresh_constant.)) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(block.0(y51), down.1(fresh_constant.)) down.0(g.1-1(y51, fresh_constant.)) -> g_flat.0-0(block.1(y51), down.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.1(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(down.1(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(down.1(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.1(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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)) 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)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) f_flat.0(up.1(x_1)) -> up.0(f.1(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (86) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 28 less nodes. ---------------------------------------- (87) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(f.0(g.1-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-1(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-1(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(f.0(f.0(f.1(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(g.0-0(f.0(f.0(x)), f.0(f.1(y)))) -> up.0(f.0(g.0-1(x, y))) down.0(g.0-0(f.0(f.1(x)), f.0(f.0(y)))) -> up.0(f.0(g.1-0(x, y))) down.0(g.0-0(f.0(f.1(x)), f.0(f.1(y)))) -> up.0(f.0(g.1-1(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(f.1(fresh_constant.)) -> f_flat.0(down.1(fresh_constant.)) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(block.0(a.), down.1(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(block.0(b.), down.1(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.1(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.0(y16)) down.0(g.1-1(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.1(y16)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.1-1(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.1(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(down.1(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(down.1(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(g.1-1(y51, fresh_constant.)) -> g_flat.0-0(down.1(y51), block.1(fresh_constant.)) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(block.0(y51), down.1(fresh_constant.)) down.0(g.1-1(y51, fresh_constant.)) -> g_flat.0-0(block.1(y51), down.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.1(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(down.1(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(down.1(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.1(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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)) 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)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) f_flat.0(up.1(x_1)) -> up.0(f.1(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (88) UsableRulesReductionPairsProof (EQUIVALENT) By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. No dependency pairs are removed. The following rules are removed from R: 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.1(x_2)) -> up.0(g.1-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)) f_flat.0(up.1(x_1)) -> up.0(f.1(x_1)) Used ordering: POLO with Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 0 POL(b.) = 0 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(down.0(x_1)) = x_1 POL(down.1(x_1)) = x_1 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = x_1 POL(f_flat.0(x_1)) = 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(g_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(up.0(x_1)) = x_1 POL(up.1(x_1)) = 1 + x_1 ---------------------------------------- (89) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(f.0(g.1-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-1(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-1(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(f.0(f.0(f.1(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(g.0-0(f.0(f.0(x)), f.0(f.1(y)))) -> up.0(f.0(g.0-1(x, y))) down.0(g.0-0(f.0(f.1(x)), f.0(f.0(y)))) -> up.0(f.0(g.1-0(x, y))) down.0(g.0-0(f.0(f.1(x)), f.0(f.1(y)))) -> up.0(f.0(g.1-1(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(f.1(fresh_constant.)) -> f_flat.0(down.1(fresh_constant.)) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(block.0(a.), down.1(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(block.0(b.), down.1(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.1(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.0(y16)) down.0(g.1-1(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.1(y16)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.1-1(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.1(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(down.1(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(down.1(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(g.1-1(y51, fresh_constant.)) -> g_flat.0-0(down.1(y51), block.1(fresh_constant.)) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(block.0(y51), down.1(fresh_constant.)) down.0(g.1-1(y51, fresh_constant.)) -> g_flat.0-0(block.1(y51), down.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.1(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(down.1(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(down.1(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.1(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(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(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (90) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented rules of the TRS R: down.0(f.0(f.0(f.1(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.1(y)))) -> up.0(f.0(g.0-1(x, y))) down.0(g.0-0(f.0(f.1(x)), f.0(f.0(y)))) -> up.0(f.0(g.1-0(x, y))) down.0(g.0-0(f.0(f.1(x)), f.0(f.1(y)))) -> up.0(f.0(g.1-1(x, y))) down.0(f.1(fresh_constant.)) -> f_flat.0(down.1(fresh_constant.)) down.0(g.1-1(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.1(y16)) down.0(g.1-1(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.1(y16)) down.0(g.1-1(y51, fresh_constant.)) -> g_flat.0-0(down.1(y51), block.1(fresh_constant.)) down.0(g.1-1(y51, fresh_constant.)) -> g_flat.0-0(block.1(y51), down.1(fresh_constant.)) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 0 POL(b.) = 0 POL(block.0(x_1)) = 1 + x_1 POL(block.1(x_1)) = x_1 POL(down.0(x_1)) = 1 + x_1 POL(down.1(x_1)) = x_1 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = 1 + x_1 POL(f_flat.0(x_1)) = x_1 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)) = 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(g_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(up.0(x_1)) = 1 + x_1 ---------------------------------------- (91) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(f.0(g.1-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-1(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-1(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(block.0(a.), down.1(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(block.0(b.), down.1(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.1(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.0(y16)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(down.1(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(down.1(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(block.0(y51), down.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.1(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(down.1(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(down.1(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.1(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(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(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (92) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 5 less nodes. ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-1(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(block.0(a.), down.1(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(block.0(b.), down.1(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.1(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.0(y16)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(down.1(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(down.1(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(block.0(y51), down.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.1(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(down.1(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(down.1(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.1(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(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(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (94) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented rules of the TRS R: down.0(g.0-1(a., y9)) -> g_flat.0-0(block.0(a.), down.1(y9)) down.0(g.0-1(b., y12)) -> g_flat.0-0(block.0(b.), down.1(y12)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.1(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.1(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.1(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.1(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(down.1(fresh_constant.), block.0(y16)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(down.1(y17), block.0(a.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(down.1(y31), block.0(b.)) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.1(y35), block.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(block.0(y51), down.1(fresh_constant.)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.1(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.1(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.1(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.1(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.1(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.1(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.1(y11)) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(down.1(y21), block.0(f.0(a.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(down.1(y21), block.0(f.0(b.))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.1(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.1(y21), block.0(f.1(fresh_constant.))) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 0 POL(b.) = 0 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(down.0(x_1)) = 1 + x_1 POL(down.1(x_1)) = x_1 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = x_1 POL(f_flat.0(x_1)) = 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(g_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(up.0(x_1)) = 1 + x_1 ---------------------------------------- (95) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-1(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(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(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (96) 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(f.0(g.1-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-1(x0, x1))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 0 POL(b.) = 0 POL(block.0(x_1)) = 0 POL(block.1(x_1)) = 0 POL(down.0(x_1)) = 0 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = 0 POL(f_flat.0(x_1)) = x_1 POL(fresh_constant.) = 0 POL(g.0-0(x_1, x_2)) = 0 POL(g.0-1(x_1, x_2)) = 0 POL(g.1-0(x_1, x_2)) = 0 POL(g.1-1(x_1, x_2)) = 1 + x_1 + x_2 POL(g_flat.0-0(x_1, x_2)) = 0 POL(up.0(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) 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(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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) ---------------------------------------- (97) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(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(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (98) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(g.0-1(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.1(x2))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 0 POL(b.) = 0 POL(block.0(x_1)) = 0 POL(block.1(x_1)) = 0 POL(down.0(x_1)) = 0 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = 0 POL(f_flat.0(x_1)) = x_1 POL(fresh_constant.) = 0 POL(g.0-0(x_1, x_2)) = 0 POL(g.0-1(x_1, x_2)) = x_1 POL(g.1-0(x_1, x_2)) = 0 POL(g.1-1(x_1, x_2)) = 1 + x_1 + x_2 POL(g_flat.0-0(x_1, x_2)) = x_1 POL(up.0(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) 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(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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) ---------------------------------------- (99) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(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(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (100) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(g.1-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-1(x1, x2))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 0 POL(b.) = 0 POL(block.0(x_1)) = 0 POL(block.1(x_1)) = 0 POL(down.0(x_1)) = 0 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = 0 POL(f_flat.0(x_1)) = x_1 POL(fresh_constant.) = 0 POL(g.0-0(x_1, x_2)) = 0 POL(g.0-1(x_1, x_2)) = 0 POL(g.1-0(x_1, x_2)) = x_2 POL(g.1-1(x_1, x_2)) = 1 + x_1 + x_2 POL(g_flat.0-0(x_1, x_2)) = x_2 POL(up.0(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) 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(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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(x_1, x_2)) ---------------------------------------- (101) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0(g.0-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-0(x0, x1)))) TOP.0(up.0(f.0(g.0-1(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.0-1(x0, x1)))) TOP.0(up.0(f.0(g.1-0(x0, x1)))) -> TOP.0(f_flat.0(down.0(g.1-0(x0, x1)))) TOP.0(up.0(g.0-0(a., x0))) -> TOP.0(g_flat.0-0(block.0(a.), down.0(x0))) TOP.0(up.0(g.0-0(b., x0))) -> TOP.0(g_flat.0-0(block.0(b.), down.0(x0))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.0-1(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.0(x2))) TOP.0(up.0(g.0-1(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(down.0(g.1-0(x0, x1)), block.1(x2))) TOP.0(up.0(g.0-0(g.0-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.0-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.0-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-0(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-0(x0, x1)), down.0(x2))) TOP.0(up.0(g.0-0(g.1-1(x0, x1), x2))) -> TOP.0(g_flat.0-0(block.0(g.1-1(x0, x1)), down.0(x2))) TOP.0(up.0(g.1-0(fresh_constant., x0))) -> TOP.0(g_flat.0-0(block.1(fresh_constant.), down.0(x0))) TOP.0(up.0(g.0-0(x0, a.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(g.0-0(x0, b.))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(b.))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-1(x1, x2)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(g.1-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.0-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-0(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.0-1(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.0-1(x1, x2)))) TOP.0(up.0(g.1-0(x0, g.1-0(x1, x2)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(g.1-0(x1, x2)))) TOP.0(up.0(g.0-1(x0, fresh_constant.))) -> TOP.0(g_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0(f.0(g.0-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-0(x0, x1))))) TOP.0(up.0(f.0(f.0(g.0-1(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.0-1(x0, x1))))) TOP.0(up.0(f.0(f.0(g.1-0(x0, x1))))) -> TOP.0(f_flat.0(down.0(f.0(g.1-0(x0, x1))))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(a.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(a.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(a.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(a.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.0(x0))) TOP.0(up.0(g.0-1(f.0(b.), x0))) -> TOP.0(g_flat.0-0(down.0(f.0(b.)), block.1(x0))) TOP.0(up.0(g.0-0(f.0(b.), x0))) -> TOP.0(g_flat.0-0(block.0(f.0(b.)), down.0(x0))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.0-1(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-1(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-0(x0, x1))), block.1(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(down.0(f.0(g.1-1(x0, x1))), block.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.0-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.0-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-0(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-0(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.0(g.1-1(x0, x1)), x2))) -> TOP.0(g_flat.0-0(block.0(f.0(g.1-1(x0, x1))), down.0(x2))) TOP.0(up.0(g.0-0(f.1(fresh_constant.), x0))) -> TOP.0(g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(x0))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(a.)))) TOP.0(up.0(g.1-0(x0, f.0(a.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(a.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(b.)))) TOP.0(up.0(g.1-0(x0, f.0(b.)))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(b.)))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.0(g.1-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.0(x0), down.0(f.0(g.1-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-0(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.0-1(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.0-1(x1, x2))))) TOP.0(up.0(g.1-0(x0, f.0(g.1-0(x1, x2))))) -> TOP.0(g_flat.0-0(block.1(x0), down.0(f.0(g.1-0(x1, x2))))) TOP.0(up.0(g.0-0(x0, f.1(fresh_constant.)))) -> TOP.0(g_flat.0-0(down.0(x0), block.0(f.1(fresh_constant.)))) The TRS R consists of the following rules: down.0(a.) -> up.0(f.0(a.)) down.0(f.0(f.0(f.0(x)))) -> up.0(b.) down.0(g.0-0(f.0(f.0(x)), f.0(f.0(y)))) -> up.0(f.0(g.0-0(x, y))) down.0(f.0(a.)) -> f_flat.0(down.0(a.)) down.0(f.0(b.)) -> f_flat.0(down.0(b.)) down.0(f.0(g.0-0(y5, y6))) -> f_flat.0(down.0(g.0-0(y5, y6))) down.0(f.0(g.0-1(y5, y6))) -> f_flat.0(down.0(g.0-1(y5, y6))) down.0(f.0(g.1-0(y5, y6))) -> f_flat.0(down.0(g.1-0(y5, y6))) down.0(f.0(g.1-1(y5, y6))) -> f_flat.0(down.0(g.1-1(y5, y6))) down.0(g.0-0(a., y9)) -> g_flat.0-0(down.0(a.), block.0(y9)) down.0(g.0-1(a., y9)) -> g_flat.0-0(down.0(a.), block.1(y9)) down.0(g.0-0(a., y9)) -> g_flat.0-0(block.0(a.), down.0(y9)) down.0(g.0-0(b., y12)) -> g_flat.0-0(down.0(b.), block.0(y12)) down.0(g.0-1(b., y12)) -> g_flat.0-0(down.0(b.), block.1(y12)) down.0(g.0-0(b., y12)) -> g_flat.0-0(block.0(b.), down.0(y12)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.0-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.0-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-0(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-0(y13, y14)), block.1(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.0(y15)) down.0(g.0-1(g.1-1(y13, y14), y15)) -> g_flat.0-0(down.0(g.1-1(y13, y14)), block.1(y15)) down.0(g.0-0(g.0-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.0-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.0-1(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-0(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-0(y13, y14)), down.0(y15)) down.0(g.0-0(g.1-1(y13, y14), y15)) -> g_flat.0-0(block.0(g.1-1(y13, y14)), down.0(y15)) down.0(g.1-0(fresh_constant., y16)) -> g_flat.0-0(block.1(fresh_constant.), down.0(y16)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(down.0(y17), block.0(a.)) down.0(g.0-0(y17, a.)) -> g_flat.0-0(block.0(y17), down.0(a.)) down.0(g.1-0(y17, a.)) -> g_flat.0-0(block.1(y17), down.0(a.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(down.0(y31), block.0(b.)) down.0(g.0-0(y31, b.)) -> g_flat.0-0(block.0(y31), down.0(b.)) down.0(g.1-0(y31, b.)) -> g_flat.0-0(block.1(y31), down.0(b.)) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(down.0(y35), block.0(g.1-1(y36, y37))) down.0(g.0-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-0(y36, y37))) down.0(g.0-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.0-1(y36, y37))) down.0(g.0-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-0(y36, y37))) down.0(g.0-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.0(y35), down.0(g.1-1(y36, y37))) down.0(g.1-0(y35, g.0-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-0(y36, y37))) down.0(g.1-0(y35, g.0-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.0-1(y36, y37))) down.0(g.1-0(y35, g.1-0(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-0(y36, y37))) down.0(g.1-0(y35, g.1-1(y36, y37))) -> g_flat.0-0(block.1(y35), down.0(g.1-1(y36, y37))) down.0(g.0-1(y51, fresh_constant.)) -> g_flat.0-0(down.0(y51), block.1(fresh_constant.)) down.0(f.0(f.0(a.))) -> f_flat.0(down.0(f.0(a.))) down.0(f.0(f.0(b.))) -> f_flat.0(down.0(f.0(b.))) down.0(f.0(f.0(g.0-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-0(y57, y58)))) down.0(f.0(f.0(g.0-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.0-1(y57, y58)))) down.0(f.0(f.0(g.1-0(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-0(y57, y58)))) down.0(f.0(f.0(g.1-1(y57, y58)))) -> f_flat.0(down.0(f.0(g.1-1(y57, y58)))) down.0(f.0(f.1(fresh_constant.))) -> f_flat.0(down.0(f.1(fresh_constant.))) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.0(y11)) down.0(g.0-1(f.0(a.), y11)) -> g_flat.0-0(down.0(f.0(a.)), block.1(y11)) down.0(g.0-0(f.0(a.), y11)) -> g_flat.0-0(block.0(f.0(a.)), down.0(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.0(y11)) down.0(g.0-1(f.0(b.), y11)) -> g_flat.0-0(down.0(f.0(b.)), block.1(y11)) down.0(g.0-0(f.0(b.), y11)) -> g_flat.0-0(block.0(f.0(b.)), down.0(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.0-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-0(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.0(y11)) down.0(g.0-1(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(down.0(f.0(g.1-1(y61, y62))), block.1(y11)) down.0(g.0-0(f.0(g.0-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.0-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.0-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-0(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-0(y61, y62))), down.0(y11)) down.0(g.0-0(f.0(g.1-1(y61, y62)), y11)) -> g_flat.0-0(block.0(f.0(g.1-1(y61, y62))), down.0(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.0(y11)) down.0(g.0-1(f.1(fresh_constant.), y11)) -> g_flat.0-0(down.0(f.1(fresh_constant.)), block.1(y11)) down.0(g.0-0(f.1(fresh_constant.), y11)) -> g_flat.0-0(block.0(f.1(fresh_constant.)), down.0(y11)) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(down.0(y21), block.0(f.0(a.))) down.0(g.0-0(y21, f.0(a.))) -> g_flat.0-0(block.0(y21), down.0(f.0(a.))) down.0(g.1-0(y21, f.0(a.))) -> g_flat.0-0(block.1(y21), down.0(f.0(a.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(down.0(y21), block.0(f.0(b.))) down.0(g.0-0(y21, f.0(b.))) -> g_flat.0-0(block.0(y21), down.0(f.0(b.))) down.0(g.1-0(y21, f.0(b.))) -> g_flat.0-0(block.1(y21), down.0(f.0(b.))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(down.0(y21), block.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.0-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.0(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.0-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.0-1(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-0(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-0(y65, y66)))) down.0(g.1-0(y21, f.0(g.1-1(y65, y66)))) -> g_flat.0-0(block.1(y21), down.0(f.0(g.1-1(y65, y66)))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(down.0(y21), block.0(f.1(fresh_constant.))) down.0(g.0-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.0(y21), down.0(f.1(fresh_constant.))) down.0(g.1-0(y21, f.1(fresh_constant.))) -> g_flat.0-0(block.1(y21), down.0(f.1(fresh_constant.))) 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(block.1(x_1), up.0(x_2)) -> up.0(g.1-0(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(up.0(x_1), block.1(x_2)) -> up.0(g.0-1(x_1, x_2)) f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (102) PisEmptyProof (SOUND) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (103) TRUE ---------------------------------------- (104) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(g(x0, x1)))) -> TOP(f_flat(down(g(x0, x1)))) TOP(up(g(a, x0))) -> TOP(g_flat(block(a), down(x0))) TOP(up(g(b, x0))) -> TOP(g_flat(block(b), down(x0))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(down(g(x0, x1)), block(x2))) TOP(up(g(g(x0, x1), x2))) -> TOP(g_flat(block(g(x0, x1)), down(x2))) TOP(up(g(fresh_constant, x0))) -> TOP(g_flat(block(fresh_constant), down(x0))) TOP(up(g(x0, a))) -> TOP(g_flat(down(x0), block(a))) TOP(up(g(x0, b))) -> TOP(g_flat(down(x0), block(b))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(down(x0), block(g(x1, x2)))) TOP(up(g(x0, g(x1, x2)))) -> TOP(g_flat(block(x0), down(g(x1, x2)))) TOP(up(g(x0, fresh_constant))) -> TOP(g_flat(down(x0), block(fresh_constant))) TOP(up(f(f(g(x0, x1))))) -> TOP(f_flat(down(f(g(x0, x1))))) TOP(up(g(f(a), x0))) -> TOP(g_flat(down(f(a)), block(x0))) TOP(up(g(f(a), x0))) -> TOP(g_flat(block(f(a)), down(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(down(f(b)), block(x0))) TOP(up(g(f(b), x0))) -> TOP(g_flat(block(f(b)), down(x0))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(down(f(g(x0, x1))), block(x2))) TOP(up(g(f(g(x0, x1)), x2))) -> TOP(g_flat(block(f(g(x0, x1))), down(x2))) TOP(up(g(f(fresh_constant), x0))) -> TOP(g_flat(block(f(fresh_constant)), down(x0))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(down(x0), block(f(a)))) TOP(up(g(x0, f(a)))) -> TOP(g_flat(block(x0), down(f(a)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(down(x0), block(f(b)))) TOP(up(g(x0, f(b)))) -> TOP(g_flat(block(x0), down(f(b)))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(down(x0), block(f(g(x1, x2))))) TOP(up(g(x0, f(g(x1, x2))))) -> TOP(g_flat(block(x0), down(f(g(x1, x2))))) TOP(up(g(x0, f(fresh_constant)))) -> TOP(g_flat(down(x0), block(f(fresh_constant)))) The TRS R consists of the following rules: down(a) -> up(f(a)) down(f(f(f(x)))) -> up(b) down(g(f(f(x)), f(f(y)))) -> up(f(g(x, y))) down(f(a)) -> f_flat(down(a)) down(f(b)) -> f_flat(down(b)) down(f(g(y5, y6))) -> f_flat(down(g(y5, y6))) down(g(a, y9)) -> g_flat(down(a), block(y9)) down(g(a, y9)) -> g_flat(block(a), down(y9)) down(g(b, y12)) -> g_flat(down(b), block(y12)) down(g(b, y12)) -> g_flat(block(b), down(y12)) down(g(g(y13, y14), y15)) -> g_flat(down(g(y13, y14)), block(y15)) down(g(g(y13, y14), y15)) -> g_flat(block(g(y13, y14)), down(y15)) down(g(fresh_constant, y16)) -> g_flat(block(fresh_constant), down(y16)) down(g(y17, a)) -> g_flat(down(y17), block(a)) down(g(y17, a)) -> g_flat(block(y17), down(a)) down(g(y31, b)) -> g_flat(down(y31), block(b)) down(g(y31, b)) -> g_flat(block(y31), down(b)) down(g(y35, g(y36, y37))) -> g_flat(down(y35), block(g(y36, y37))) down(g(y35, g(y36, y37))) -> g_flat(block(y35), down(g(y36, y37))) down(g(y51, fresh_constant)) -> g_flat(down(y51), block(fresh_constant)) down(f(f(a))) -> f_flat(down(f(a))) down(f(f(b))) -> f_flat(down(f(b))) down(f(f(g(y57, y58)))) -> f_flat(down(f(g(y57, y58)))) down(f(f(fresh_constant))) -> f_flat(down(f(fresh_constant))) down(g(f(a), y11)) -> g_flat(down(f(a)), block(y11)) down(g(f(a), y11)) -> g_flat(block(f(a)), down(y11)) down(g(f(b), y11)) -> g_flat(down(f(b)), block(y11)) down(g(f(b), y11)) -> g_flat(block(f(b)), down(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(down(f(g(y61, y62))), block(y11)) down(g(f(g(y61, y62)), y11)) -> g_flat(block(f(g(y61, y62))), down(y11)) down(g(f(fresh_constant), y11)) -> g_flat(down(f(fresh_constant)), block(y11)) down(g(f(fresh_constant), y11)) -> g_flat(block(f(fresh_constant)), down(y11)) down(g(y21, f(a))) -> g_flat(down(y21), block(f(a))) down(g(y21, f(a))) -> g_flat(block(y21), down(f(a))) down(g(y21, f(b))) -> g_flat(down(y21), block(f(b))) down(g(y21, f(b))) -> g_flat(block(y21), down(f(b))) down(g(y21, f(g(y65, y66)))) -> g_flat(down(y21), block(f(g(y65, y66)))) down(g(y21, f(g(y65, y66)))) -> g_flat(block(y21), down(f(g(y65, y66)))) down(g(y21, f(fresh_constant))) -> g_flat(down(y21), block(f(fresh_constant))) down(g(y21, f(fresh_constant))) -> g_flat(block(y21), down(f(fresh_constant))) 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)) f_flat(up(x_1)) -> up(f(x_1)) Q is empty. We have to consider all minimal (P,Q,R)-chains.