/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Outermost Termination of the given OTRS could not be shown: (0) OTRS (1) Trivial-Transformation [SOUND, 0 ms] (2) QTRS (3) DependencyPairsProof [EQUIVALENT, 0 ms] (4) QDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) QDP (7) TransformationProof [EQUIVALENT, 0 ms] (8) QDP (9) NonTerminationLoopProof [COMPLETE, 0 ms] (10) NO (11) Thiemann-SpecialC-Transformation [EQUIVALENT, 0 ms] (12) QTRS (13) DependencyPairsProof [EQUIVALENT, 0 ms] (14) QDP (15) DependencyGraphProof [EQUIVALENT, 0 ms] (16) AND (17) QDP (18) UsableRulesProof [EQUIVALENT, 0 ms] (19) QDP (20) QReductionProof [EQUIVALENT, 0 ms] (21) QDP (22) MRRProof [EQUIVALENT, 11 ms] (23) QDP (24) UsableRulesReductionPairsProof [EQUIVALENT, 4 ms] (25) QDP (26) DependencyGraphProof [EQUIVALENT, 0 ms] (27) TRUE (28) QDP (29) UsableRulesProof [EQUIVALENT, 0 ms] (30) QDP (31) QReductionProof [EQUIVALENT, 0 ms] (32) QDP (33) TransformationProof [EQUIVALENT, 0 ms] (34) QDP (35) UsableRulesProof [EQUIVALENT, 0 ms] (36) QDP (37) QReductionProof [EQUIVALENT, 0 ms] (38) QDP (39) Raffelsieper-Zantema-Transformation [SOUND, 0 ms] (40) QTRS (41) DependencyPairsProof [EQUIVALENT, 11 ms] (42) QDP (43) DependencyGraphProof [EQUIVALENT, 0 ms] (44) AND (45) QDP (46) UsableRulesProof [EQUIVALENT, 0 ms] (47) QDP (48) QDPSizeChangeProof [EQUIVALENT, 1 ms] (49) YES (50) QDP (51) UsableRulesProof [EQUIVALENT, 0 ms] (52) QDP (53) TransformationProof [EQUIVALENT, 0 ms] (54) QDP (55) DependencyGraphProof [EQUIVALENT, 0 ms] (56) QDP (57) SplitQDPProof [EQUIVALENT, 0 ms] (58) AND (59) QDP (60) SemLabProof [SOUND, 0 ms] (61) QDP (62) DependencyGraphProof [EQUIVALENT, 0 ms] (63) QDP (64) UsableRulesReductionPairsProof [EQUIVALENT, 92 ms] (65) QDP (66) MRRProof [EQUIVALENT, 79 ms] (67) QDP (68) DependencyGraphProof [EQUIVALENT, 0 ms] (69) QDP (70) MRRProof [EQUIVALENT, 73 ms] (71) QDP (72) QDPOrderProof [EQUIVALENT, 60 ms] (73) QDP (74) QDPOrderProof [EQUIVALENT, 39 ms] (75) QDP (76) QDPOrderProof [EQUIVALENT, 25 ms] (77) QDP (78) PisEmptyProof [SOUND, 0 ms] (79) TRUE (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, 44 ms] (89) QDP (90) MRRProof [EQUIVALENT, 54 ms] (91) QDP (92) QDPOrderProof [EQUIVALENT, 53 ms] (93) QDP (94) QDPOrderProof [EQUIVALENT, 36 ms] (95) QDP (96) QDPOrderProof [EQUIVALENT, 13 ms] (97) QDP (98) PisEmptyProof [SOUND, 0 ms] (99) TRUE (100) QDP ---------------------------------------- (0) Obligation: Term rewrite system R: The TRS R consists of the following rules: f(x, f(a, y)) -> f(a, f(f(f(a, a), y), x)) Outermost Strategy. ---------------------------------------- (1) Trivial-Transformation (SOUND) We applied the Trivial transformation to transform the outermost TRS to a standard TRS. ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: f(x, f(a, y)) -> f(a, f(f(f(a, a), y), x)) Q is empty. ---------------------------------------- (3) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (4) Obligation: Q DP problem: The TRS P consists of the following rules: F(x, f(a, y)) -> F(a, f(f(f(a, a), y), x)) F(x, f(a, y)) -> F(f(f(a, a), y), x) F(x, f(a, y)) -> F(f(a, a), y) F(x, f(a, y)) -> F(a, a) The TRS R consists of the following rules: f(x, f(a, y)) -> f(a, f(f(f(a, a), y), x)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (6) Obligation: Q DP problem: The TRS P consists of the following rules: F(x, f(a, y)) -> F(f(f(a, a), y), x) F(x, f(a, y)) -> F(a, f(f(f(a, a), y), x)) F(x, f(a, y)) -> F(f(a, a), y) The TRS R consists of the following rules: f(x, f(a, y)) -> f(a, f(f(f(a, a), y), x)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (7) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule F(x, f(a, y)) -> F(a, f(f(f(a, a), y), x)) at position [1] we obtained the following new rules [LPAR04]: (F(f(a, x1), f(a, y1)) -> F(a, f(a, f(f(f(a, a), x1), f(f(a, a), y1)))),F(f(a, x1), f(a, y1)) -> F(a, f(a, f(f(f(a, a), x1), f(f(a, a), y1))))) (F(y0, f(a, f(a, x1))) -> F(a, f(f(a, f(f(f(a, a), x1), f(a, a))), y0)),F(y0, f(a, f(a, x1))) -> F(a, f(f(a, f(f(f(a, a), x1), f(a, a))), y0))) ---------------------------------------- (8) Obligation: Q DP problem: The TRS P consists of the following rules: F(x, f(a, y)) -> F(f(f(a, a), y), x) F(x, f(a, y)) -> F(f(a, a), y) F(f(a, x1), f(a, y1)) -> F(a, f(a, f(f(f(a, a), x1), f(f(a, a), y1)))) F(y0, f(a, f(a, x1))) -> F(a, f(f(a, f(f(f(a, a), x1), f(a, a))), y0)) The TRS R consists of the following rules: f(x, f(a, y)) -> f(a, f(f(f(a, a), y), x)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (9) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the right: s = F(x, f(a, f(a, y'))) evaluates to t =F(f(a, f(a, f(f(f(a, a), a), f(f(a, a), y')))), x) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [y' / y'', y'' / f(f(f(a, a), a), f(f(a, a), y'))] * Semiunifier: [x / f(a, f(a, y''))] -------------------------------------------------------------------------------- Rewriting sequence F(f(a, f(a, y'')), f(a, f(a, y'))) -> F(f(f(a, a), f(a, y')), f(a, f(a, y''))) with rule F(x, f(a, y)) -> F(f(f(a, a), y), x) and matcher [x / f(a, f(a, y'')), y / f(a, y')]. F(f(f(a, a), f(a, y')), f(a, f(a, y''))) -> F(f(a, f(f(f(a, a), y'), f(a, a))), f(a, f(a, y''))) with rule f(x', f(a, y''')) -> f(a, f(f(f(a, a), y'''), x')) at position [0] and matcher [x' / f(a, a), y''' / y'] F(f(a, f(f(f(a, a), y'), f(a, a))), f(a, f(a, y''))) -> F(f(a, f(a, f(f(f(a, a), a), f(f(a, a), y')))), f(a, f(a, y''))) with rule f(x', f(a, y)) -> f(a, f(f(f(a, a), y), x')) at position [0,1] and matcher [x' / f(f(a, a), y'), y / a] Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (10) NO ---------------------------------------- (11) Thiemann-SpecialC-Transformation (EQUIVALENT) We applied the Thiemann-SpecialC transformation to transform the outermost TRS to an innermost TRS. ---------------------------------------- (12) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: top(go_up(x)) -> top(reduce(x)) reduce(f(x_1, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) ---------------------------------------- (13) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (14) 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, x_2)) -> CHECK_F(redex_f(x_1, x_2)) REDUCE(f(x_1, x_2)) -> REDEX_F(x_1, x_2) CHECK_F(redex_f(x_1, x_2)) -> IN_F_1(reduce(x_1), x_2) CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_1) CHECK_F(redex_f(x_1, x_2)) -> IN_F_2(x_1, reduce(x_2)) CHECK_F(redex_f(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, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 4 less nodes. ---------------------------------------- (16) Complex Obligation (AND) ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_1) REDUCE(f(x_1, x_2)) -> CHECK_F(redex_f(x_1, x_2)) CHECK_F(redex_f(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, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) 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. ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_1) REDUCE(f(x_1, x_2)) -> CHECK_F(redex_f(x_1, x_2)) CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_2) The TRS R consists of the following rules: redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) 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, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_1) REDUCE(f(x_1, x_2)) -> CHECK_F(redex_f(x_1, x_2)) CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_2) The TRS R consists of the following rules: redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) The set Q consists of the following terms: redex_f(x0, f(a, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) 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: redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) Used ordering: Polynomial interpretation [POLO]: POL(CHECK_F(x_1)) = x_1 POL(REDUCE(x_1)) = 1 + 2*x_1 POL(a) = 0 POL(f(x_1, x_2)) = x_1 + x_2 POL(redex_f(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(result_f(x_1)) = 2*x_1 ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_1) REDUCE(f(x_1, x_2)) -> CHECK_F(redex_f(x_1, x_2)) CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_2) R is empty. The set Q consists of the following terms: redex_f(x0, f(a, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) 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. The following dependency pairs can be deleted: REDUCE(f(x_1, x_2)) -> CHECK_F(redex_f(x_1, x_2)) No rules are removed from R. Used ordering: POLO with Polynomial interpretation [POLO]: POL(CHECK_F(x_1)) = 2*x_1 POL(REDUCE(x_1)) = 2*x_1 POL(f(x_1, x_2)) = 2*x_1 + 2*x_2 POL(redex_f(x_1, x_2)) = 2*x_1 + x_2 ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_1) CHECK_F(redex_f(x_1, x_2)) -> REDUCE(x_2) R is empty. The set Q consists of the following terms: redex_f(x0, f(a, x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes. ---------------------------------------- (27) TRUE ---------------------------------------- (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: top(go_up(x)) -> top(reduce(x)) reduce(f(x_1, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) 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. ---------------------------------------- (30) 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, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) 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)) ---------------------------------------- (32) 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, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) 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, x1))) -> TOP(check_f(redex_f(x0, x1))),TOP(go_up(f(x0, x1))) -> TOP(check_f(redex_f(x0, x1)))) ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(go_up(f(x0, x1))) -> TOP(check_f(redex_f(x0, x1))) The TRS R consists of the following rules: reduce(f(x_1, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) 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. ---------------------------------------- (36) 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, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: top(go_up(x0)) reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) 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)) ---------------------------------------- (38) 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, x_2)) -> check_f(redex_f(x_1, x_2)) redex_f(x, f(a, y)) -> result_f(f(a, f(f(f(a, a), y), x))) check_f(result_f(x)) -> go_up(x) check_f(redex_f(x_1, x_2)) -> in_f_1(reduce(x_1), x_2) check_f(redex_f(x_1, x_2)) -> in_f_2(x_1, reduce(x_2)) in_f_2(x_1, go_up(x_2)) -> go_up(f(x_1, x_2)) in_f_1(go_up(x_1), x_2) -> go_up(f(x_1, x_2)) The set Q consists of the following terms: reduce(f(x0, x1)) redex_f(x0, f(a, x1)) check_f(result_f(x0)) check_f(redex_f(x0, x1)) in_f_1(go_up(x0), x1) in_f_2(x0, go_up(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) Raffelsieper-Zantema-Transformation (SOUND) We applied the Raffelsieper-Zantema transformation to transform the outermost TRS to a standard TRS. ---------------------------------------- (40) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) top(up(x)) -> top(down(x)) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y23, fresh_constant)) -> f_flat(block(y23), down(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) Q is empty. ---------------------------------------- (41) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (42) 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(y20, a)) -> F_FLAT(down(y20), block(a)) DOWN(f(y20, a)) -> DOWN(y20) DOWN(f(y20, a)) -> F_FLAT(block(y20), down(a)) DOWN(f(y20, a)) -> DOWN(a) DOWN(f(y23, fresh_constant)) -> F_FLAT(down(y23), block(fresh_constant)) DOWN(f(y23, fresh_constant)) -> DOWN(y23) DOWN(f(y23, fresh_constant)) -> F_FLAT(block(y23), down(fresh_constant)) DOWN(f(y23, fresh_constant)) -> DOWN(fresh_constant) DOWN(f(y9, f(f(y52, y53), y54))) -> F_FLAT(down(y9), block(f(f(y52, y53), y54))) DOWN(f(y9, f(f(y52, y53), y54))) -> DOWN(y9) DOWN(f(y9, f(f(y52, y53), y54))) -> F_FLAT(block(y9), down(f(f(y52, y53), y54))) DOWN(f(y9, f(f(y52, y53), y54))) -> DOWN(f(f(y52, y53), y54)) DOWN(f(y9, f(fresh_constant, y56))) -> F_FLAT(down(y9), block(f(fresh_constant, y56))) DOWN(f(y9, f(fresh_constant, y56))) -> DOWN(y9) DOWN(f(y9, f(fresh_constant, y56))) -> F_FLAT(block(y9), down(f(fresh_constant, y56))) DOWN(f(y9, f(fresh_constant, y56))) -> DOWN(f(fresh_constant, y56)) The TRS R consists of the following rules: down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) top(up(x)) -> top(down(x)) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y23, fresh_constant)) -> f_flat(block(y23), down(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 11 less nodes. ---------------------------------------- (44) Complex Obligation (AND) ---------------------------------------- (45) Obligation: Q DP problem: The TRS P consists of the following rules: DOWN(f(y23, fresh_constant)) -> DOWN(y23) DOWN(f(y20, a)) -> DOWN(y20) DOWN(f(y9, f(f(y52, y53), y54))) -> DOWN(y9) DOWN(f(y9, f(f(y52, y53), y54))) -> DOWN(f(f(y52, y53), y54)) DOWN(f(y9, f(fresh_constant, y56))) -> DOWN(y9) DOWN(f(y9, f(fresh_constant, y56))) -> DOWN(f(fresh_constant, y56)) The TRS R consists of the following rules: down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) top(up(x)) -> top(down(x)) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y23, fresh_constant)) -> f_flat(block(y23), down(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (46) 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. ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: DOWN(f(y23, fresh_constant)) -> DOWN(y23) DOWN(f(y20, a)) -> DOWN(y20) DOWN(f(y9, f(f(y52, y53), y54))) -> DOWN(y9) DOWN(f(y9, f(f(y52, y53), y54))) -> DOWN(f(f(y52, y53), y54)) DOWN(f(y9, f(fresh_constant, y56))) -> DOWN(y9) DOWN(f(y9, f(fresh_constant, y56))) -> DOWN(f(fresh_constant, y56)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (48) 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(y23, fresh_constant)) -> DOWN(y23) The graph contains the following edges 1 > 1 *DOWN(f(y20, a)) -> DOWN(y20) The graph contains the following edges 1 > 1 *DOWN(f(y9, f(f(y52, y53), y54))) -> DOWN(y9) The graph contains the following edges 1 > 1 *DOWN(f(y9, f(f(y52, y53), y54))) -> DOWN(f(f(y52, y53), y54)) The graph contains the following edges 1 > 1 *DOWN(f(y9, f(fresh_constant, y56))) -> DOWN(y9) The graph contains the following edges 1 > 1 *DOWN(f(y9, f(fresh_constant, y56))) -> DOWN(f(fresh_constant, y56)) The graph contains the following edges 1 > 1 ---------------------------------------- (49) YES ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(x)) -> TOP(down(x)) The TRS R consists of the following rules: down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) top(up(x)) -> top(down(x)) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y23, fresh_constant)) -> f_flat(block(y23), down(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) 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. ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(x)) -> TOP(down(x)) The TRS R consists of the following rules: down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y23, fresh_constant)) -> f_flat(block(y23), down(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule TOP(up(x)) -> TOP(down(x)) at position [0] we obtained the following new rules [LPAR04]: (TOP(up(f(x0, f(a, x1)))) -> TOP(up(f(a, f(f(f(a, a), x1), x0)))),TOP(up(f(x0, f(a, x1)))) -> TOP(up(f(a, f(f(f(a, a), x1), x0))))) (TOP(up(f(x0, a))) -> TOP(f_flat(down(x0), block(a))),TOP(up(f(x0, a))) -> TOP(f_flat(down(x0), block(a)))) (TOP(up(f(x0, a))) -> TOP(f_flat(block(x0), down(a))),TOP(up(f(x0, a))) -> TOP(f_flat(block(x0), down(a)))) (TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(down(x0), block(fresh_constant))),TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(down(x0), block(fresh_constant)))) (TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(block(x0), down(fresh_constant))),TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(block(x0), down(fresh_constant)))) (TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(down(x0), block(f(f(x1, x2), x3)))),TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(down(x0), block(f(f(x1, x2), x3))))) (TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(block(x0), down(f(f(x1, x2), x3)))),TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(block(x0), down(f(f(x1, x2), x3))))) (TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(down(x0), block(f(fresh_constant, x1)))),TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(down(x0), block(f(fresh_constant, x1))))) (TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(block(x0), down(f(fresh_constant, x1)))),TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(block(x0), down(f(fresh_constant, x1))))) ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(x0, f(a, x1)))) -> TOP(up(f(a, f(f(f(a, a), x1), x0)))) TOP(up(f(x0, a))) -> TOP(f_flat(down(x0), block(a))) TOP(up(f(x0, a))) -> TOP(f_flat(block(x0), down(a))) TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(down(x0), block(fresh_constant))) TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(block(x0), down(fresh_constant))) TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(down(x0), block(f(f(x1, x2), x3)))) TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(block(x0), down(f(f(x1, x2), x3)))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(down(x0), block(f(fresh_constant, x1)))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(block(x0), down(f(fresh_constant, x1)))) The TRS R consists of the following rules: down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y23, fresh_constant)) -> f_flat(block(y23), down(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(down(x0), block(f(f(x1, x2), x3)))) TOP(up(f(x0, f(a, x1)))) -> TOP(up(f(a, f(f(f(a, a), x1), x0)))) TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(block(x0), down(f(f(x1, x2), x3)))) TOP(up(f(x0, a))) -> TOP(f_flat(down(x0), block(a))) TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(down(x0), block(fresh_constant))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(down(x0), block(f(fresh_constant, x1)))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(block(x0), down(f(fresh_constant, x1)))) The TRS R consists of the following rules: down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y23, fresh_constant)) -> f_flat(block(y23), down(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) SplitQDPProof (EQUIVALENT) We show in the first subproof that some pairs and rules can be removed, afterwards, we continue with the remaining DP-Problem ---------------------------------------- (58) Complex Obligation (AND) ---------------------------------------- (59) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(down(x0), block(f(f(x1, x2), x3)))) TOP(up(f(x0, f(a, x1)))) -> TOP(up(f(a, f(f(f(a, a), x1), x0)))) TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(block(x0), down(f(f(x1, x2), x3)))) TOP(up(f(x0, a))) -> TOP(f_flat(down(x0), block(a))) TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(down(x0), block(fresh_constant))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(down(x0), block(f(fresh_constant, x1)))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(block(x0), down(f(fresh_constant, x1)))) The TRS R consists of the following rules: down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y23, fresh_constant)) -> f_flat(block(y23), down(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (60) 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 block: 0 down: 0 f: 0 fresh_constant: 1 up: 0 f_flat: 0 TOP: 0 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. ---------------------------------------- (61) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.1-0(x0, a.))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.1-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.1(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-1(fresh_constant., x1)))) The TRS R consists of the following rules: down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.1-0(y20, a.)) -> f_flat.0-0(down.1(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.1-1(y23, fresh_constant.)) -> f_flat.0-0(down.1(y23), block.1(fresh_constant.)) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(block.0(y23), down.1(fresh_constant.)) down.0(f.1-1(y23, fresh_constant.)) -> f_flat.0-0(block.1(y23), down.1(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(f.1-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(f.1-1(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (62) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 12 less nodes. ---------------------------------------- (63) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-1(fresh_constant., x1)))) The TRS R consists of the following rules: down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.1-0(y20, a.)) -> f_flat.0-0(down.1(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.1-1(y23, fresh_constant.)) -> f_flat.0-0(down.1(y23), block.1(fresh_constant.)) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(block.0(y23), down.1(fresh_constant.)) down.0(f.1-1(y23, fresh_constant.)) -> f_flat.0-0(block.1(y23), down.1(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(f.1-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(f.1-1(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (64) 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: f_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(f.1-1(x_1, x_2)) f_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(f.1-1(x_1, x_2)) Used ordering: POLO with Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 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)) = 1 + x_1 POL(f.0-0(x_1, x_2)) = x_1 + x_2 POL(f.0-1(x_1, x_2)) = x_1 + x_2 POL(f.1-0(x_1, x_2)) = x_1 + x_2 POL(f.1-1(x_1, x_2)) = x_1 + x_2 POL(f_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(fresh_constant.) = 0 POL(up.0(x_1)) = 1 + x_1 POL(up.1(x_1)) = 1 + x_1 ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-1(fresh_constant., x1)))) The TRS R consists of the following rules: down.0(f.1-1(y23, fresh_constant.)) -> f_flat.0-0(down.1(y23), block.1(fresh_constant.)) down.0(f.1-1(y23, fresh_constant.)) -> f_flat.0-0(block.1(y23), down.1(fresh_constant.)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(down.1(y20), block.0(a.)) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(block.0(y23), down.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (66) 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.1-1(y23, fresh_constant.)) -> f_flat.0-0(down.1(y23), block.1(fresh_constant.)) down.0(f.1-1(y23, fresh_constant.)) -> f_flat.0-0(block.1(y23), down.1(fresh_constant.)) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 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)) = 1 + x_1 POL(f.0-0(x_1, x_2)) = x_1 + x_2 POL(f.0-1(x_1, x_2)) = x_1 + x_2 POL(f.1-0(x_1, x_2)) = x_1 + x_2 POL(f.1-1(x_1, x_2)) = 1 + x_1 + x_2 POL(f_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(fresh_constant.) = 0 POL(up.0(x_1)) = 1 + x_1 ---------------------------------------- (67) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-1(fresh_constant., x1)))) The TRS R consists of the following rules: f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(down.1(y20), block.0(a.)) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(block.0(y23), down.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (68) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (69) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) The TRS R consists of the following rules: f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(down.1(y20), block.0(a.)) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(block.0(y23), down.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (70) 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.1-0(y20, a.)) -> f_flat.0-0(down.1(y20), block.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(block.0(y23), down.1(fresh_constant.)) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 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-0(x_1, x_2)) = x_1 + x_2 POL(f.0-1(x_1, x_2)) = x_1 + x_2 POL(f.1-0(x_1, x_2)) = x_1 + x_2 POL(f.1-1(x_1, x_2)) = x_1 + x_2 POL(f_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(fresh_constant.) = 0 POL(up.0(x_1)) = 1 + x_1 ---------------------------------------- (71) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) The TRS R consists of the following rules: f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (72) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(f.1-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), x1), x0)))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 1 POL(block.0(x_1)) = 0 POL(block.1(x_1)) = 0 POL(down.0(x_1)) = 0 POL(f.0-0(x_1, x_2)) = 0 POL(f.0-1(x_1, x_2)) = x_1 POL(f.1-0(x_1, x_2)) = x_2 POL(f.1-1(x_1, x_2)) = x_2 POL(f_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(fresh_constant.) = 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(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) ---------------------------------------- (73) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) The TRS R consists of the following rules: f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (74) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) 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(block.0(x_1)) = 0 POL(block.1(x_1)) = 0 POL(down.0(x_1)) = 0 POL(f.0-0(x_1, x_2)) = 0 POL(f.0-1(x_1, x_2)) = x_1 POL(f.1-0(x_1, x_2)) = x_2 POL(f.1-1(x_1, x_2)) = 1 + x_2 POL(f_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(fresh_constant.) = 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(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) The TRS R consists of the following rules: f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (76) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(f.1-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), x1), x0)))) 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(block.0(x_1)) = x_1 POL(block.1(x_1)) = 1 POL(down.0(x_1)) = x_1 POL(f.0-0(x_1, x_2)) = x_1 POL(f.0-1(x_1, x_2)) = x_1 POL(f.1-0(x_1, x_2)) = 1 POL(f.1-1(x_1, x_2)) = x_2 POL(f_flat.0-0(x_1, x_2)) = x_1 POL(fresh_constant.) = 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(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) ---------------------------------------- (77) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(a., x1)))) -> TOP.0(up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(a.))) TOP.0(up.0(f.0-1(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.1-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.1-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.1-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.1-0(fresh_constant., x1)))) The TRS R consists of the following rules: f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.1-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-0(f.0-0(a., a.), y), x))) down.0(f.1-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-1(f.0-1(f.0-0(a., a.), y), x))) down.0(f.1-0(y20, a.)) -> f_flat.0-0(block.1(y20), down.0(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.1-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.1-1(fresh_constant., y56))) down.0(f.0-1(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.1(fresh_constant.)) down.0(f.0-0(x, f.0-0(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-0(f.0-0(a., a.), y), x))) down.0(f.0-0(x, f.0-1(a., y))) -> up.0(f.0-0(a., f.0-0(f.0-1(f.0-0(a., a.), y), x))) down.0(f.0-0(y20, a.)) -> f_flat.0-0(down.0(y20), block.0(a.)) down.0(f.0-0(y20, a.)) -> f_flat.0-0(block.0(y20), down.0(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.1-1(fresh_constant., y56))) down.0(f.0-0(y9, f.1-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-0(fresh_constant., y56))) down.0(f.0-0(y9, f.1-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.1-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (78) PisEmptyProof (SOUND) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (79) TRUE ---------------------------------------- (80) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(down(x0), block(f(f(x1, x2), x3)))) TOP(up(f(x0, f(a, x1)))) -> TOP(up(f(a, f(f(f(a, a), x1), x0)))) TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(block(x0), down(f(f(x1, x2), x3)))) TOP(up(f(x0, a))) -> TOP(f_flat(down(x0), block(a))) TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(down(x0), block(fresh_constant))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(down(x0), block(f(fresh_constant, x1)))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(block(x0), down(f(fresh_constant, x1)))) The TRS R consists of the following rules: f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) 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(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(down(x0), block(f(f(x1, x2), x3)))) TOP(up(f(x0, f(a, x1)))) -> TOP(up(f(a, f(f(f(a, a), x1), x0)))) TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(block(x0), down(f(f(x1, x2), x3)))) TOP(up(f(x0, a))) -> TOP(f_flat(down(x0), block(a))) TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(down(x0), block(fresh_constant))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(down(x0), block(f(fresh_constant, x1)))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(block(x0), down(f(fresh_constant, x1)))) The TRS R consists of the following rules: f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) down(f(y20, a)) -> f_flat(block(y20), down(a)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y20, a)) -> f_flat(down(y20), block(a)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) 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: 1 block: 0 down: 0 f: 0 fresh_constant: 0 up: 0 f_flat: 0 TOP: 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-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-1(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(a.))) TOP.0(up.0(f.1-1(x0, a.))) -> TOP.0(f_flat.0-0(down.1(x0), block.1(a.))) TOP.0(up.0(f.0-0(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(fresh_constant.))) TOP.0(up.0(f.1-0(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.1(x0), block.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(fresh_constant., x1)))) The TRS R consists of the following rules: f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(f.1-1(x_1, x_2)) down.0(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-1(y20, a.)) -> f_flat.0-0(block.0(y20), down.1(a.)) down.0(f.1-1(y20, a.)) -> f_flat.0-0(block.1(y20), down.1(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.1-0(y23, fresh_constant.)) -> f_flat.0-0(down.1(y23), block.0(fresh_constant.)) down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) down.0(f.1-1(y20, a.)) -> f_flat.0-0(down.1(y20), block.1(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(f.1-1(x_1, x_2)) 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 12 less nodes. ---------------------------------------- (87) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.0-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-1(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(a.))) TOP.0(up.0(f.0-0(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(fresh_constant., x1)))) The TRS R consists of the following rules: f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(f.1-1(x_1, x_2)) down.0(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-1(y20, a.)) -> f_flat.0-0(block.0(y20), down.1(a.)) down.0(f.1-1(y20, a.)) -> f_flat.0-0(block.1(y20), down.1(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.1-0(y23, fresh_constant.)) -> f_flat.0-0(down.1(y23), block.0(fresh_constant.)) down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) down.0(f.1-1(y20, a.)) -> f_flat.0-0(down.1(y20), block.1(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(f.1-1(x_1, x_2)) 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: f_flat.0-0(block.0(x_1), up.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(block.1(x_1), up.1(x_2)) -> up.0(f.1-1(x_1, x_2)) f_flat.0-0(up.1(x_1), block.0(x_2)) -> up.0(f.1-0(x_1, x_2)) f_flat.0-0(up.1(x_1), block.1(x_2)) -> up.0(f.1-1(x_1, x_2)) Used ordering: POLO with Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 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)) = 1 + x_1 POL(f.0-0(x_1, x_2)) = x_1 + x_2 POL(f.0-1(x_1, x_2)) = x_1 + x_2 POL(f.1-0(x_1, x_2)) = x_1 + x_2 POL(f.1-1(x_1, x_2)) = x_1 + x_2 POL(f_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(fresh_constant.) = 0 POL(up.0(x_1)) = 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-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-1(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(a.))) TOP.0(up.0(f.0-0(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(fresh_constant., x1)))) The TRS R consists of the following rules: down.0(f.0-1(y20, a.)) -> f_flat.0-0(block.0(y20), down.1(a.)) down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-1(y20, a.)) -> f_flat.0-0(block.1(y20), down.1(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.1-0(y23, fresh_constant.)) -> f_flat.0-0(down.1(y23), block.0(fresh_constant.)) down.0(f.1-1(y20, a.)) -> f_flat.0-0(down.1(y20), block.1(a.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) 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-1(y20, a.)) -> f_flat.0-0(block.0(y20), down.1(a.)) down.0(f.1-1(y20, a.)) -> f_flat.0-0(block.1(y20), down.1(a.)) down.0(f.1-0(y23, fresh_constant.)) -> f_flat.0-0(down.1(y23), block.0(fresh_constant.)) down.0(f.1-1(y20, a.)) -> f_flat.0-0(down.1(y20), block.1(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.1(y9), block.0(f.0-1(fresh_constant., y56))) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 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-0(x_1, x_2)) = x_1 + x_2 POL(f.0-1(x_1, x_2)) = x_1 + x_2 POL(f.1-0(x_1, x_2)) = x_1 + x_2 POL(f.1-1(x_1, x_2)) = x_1 + x_2 POL(f_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(fresh_constant.) = 0 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-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-1(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(a.))) TOP.0(up.0(f.0-0(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(fresh_constant., x1)))) The TRS R consists of the following rules: down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (92) 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-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.0-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), x1), x0)))) 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(block.0(x_1)) = 1 + x_1 POL(block.1(x_1)) = 0 POL(down.0(x_1)) = 1 + x_1 POL(f.0-0(x_1, x_2)) = 1 + x_1 POL(f.0-1(x_1, x_2)) = 1 + x_1 POL(f.1-0(x_1, x_2)) = 0 POL(f.1-1(x_1, x_2)) = 0 POL(f_flat.0-0(x_1, x_2)) = 1 + x_1 POL(fresh_constant.) = 0 POL(up.0(x_1)) = 1 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down.0(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-1(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(a.))) TOP.0(up.0(f.0-0(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(fresh_constant., x1)))) The TRS R consists of the following rules: down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (94) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(f.1-0(x0, f.1-1(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), x1), x0)))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(a.) = 1 POL(block.0(x_1)) = 0 POL(block.1(x_1)) = 0 POL(down.0(x_1)) = 0 POL(f.0-0(x_1, x_2)) = 0 POL(f.0-1(x_1, x_2)) = 0 POL(f.1-0(x_1, x_2)) = x_2 POL(f.1-1(x_1, x_2)) = 1 + x_1 POL(f_flat.0-0(x_1, x_2)) = x_2 POL(fresh_constant.) = 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(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) ---------------------------------------- (95) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-1(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(a.))) TOP.0(up.0(f.0-0(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(fresh_constant., x1)))) The TRS R consists of the following rules: down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) 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.1-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(fresh_constant., 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(block.0(x_1)) = 0 POL(block.1(x_1)) = 0 POL(down.0(x_1)) = 0 POL(f.0-0(x_1, x_2)) = 0 POL(f.0-1(x_1, x_2)) = x_1 POL(f.1-0(x_1, x_2)) = x_2 POL(f.1-1(x_1, x_2)) = 0 POL(f_flat.0-0(x_1, x_2)) = x_1 + x_2 POL(fresh_constant.) = 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(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) ---------------------------------------- (97) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(f.1-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.1-0(a., x1)))) -> TOP.0(up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), x1), x0)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-1(x0, a.))) -> TOP.0(f_flat.0-0(down.0(x0), block.1(a.))) TOP.0(up.0(f.0-0(x0, fresh_constant.))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(fresh_constant.))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.0-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.0-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-0(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-0(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-0(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.1-0(x0, f.0-1(f.1-1(x1, x2), x3)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-1(f.1-1(x1, x2), x3)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(down.0(x0), block.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-0(fresh_constant., x1)))) TOP.0(up.0(f.0-0(x0, f.0-1(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.0(x0), down.0(f.0-1(fresh_constant., x1)))) TOP.0(up.0(f.1-0(x0, f.0-0(fresh_constant., x1)))) -> TOP.0(f_flat.0-0(block.1(x0), down.0(f.0-0(fresh_constant., x1)))) The TRS R consists of the following rules: down.0(f.0-1(y20, a.)) -> f_flat.0-0(down.0(y20), block.1(a.)) f_flat.0-0(block.1(x_1), up.0(x_2)) -> up.0(f.1-0(x_1, x_2)) down.0(f.0-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-0(f.1-1(a., a.), y), x))) down.0(f.0-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-0(f.0-1(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-0(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-0(f.1-1(a., a.), y), x))) down.0(f.1-0(x, f.1-1(a., y))) -> up.0(f.1-0(a., f.0-1(f.0-1(f.1-1(a., a.), y), x))) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.1-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.1-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.0(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.1-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-0(fresh_constant., y56))) down.0(f.1-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(block.1(y9), down.0(f.0-1(fresh_constant., y56))) down.0(f.0-0(y23, fresh_constant.)) -> f_flat.0-0(down.0(y23), block.0(fresh_constant.)) down.0(f.0-0(y9, f.0-0(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.0-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.0-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-0(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-0(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-1(f.1-1(y52, y53), y54))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(f.1-1(y52, y53), y54))) down.0(f.0-0(y9, f.0-0(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-0(fresh_constant., y56))) down.0(f.0-0(y9, f.0-1(fresh_constant., y56))) -> f_flat.0-0(down.0(y9), block.0(f.0-1(fresh_constant., y56))) f_flat.0-0(up.0(x_1), block.1(x_2)) -> up.0(f.0-1(x_1, x_2)) f_flat.0-0(up.0(x_1), block.0(x_2)) -> up.0(f.0-0(x_1, x_2)) f_flat.0-0(block.0(x_1), up.0(x_2)) -> up.0(f.0-0(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (98) PisEmptyProof (SOUND) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (99) TRUE ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(block(x0), down(f(f(x1, x2), x3)))) TOP(up(f(x0, f(a, x1)))) -> TOP(up(f(a, f(f(f(a, a), x1), x0)))) TOP(up(f(x0, a))) -> TOP(f_flat(down(x0), block(a))) TOP(up(f(x0, fresh_constant))) -> TOP(f_flat(down(x0), block(fresh_constant))) TOP(up(f(x0, f(f(x1, x2), x3)))) -> TOP(f_flat(down(x0), block(f(f(x1, x2), x3)))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(down(x0), block(f(fresh_constant, x1)))) TOP(up(f(x0, f(fresh_constant, x1)))) -> TOP(f_flat(block(x0), down(f(fresh_constant, x1)))) The TRS R consists of the following rules: down(f(y20, a)) -> f_flat(down(y20), block(a)) f_flat(block(x_1), up(x_2)) -> up(f(x_1, x_2)) down(f(x, f(a, y))) -> up(f(a, f(f(f(a, a), y), x))) down(f(y9, f(f(y52, y53), y54))) -> f_flat(block(y9), down(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(block(y9), down(f(fresh_constant, y56))) down(f(y23, fresh_constant)) -> f_flat(down(y23), block(fresh_constant)) down(f(y9, f(f(y52, y53), y54))) -> f_flat(down(y9), block(f(f(y52, y53), y54))) down(f(y9, f(fresh_constant, y56))) -> f_flat(down(y9), block(f(fresh_constant, y56))) f_flat(up(x_1), block(x_2)) -> up(f(x_1, x_2)) Q is empty. We have to consider all minimal (P,Q,R)-chains.