/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Outermost Termination of the given OTRS could be proven: (0) OTRS (1) Raffelsieper-Zantema-Transformation [SOUND, 0 ms] (2) QTRS (3) QTRSRRRProof [EQUIVALENT, 56 ms] (4) QTRS (5) QTRSRRRProof [EQUIVALENT, 47 ms] (6) QTRS (7) DependencyPairsProof [EQUIVALENT, 0 ms] (8) QDP (9) DependencyGraphProof [EQUIVALENT, 0 ms] (10) AND (11) QDP (12) UsableRulesProof [EQUIVALENT, 0 ms] (13) QDP (14) QDPSizeChangeProof [EQUIVALENT, 0 ms] (15) YES (16) QDP (17) UsableRulesProof [EQUIVALENT, 0 ms] (18) QDP (19) TransformationProof [EQUIVALENT, 0 ms] (20) QDP (21) DependencyGraphProof [EQUIVALENT, 0 ms] (22) QDP (23) QDPOrderProof [EQUIVALENT, 19 ms] (24) QDP (25) QDPOrderProof [EQUIVALENT, 23 ms] (26) QDP (27) QDPOrderProof [EQUIVALENT, 104 ms] (28) QDP (29) SplitQDPProof [EQUIVALENT, 0 ms] (30) AND (31) QDP (32) SemLabProof [SOUND, 0 ms] (33) QDP (34) DependencyGraphProof [EQUIVALENT, 0 ms] (35) QDP (36) MRRProof [EQUIVALENT, 329 ms] (37) QDP (38) MRRProof [EQUIVALENT, 270 ms] (39) QDP (40) DependencyGraphProof [EQUIVALENT, 0 ms] (41) QDP (42) PisEmptyProof [SOUND, 0 ms] (43) TRUE (44) QDP (45) SemLabProof [SOUND, 11.7 s] (46) QDP (47) DependencyGraphProof [EQUIVALENT, 0 ms] (48) QDP (49) UsableRulesReductionPairsProof [EQUIVALENT, 333 ms] (50) QDP (51) DependencyGraphProof [EQUIVALENT, 0 ms] (52) QDP (53) MRRProof [EQUIVALENT, 275 ms] (54) QDP (55) DependencyGraphProof [EQUIVALENT, 0 ms] (56) QDP (57) MRRProof [EQUIVALENT, 144 ms] (58) QDP (59) DependencyGraphProof [EQUIVALENT, 0 ms] (60) QDP (61) UsableRulesReductionPairsProof [EQUIVALENT, 164 ms] (62) QDP (63) MRRProof [EQUIVALENT, 223 ms] (64) QDP (65) QDPOrderProof [EQUIVALENT, 144 ms] (66) QDP (67) PisEmptyProof [EQUIVALENT, 0 ms] (68) YES ---------------------------------------- (0) Obligation: Term rewrite system R: The TRS R consists of the following rules: f(X) -> if(X, c, f(true)) if(true, X, Y) -> X if(false, X, Y) -> Y Outermost Strategy. ---------------------------------------- (1) Raffelsieper-Zantema-Transformation (SOUND) We applied the Raffelsieper-Zantema transformation to transform the outermost TRS to a standard TRS. ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(false, X, Y)) -> up(Y) top(up(x)) -> top(down(x)) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) f_flat(up(x_1)) -> up(f(x_1)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. ---------------------------------------- (3) QTRSRRRProof (EQUIVALENT) Used ordering: Polynomial interpretation [POLO]: POL(block(x_1)) = 2*x_1 POL(c) = 0 POL(down(x_1)) = 2*x_1 POL(f(x_1)) = x_1 POL(f_flat(x_1)) = 2 + 2*x_1 POL(false) = 0 POL(fresh_constant) = 0 POL(if(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 POL(if_flat(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 POL(top(x_1)) = 2*x_1 POL(true) = 0 POL(up(x_1)) = 2*x_1 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: f_flat(up(x_1)) -> up(f(x_1)) ---------------------------------------- (4) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(false, X, Y)) -> up(Y) top(up(x)) -> top(down(x)) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. ---------------------------------------- (5) QTRSRRRProof (EQUIVALENT) Used ordering: Polynomial interpretation [POLO]: POL(block(x_1)) = 2*x_1 POL(c) = 0 POL(down(x_1)) = 2*x_1 POL(f(x_1)) = 2*x_1 POL(false) = 2 POL(fresh_constant) = 0 POL(if(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 POL(if_flat(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 POL(top(x_1)) = 2*x_1 POL(true) = 0 POL(up(x_1)) = 2*x_1 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: down(if(false, X, Y)) -> up(Y) ---------------------------------------- (6) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) top(up(x)) -> top(down(x)) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. ---------------------------------------- (7) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (8) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(x)) -> TOP(down(x)) TOP(up(x)) -> DOWN(x) DOWN(if(f(y7), y8, y9)) -> IF_FLAT(down(f(y7)), block(y8), block(y9)) DOWN(if(f(y7), y8, y9)) -> DOWN(f(y7)) DOWN(if(f(y7), y8, y9)) -> IF_FLAT(block(f(y7)), down(y8), block(y9)) DOWN(if(f(y7), y8, y9)) -> DOWN(y8) DOWN(if(f(y7), y8, y9)) -> IF_FLAT(block(f(y7)), block(y8), down(y9)) DOWN(if(f(y7), y8, y9)) -> DOWN(y9) DOWN(if(if(y10, y11, y12), y13, y14)) -> IF_FLAT(down(if(y10, y11, y12)), block(y13), block(y14)) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(if(y10, y11, y12)) DOWN(if(if(y10, y11, y12), y13, y14)) -> IF_FLAT(block(if(y10, y11, y12)), down(y13), block(y14)) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(y13) DOWN(if(if(y10, y11, y12), y13, y14)) -> IF_FLAT(block(if(y10, y11, y12)), block(y13), down(y14)) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(y14) DOWN(if(c, y15, y16)) -> IF_FLAT(down(c), block(y15), block(y16)) DOWN(if(c, y15, y16)) -> DOWN(c) DOWN(if(c, y15, y16)) -> IF_FLAT(block(c), down(y15), block(y16)) DOWN(if(c, y15, y16)) -> DOWN(y15) DOWN(if(c, y15, y16)) -> IF_FLAT(block(c), block(y15), down(y16)) DOWN(if(c, y15, y16)) -> DOWN(y16) DOWN(if(fresh_constant, y21, y22)) -> IF_FLAT(down(fresh_constant), block(y21), block(y22)) DOWN(if(fresh_constant, y21, y22)) -> DOWN(fresh_constant) DOWN(if(fresh_constant, y21, y22)) -> IF_FLAT(block(fresh_constant), down(y21), block(y22)) DOWN(if(fresh_constant, y21, y22)) -> DOWN(y21) DOWN(if(fresh_constant, y21, y22)) -> IF_FLAT(block(fresh_constant), block(y21), down(y22)) DOWN(if(fresh_constant, y21, y22)) -> DOWN(y22) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) top(up(x)) -> top(down(x)) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (9) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 16 less nodes. ---------------------------------------- (10) Complex Obligation (AND) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: DOWN(if(f(y7), y8, y9)) -> DOWN(y9) DOWN(if(f(y7), y8, y9)) -> DOWN(y8) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(if(y10, y11, y12)) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(y13) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(y14) DOWN(if(c, y15, y16)) -> DOWN(y15) DOWN(if(c, y15, y16)) -> DOWN(y16) DOWN(if(fresh_constant, y21, y22)) -> DOWN(y21) DOWN(if(fresh_constant, y21, y22)) -> DOWN(y22) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) top(up(x)) -> top(down(x)) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) 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. ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: DOWN(if(f(y7), y8, y9)) -> DOWN(y9) DOWN(if(f(y7), y8, y9)) -> DOWN(y8) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(if(y10, y11, y12)) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(y13) DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(y14) DOWN(if(c, y15, y16)) -> DOWN(y15) DOWN(if(c, y15, y16)) -> DOWN(y16) DOWN(if(fresh_constant, y21, y22)) -> DOWN(y21) DOWN(if(fresh_constant, y21, y22)) -> DOWN(y22) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) 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(if(f(y7), y8, y9)) -> DOWN(y9) The graph contains the following edges 1 > 1 *DOWN(if(f(y7), y8, y9)) -> DOWN(y8) The graph contains the following edges 1 > 1 *DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(if(y10, y11, y12)) The graph contains the following edges 1 > 1 *DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(y13) The graph contains the following edges 1 > 1 *DOWN(if(if(y10, y11, y12), y13, y14)) -> DOWN(y14) The graph contains the following edges 1 > 1 *DOWN(if(c, y15, y16)) -> DOWN(y15) The graph contains the following edges 1 > 1 *DOWN(if(c, y15, y16)) -> DOWN(y16) The graph contains the following edges 1 > 1 *DOWN(if(fresh_constant, y21, y22)) -> DOWN(y21) The graph contains the following edges 1 > 1 *DOWN(if(fresh_constant, y21, y22)) -> DOWN(y22) The graph contains the following edges 1 > 1 ---------------------------------------- (15) YES ---------------------------------------- (16) 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)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) top(up(x)) -> top(down(x)) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) 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. ---------------------------------------- (18) 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)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) 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))) -> TOP(up(if(x0, c, f(true)))),TOP(up(f(x0))) -> TOP(up(if(x0, c, f(true))))) (TOP(up(if(true, x0, x1))) -> TOP(up(x0)),TOP(up(if(true, x0, x1))) -> TOP(up(x0))) (TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(down(f(x0)), block(x1), block(x2))),TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(down(f(x0)), block(x1), block(x2)))) (TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2))),TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2)))) (TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2))),TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2)))) (TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4))),TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4)))) (TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4))),TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4)))) (TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4))),TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4)))) (TOP(up(if(c, x0, x1))) -> TOP(if_flat(down(c), block(x0), block(x1))),TOP(up(if(c, x0, x1))) -> TOP(if_flat(down(c), block(x0), block(x1)))) (TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1))),TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1)))) (TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1))),TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1)))) (TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(down(fresh_constant), block(x0), block(x1))),TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(down(fresh_constant), block(x0), block(x1)))) (TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1))),TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1)))) (TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1))),TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1)))) ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(f(x0))) -> TOP(up(if(x0, c, f(true)))) TOP(up(if(true, x0, x1))) -> TOP(up(x0)) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(down(f(x0)), block(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(down(c), block(x0), block(x1))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(down(fresh_constant), block(x0), block(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(if(true, x0, x1))) -> TOP(up(x0)) TOP(up(f(x0))) -> TOP(up(if(x0, c, f(true)))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(down(f(x0)), block(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(f(x0))) -> TOP(up(if(x0, c, f(true)))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP(x_1)) = x_1 POL(block(x_1)) = x_1 POL(c) = 0 POL(down(x_1)) = x_1 POL(f(x_1)) = 1 POL(fresh_constant) = 0 POL(if(x_1, x_2, x_3)) = x_2 POL(if_flat(x_1, x_2, x_3)) = x_2 POL(true) = 0 POL(up(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(f(X)) -> up(if(X, c, f(true))) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(if(true, x0, x1))) -> TOP(up(x0)) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(down(f(x0)), block(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(if(true, x0, x1))) -> TOP(up(x0)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP(x_1)) = x_1 POL(block(x_1)) = 1 + x_1 POL(c) = 0 POL(down(x_1)) = 1 + x_1 POL(f(x_1)) = 1 POL(fresh_constant) = 0 POL(if(x_1, x_2, x_3)) = 1 + x_2 POL(if_flat(x_1, x_2, x_3)) = 1 + x_2 POL(true) = 0 POL(up(x_1)) = 1 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(f(X)) -> up(if(X, c, f(true))) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(down(f(x0)), block(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(down(f(x0)), block(x1), block(x2))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO]: Non-tuple symbols: <<< M( true ) = [[0], [0]] >>> <<< M( c ) = [[0], [0]] >>> <<< M( if_flat_3(x_1, ..., x_3) ) = [[0], [0]] + [[0, 1], [0, 1]] * x_1 + [[1, 1], [1, 1]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< M( block_1(x_1) ) = [[0], [0]] + [[0, 1], [1, 0]] * x_1 >>> <<< M( down_1(x_1) ) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< M( f_1(x_1) ) = [[1], [0]] + [[1, 0], [1, 0]] * x_1 >>> <<< M( if_3(x_1, ..., x_3) ) = [[0], [0]] + [[1, 0], [1, 0]] * x_1 + [[1, 1], [1, 1]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< M( fresh_constant ) = [[0], [0]] >>> <<< M( up_1(x_1) ) = [[0], [0]] + [[0, 1], [1, 0]] * x_1 >>> Tuple symbols: <<< M( TOP_1(x_1) ) = [[0]] + [[0, 1]] * x_1 >>> Matrix type: We used a basic matrix type which is not further parametrizeable. As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order. The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: down(f(X)) -> up(if(X, c, f(true))) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) SplitQDPProof (EQUIVALENT) We show in the first subproof that some pairs and rules can be removed, afterwards, we continue with the remaining DP-Problem ---------------------------------------- (30) Complex Obligation (AND) ---------------------------------------- (31) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(down(fresh_constant), block(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (32) 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. true: 0 c: 0 if_flat: 0 block: 0 down: 0 f: 0 if: 0 fresh_constant: 1 up: 0 TOP: 0 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.1(x1), block.0(x2))) TOP.0(up.0(if.0-1-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.1(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.1(x1), block.0(x2))) TOP.0(up.0(if.0-1-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.1(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.0(x1), down.1(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-1-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.1(x1), down.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.0(x1), down.1(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-1-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.1(x1), down.1(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.1(x0), block.0(x1))) TOP.0(up.0(if.0-1-1(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.1(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.0(x0), down.1(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-1-1(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.1(x0), down.1(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.1-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.1-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.1(x0), block.0(x1))) TOP.0(up.0(if.1-1-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.1(x0), block.1(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.1-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.1(x1))) TOP.0(up.0(if.1-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.0(x1))) TOP.0(up.0(if.1-1-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.1(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.0(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.0(true.))) down.0(if.0-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-1(true., X, Y)) -> up.0(X) down.0(if.0-1-0(true., X, Y)) -> up.1(X) down.0(if.0-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.0(y21), block.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.1(y21), block.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.1(y21), block.1(y22)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.1(y22)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (34) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 48 less nodes. ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.1-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.1-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.0(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.0(true.))) down.0(if.0-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-1(true., X, Y)) -> up.0(X) down.0(if.0-1-0(true., X, Y)) -> up.1(X) down.0(if.0-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.0(y21), block.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.1(y21), block.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.1(y21), block.1(y22)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.1(y22)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) 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(X)) -> up.0(if.1-0-0(X, c., f.0(true.))) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(c.) = 0 POL(down.0(x_1)) = x_1 POL(down.1(x_1)) = x_1 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = 1 + x_1 POL(fresh_constant.) = 0 POL(if.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(true.) = 0 POL(up.0(x_1)) = x_1 POL(up.1(x_1)) = x_1 ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.1-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.1-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.0(true.))) down.0(if.0-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-1(true., X, Y)) -> up.0(X) down.0(if.0-1-0(true., X, Y)) -> up.1(X) down.0(if.0-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.0(y21), block.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.1(y21), block.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.1(y21), block.1(y22)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.1(y22)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) 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(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.0(y21), block.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.1(y21), block.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(down.1(fresh_constant.), block.1(y21), block.1(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.1-1-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.1(y22)) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(c.) = 0 POL(down.0(x_1)) = 1 + x_1 POL(down.1(x_1)) = x_1 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = x_1 POL(fresh_constant.) = 0 POL(if.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(true.) = 0 POL(up.0(x_1)) = 1 + x_1 POL(up.1(x_1)) = 1 + x_1 ---------------------------------------- (39) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.1-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.1-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.0(true.))) down.0(if.0-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-1(true., X, Y)) -> up.0(X) down.0(if.0-1-0(true., X, Y)) -> up.1(X) down.0(if.0-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.0(y22)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (40) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. ---------------------------------------- (41) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.0-0-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-0-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.0-0-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.1-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.1-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.1-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.0-0-0(block.1(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.0(true.))) down.0(if.0-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-1(true., X, Y)) -> up.0(X) down.0(if.0-1-0(true., X, Y)) -> up.1(X) down.0(if.0-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-0-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-0-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-0-0(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-0-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.1-0-1(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.1-0-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.1-1-0(fresh_constant., y21, y22)) -> if_flat.0-0-0(block.1(fresh_constant.), block.1(y21), down.0(y22)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-0-0(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (42) PisEmptyProof (SOUND) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (43) TRUE ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), down(x1), block(x2))) TOP(up(if(f(x0), x1, x2))) -> TOP(if_flat(block(f(x0)), block(x1), down(x2))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(down(if(x0, x1, x2)), block(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), down(x3), block(x4))) TOP(up(if(if(x0, x1, x2), x3, x4))) -> TOP(if_flat(block(if(x0, x1, x2)), block(x3), down(x4))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), down(x0), block(x1))) TOP(up(if(c, x0, x1))) -> TOP(if_flat(block(c), block(x0), down(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), down(x0), block(x1))) TOP(up(if(fresh_constant, x0, x1))) -> TOP(if_flat(block(fresh_constant), block(x0), down(x1))) The TRS R consists of the following rules: down(f(X)) -> up(if(X, c, f(true))) down(if(true, X, Y)) -> up(X) down(if(f(y7), y8, y9)) -> if_flat(down(f(y7)), block(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), down(y8), block(y9)) down(if(f(y7), y8, y9)) -> if_flat(block(f(y7)), block(y8), down(y9)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(down(if(y10, y11, y12)), block(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), down(y13), block(y14)) down(if(if(y10, y11, y12), y13, y14)) -> if_flat(block(if(y10, y11, y12)), block(y13), down(y14)) down(if(c, y15, y16)) -> if_flat(down(c), block(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), down(y15), block(y16)) down(if(c, y15, y16)) -> if_flat(block(c), block(y15), down(y16)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), down(y21), block(y22)) down(if(fresh_constant, y21, y22)) -> if_flat(block(fresh_constant), block(y21), down(y22)) if_flat(block(x_1), block(x_2), up(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(block(x_1), up(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) if_flat(up(x_1), block(x_2), block(x_3)) -> up(if(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) 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. true: 1 c: 0 if_flat: 0 block: 1 down: 0 f: 0 if: 0 fresh_constant: 0 up: 0 TOP: 0 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.1(x1), block.0(x2))) TOP.0(up.0(if.0-1-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.1(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.1(x1), block.0(x2))) TOP.0(up.0(if.0-1-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.1(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.1(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-1-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.1(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-1-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.1(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.1(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.1(x0), block.0(x1))) TOP.0(up.0(if.0-1-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.1(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.1(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-1-1(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.1(x0), block.0(x1))) TOP.0(up.0(if.0-1-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.1(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.1(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-1-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.1(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.1-0-1(true., X, Y)) -> up.0(X) down.0(if.1-1-0(true., X, Y)) -> up.1(X) down.0(if.1-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.1(y22)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (47) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 48 less nodes. ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.1-0-1(true., X, Y)) -> up.0(X) down.0(if.1-1-0(true., X, Y)) -> up.1(X) down.0(if.1-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.1(y22)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (49) 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: down.0(if.1-0-1(true., X, Y)) -> up.0(X) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.0(x_2), up.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.1(x_1), block.1(x_2), up.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.1-0-1(block.1(x_1), up.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.1-0-0(x_1, x_2, x_3)) Used ordering: POLO with Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(c.) = 0 POL(down.0(x_1)) = x_1 POL(down.1(x_1)) = x_1 POL(f.0(x_1)) = 1 + x_1 POL(f.1(x_1)) = 1 + x_1 POL(fresh_constant.) = 0 POL(if.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-1(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.1-1-0(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.1-1-1(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if_flat.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(true.) = 0 POL(up.0(x_1)) = x_1 POL(up.1(x_1)) = 1 + x_1 ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.1-1-0(true., X, Y)) -> up.1(X) down.0(if.1-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.1(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.1-1-0(true., X, Y)) -> up.1(X) down.0(if.1-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.1(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) 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(if.1-1-0(true., X, Y)) -> up.1(X) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.1(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.1(y8), block.1(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.1(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.1(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.1(y9)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.1(y13), block.1(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.1(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.1(y14)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.1(y15), block.1(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.1(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.1(y16)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.0(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.1(y21), block.1(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.1(y22)) down.0(if.0-1-1(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.1(y22)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.1-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.1-0-1(x_1, x_2, x_3)) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(c.) = 0 POL(down.0(x_1)) = 1 + x_1 POL(down.1(x_1)) = x_1 POL(f.0(x_1)) = 1 + x_1 POL(f.1(x_1)) = x_1 POL(fresh_constant.) = 0 POL(if.0-0-0(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.0-0-1(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.0-1-0(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.0-1-1(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.1-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-0(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.1-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.0-1-1(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if_flat.1-0-1(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if_flat.1-1-0(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(true.) = 0 POL(up.0(x_1)) = 1 + x_1 POL(up.1(x_1)) = 1 + x_1 ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.1-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) 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 4 less nodes. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.1-1-1(true., X, Y)) -> up.1(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) 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(if.1-1-1(true., X, Y)) -> up.1(X) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(c.) = 0 POL(down.0(x_1)) = 1 + x_1 POL(f.0(x_1)) = x_1 POL(f.1(x_1)) = x_1 POL(fresh_constant.) = 0 POL(if.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-1(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if_flat.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(true.) = 0 POL(up.0(x_1)) = 1 + x_1 POL(up.1(x_1)) = 1 + x_1 ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) 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: if_flat.0-1-1(up.1(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.1-1-0(x_1, x_2, x_3)) Used ordering: POLO with Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(c.) = 0 POL(down.0(x_1)) = x_1 POL(f.0(x_1)) = 1 + x_1 POL(f.1(x_1)) = 1 + x_1 POL(fresh_constant.) = 0 POL(if.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(true.) = 0 POL(up.0(x_1)) = x_1 POL(up.1(x_1)) = 1 + x_1 ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.0(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) 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(X)) -> up.0(if.0-0-0(X, c., f.1(true.))) Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = x_1 POL(c.) = 0 POL(down.0(x_1)) = x_1 POL(f.0(x_1)) = 1 + x_1 POL(f.1(x_1)) = x_1 POL(fresh_constant.) = 0 POL(if.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.1-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(true.) = 0 POL(up.0(x_1)) = x_1 ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The TRS R consists of the following rules: down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (65) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.0(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.0(x2))) TOP.0(up.0(if.0-0-1(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-0-1(block.0(f.1(x0)), down.0(x1), block.1(x2))) TOP.0(up.0(if.0-0-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.0(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.0(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.0(x1), down.0(x2))) TOP.0(up.0(if.0-1-0(f.1(x0), x1, x2))) -> TOP.0(if_flat.1-1-0(block.0(f.1(x0)), block.1(x1), down.0(x2))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-0-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.0-1-1(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.0(x3), block.1(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.0(x4))) TOP.0(up.0(if.0-1-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.0-1-1(down.0(if.1-0-0(x0, x1, x2)), block.1(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.0-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-0-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-0(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.0(x4))) TOP.0(up.0(if.0-0-1(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-0-1(block.0(if.1-1-1(x0, x1, x2)), down.0(x3), block.1(x4))) TOP.0(up.0(if.0-0-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.0-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.0-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-0-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-0-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-0(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-0(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.0(x3), down.0(x4))) TOP.0(up.0(if.0-1-0(if.1-1-1(x0, x1, x2), x3, x4))) -> TOP.0(if_flat.1-1-0(block.0(if.1-1-1(x0, x1, x2)), block.1(x3), down.0(x4))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(c., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(c.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(c., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(c.), block.1(x0), down.0(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.0(x1))) TOP.0(up.0(if.0-0-1(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-0-1(block.0(fresh_constant.), down.0(x0), block.1(x1))) TOP.0(up.0(if.0-0-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.0(x0), down.0(x1))) TOP.0(up.0(if.0-1-0(fresh_constant., x0, x1))) -> TOP.0(if_flat.1-1-0(block.0(fresh_constant.), block.1(x0), down.0(x1))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(TOP.0(x_1)) = x_1 POL(block.0(x_1)) = x_1 POL(block.1(x_1)) = 0 POL(c.) = 0 POL(down.0(x_1)) = x_1 POL(f.0(x_1)) = 1 + x_1 POL(f.1(x_1)) = 1 + x_1 POL(fresh_constant.) = 0 POL(if.0-0-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if.0-0-1(x_1, x_2, x_3)) = x_1 + x_2 POL(if.0-1-0(x_1, x_2, x_3)) = x_1 + x_3 POL(if.0-1-1(x_1, x_2, x_3)) = x_1 POL(if.1-0-0(x_1, x_2, x_3)) = x_1 + x_2 POL(if.1-0-1(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.1-1-0(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(if.1-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.0-1-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-0-1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(if_flat.1-1-0(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(true.) = 1 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.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) ---------------------------------------- (66) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: down.0(f.1(X)) -> up.0(if.1-0-0(X, c., f.1(true.))) down.0(if.1-0-0(true., X, Y)) -> up.0(X) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.0(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.0(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.0(y8), block.1(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.0(y9)) down.0(if.0-1-1(f.1(y7), y8, y9)) -> if_flat.0-1-1(down.0(f.1(y7)), block.1(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.0(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.0(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.0(y9)) down.0(if.0-0-1(f.1(y7), y8, y9)) -> if_flat.1-0-1(block.0(f.1(y7)), down.0(y8), block.1(y9)) down.0(if.0-0-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.0(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.0(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.0(y8), down.0(y9)) down.0(if.0-1-0(f.1(y7), y8, y9)) -> if_flat.1-1-0(block.0(f.1(y7)), block.1(y8), down.0(y9)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.0-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-0-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-0(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.0(y13), block.1(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.0(y14)) down.0(if.0-1-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.0-1-1(down.0(if.1-1-1(y10, y11, y12)), block.1(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.0-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-0-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-0(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.0(y14)) down.0(if.0-0-1(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-0-1(block.0(if.1-1-1(y10, y11, y12)), down.0(y13), block.1(y14)) down.0(if.0-0-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.0-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.0-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-0-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-0-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-0(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-0(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.0(y13), down.0(y14)) down.0(if.0-1-0(if.1-1-1(y10, y11, y12), y13, y14)) -> if_flat.1-1-0(block.0(if.1-1-1(y10, y11, y12)), block.1(y13), down.0(y14)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.0(y15), block.1(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.0(y16)) down.0(if.0-1-1(c., y15, y16)) -> if_flat.0-1-1(down.0(c.), block.1(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.0(y16)) down.0(if.0-0-1(c., y15, y16)) -> if_flat.1-0-1(block.0(c.), down.0(y15), block.1(y16)) down.0(if.0-0-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.0(y15), down.0(y16)) down.0(if.0-1-0(c., y15, y16)) -> if_flat.1-1-0(block.0(c.), block.1(y15), down.0(y16)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.0(y22)) down.0(if.0-0-1(fresh_constant., y21, y22)) -> if_flat.1-0-1(block.0(fresh_constant.), down.0(y21), block.1(y22)) down.0(if.0-0-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.0(y21), down.0(y22)) down.0(if.0-1-0(fresh_constant., y21, y22)) -> if_flat.1-1-0(block.0(fresh_constant.), block.1(y21), down.0(y22)) if_flat.1-1-0(block.0(x_1), block.1(x_2), up.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.1-1-0(block.0(x_1), block.0(x_2), up.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.1-0-1(block.0(x_1), up.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.1(x_3)) -> up.0(if.0-1-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.1(x_2), block.0(x_3)) -> up.0(if.0-1-0(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.1(x_3)) -> up.0(if.0-0-1(x_1, x_2, x_3)) if_flat.0-1-1(up.0(x_1), block.0(x_2), block.0(x_3)) -> up.0(if.0-0-0(x_1, x_2, x_3)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (67) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (68) YES