329.45/150.56 MAYBE 329.45/150.58 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 329.45/150.58 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 329.45/150.58 329.45/150.58 329.45/150.58 Outermost Termination of the given OTRS could not be shown: 329.45/150.58 329.45/150.58 (0) OTRS 329.45/150.58 (1) Thiemann-SpecialC-Transformation [EQUIVALENT, 0 ms] 329.45/150.58 (2) QTRS 329.45/150.58 (3) DependencyPairsProof [EQUIVALENT, 0 ms] 329.45/150.58 (4) QDP 329.45/150.58 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (6) AND 329.45/150.58 (7) QDP 329.45/150.58 (8) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (9) QDP 329.45/150.58 (10) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (11) QDP 329.45/150.58 (12) MRRProof [EQUIVALENT, 11 ms] 329.45/150.58 (13) QDP 329.45/150.58 (14) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (15) QDP 329.45/150.58 (16) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (17) QDP 329.45/150.58 (18) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (19) QDP 329.45/150.58 (20) UsableRulesReductionPairsProof [EQUIVALENT, 4 ms] 329.45/150.58 (21) QDP 329.45/150.58 (22) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (23) TRUE 329.45/150.58 (24) QDP 329.45/150.58 (25) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (26) QDP 329.45/150.58 (27) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (28) QDP 329.45/150.58 (29) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (30) QDP 329.45/150.58 (31) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (32) QDP 329.45/150.58 (33) QDPOrderProof [EQUIVALENT, 13 ms] 329.45/150.58 (34) QDP 329.45/150.58 (35) SplitQDPProof [EQUIVALENT, 0 ms] 329.45/150.58 (36) AND 329.45/150.58 (37) QDP 329.45/150.58 (38) SemLabProof [SOUND, 0 ms] 329.45/150.58 (39) QDP 329.45/150.58 (40) UsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 329.45/150.58 (41) QDP 329.45/150.58 (42) MRRProof [EQUIVALENT, 0 ms] 329.45/150.58 (43) QDP 329.45/150.58 (44) QDPOrderProof [EQUIVALENT, 8 ms] 329.45/150.58 (45) QDP 329.45/150.58 (46) QDPOrderProof [EQUIVALENT, 2 ms] 329.45/150.58 (47) QDP 329.45/150.58 (48) QDPOrderProof [EQUIVALENT, 0 ms] 329.45/150.58 (49) QDP 329.45/150.58 (50) QDPOrderProof [EQUIVALENT, 6 ms] 329.45/150.58 (51) QDP 329.45/150.58 (52) UsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 329.45/150.58 (53) QDP 329.45/150.58 (54) PisEmptyProof [SOUND, 0 ms] 329.45/150.58 (55) TRUE 329.45/150.58 (56) QDP 329.45/150.58 (57) TransformationProof [SOUND, 0 ms] 329.45/150.58 (58) QDP 329.45/150.58 (59) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (60) QDP 329.45/150.58 (61) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (62) QDP 329.45/150.58 (63) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (64) QDP 329.45/150.58 (65) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (66) QDP 329.45/150.58 (67) Trivial-Transformation [SOUND, 0 ms] 329.45/150.58 (68) QTRS 329.45/150.58 (69) DependencyPairsProof [EQUIVALENT, 0 ms] 329.45/150.58 (70) QDP 329.45/150.58 (71) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (72) AND 329.45/150.58 (73) QDP 329.45/150.58 (74) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (75) QDP 329.45/150.58 (76) QDPSizeChangeProof [EQUIVALENT, 0 ms] 329.45/150.58 (77) YES 329.45/150.58 (78) QDP 329.45/150.58 (79) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (80) QDP 329.45/150.58 (81) NonTerminationLoopProof [COMPLETE, 0 ms] 329.45/150.58 (82) NO 329.45/150.58 (83) Raffelsieper-Zantema-Transformation [SOUND, 0 ms] 329.45/150.58 (84) QTRS 329.45/150.58 (85) AAECC Innermost [EQUIVALENT, 22 ms] 329.45/150.58 (86) QTRS 329.45/150.58 (87) DependencyPairsProof [EQUIVALENT, 35 ms] 329.45/150.58 (88) QDP 329.45/150.58 (89) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (90) AND 329.45/150.58 (91) QDP 329.45/150.58 (92) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (93) QDP 329.45/150.58 (94) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (95) QDP 329.45/150.58 (96) QDPSizeChangeProof [EQUIVALENT, 0 ms] 329.45/150.58 (97) YES 329.45/150.58 (98) QDP 329.45/150.58 (99) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (100) QDP 329.45/150.58 (101) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (102) QDP 329.45/150.58 (103) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (104) QDP 329.45/150.58 (105) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (106) QDP 329.45/150.58 (107) UsableRulesProof [EQUIVALENT, 0 ms] 329.45/150.58 (108) QDP 329.45/150.58 (109) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (110) QDP 329.45/150.58 (111) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (112) QDP 329.45/150.58 (113) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (114) QDP 329.45/150.58 (115) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (116) QDP 329.45/150.58 (117) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (118) QDP 329.45/150.58 (119) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (120) QDP 329.45/150.58 (121) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (122) QDP 329.45/150.58 (123) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (124) QDP 329.45/150.58 (125) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (126) QDP 329.45/150.58 (127) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (128) QDP 329.45/150.58 (129) TransformationProof [EQUIVALENT, 0 ms] 329.45/150.58 (130) QDP 329.45/150.58 (131) QDPOrderProof [EQUIVALENT, 24 ms] 329.45/150.58 (132) QDP 329.45/150.58 (133) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (134) QDP 329.45/150.58 (135) QDPOrderProof [EQUIVALENT, 18 ms] 329.45/150.58 (136) QDP 329.45/150.58 (137) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (138) QDP 329.45/150.58 (139) QDPOrderProof [EQUIVALENT, 12 ms] 329.45/150.58 (140) QDP 329.45/150.58 (141) SplitQDPProof [EQUIVALENT, 0 ms] 329.45/150.58 (142) AND 329.45/150.58 (143) QDP 329.45/150.58 (144) SemLabProof [SOUND, 0 ms] 329.45/150.58 (145) QDP 329.45/150.58 (146) UsableRulesReductionPairsProof [EQUIVALENT, 10 ms] 329.45/150.58 (147) QDP 329.45/150.58 (148) MRRProof [EQUIVALENT, 8 ms] 329.45/150.58 (149) QDP 329.45/150.58 (150) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (151) QDP 329.45/150.58 (152) PisEmptyProof [SOUND, 0 ms] 329.45/150.58 (153) TRUE 329.45/150.58 (154) QDP 329.45/150.58 (155) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (156) QDP 329.45/150.58 (157) SplitQDPProof [EQUIVALENT, 0 ms] 329.45/150.58 (158) AND 329.45/150.58 (159) QDP 329.45/150.58 (160) SemLabProof [SOUND, 0 ms] 329.45/150.58 (161) QDP 329.45/150.58 (162) UsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 329.45/150.58 (163) QDP 329.45/150.58 (164) MRRProof [EQUIVALENT, 7 ms] 329.45/150.58 (165) QDP 329.45/150.58 (166) DependencyGraphProof [EQUIVALENT, 0 ms] 329.45/150.58 (167) QDP 329.45/150.58 (168) PisEmptyProof [SOUND, 0 ms] 329.45/150.58 (169) TRUE 329.45/150.58 (170) QDP 329.45/150.58 (171) QReductionProof [EQUIVALENT, 0 ms] 329.45/150.58 (172) QDP 329.45/150.58 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (0) 329.45/150.58 Obligation: 329.45/150.58 Term rewrite system R: 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 a -> f(a) 329.45/150.58 f(f(x)) -> b 329.45/150.58 0(f(x)) -> 1(x) 329.45/150.58 1(f(x)) -> 2(x) 329.45/150.58 2(f(x)) -> f(0(x)) 329.45/150.58 329.45/150.58 329.45/150.58 329.45/150.58 Outermost Strategy. 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (1) Thiemann-SpecialC-Transformation (EQUIVALENT) 329.45/150.58 We applied the Thiemann-SpecialC transformation to transform the outermost TRS to an innermost TRS. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (2) 329.45/150.58 Obligation: 329.45/150.58 Q restricted rewrite system: 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 top(go_up(x)) -> top(reduce(x)) 329.45/150.58 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.58 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.58 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.58 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.58 reduce(a) -> go_up(f(a)) 329.45/150.58 redex_f(f(x)) -> result_f(b) 329.45/150.58 redex_0(f(x)) -> result_0(1(x)) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 check_f(result_f(x)) -> go_up(x) 329.45/150.58 check_0(result_0(x)) -> go_up(x) 329.45/150.58 check_1(result_1(x)) -> go_up(x) 329.45/150.58 check_2(result_2(x)) -> go_up(x) 329.45/150.58 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.58 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.58 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.58 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.58 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.58 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.58 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.58 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 top(go_up(x0)) 329.45/150.58 reduce(f(x0)) 329.45/150.58 reduce(0(x0)) 329.45/150.58 reduce(1(x0)) 329.45/150.58 reduce(2(x0)) 329.45/150.58 reduce(a) 329.45/150.58 redex_f(f(x0)) 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 check_f(result_f(x0)) 329.45/150.58 check_0(result_0(x0)) 329.45/150.58 check_1(result_1(x0)) 329.45/150.58 check_2(result_2(x0)) 329.45/150.58 check_f(redex_f(x0)) 329.45/150.58 check_0(redex_0(x0)) 329.45/150.58 check_1(redex_1(x0)) 329.45/150.58 check_2(redex_2(x0)) 329.45/150.58 in_f_1(go_up(x0)) 329.45/150.58 in_0_1(go_up(x0)) 329.45/150.58 in_1_1(go_up(x0)) 329.45/150.58 in_2_1(go_up(x0)) 329.45/150.58 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (3) DependencyPairsProof (EQUIVALENT) 329.45/150.58 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (4) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 TOP(go_up(x)) -> TOP(reduce(x)) 329.45/150.58 TOP(go_up(x)) -> REDUCE(x) 329.45/150.58 REDUCE(f(x_1)) -> CHECK_F(redex_f(x_1)) 329.45/150.58 REDUCE(f(x_1)) -> REDEX_F(x_1) 329.45/150.58 REDUCE(0(x_1)) -> CHECK_0(redex_0(x_1)) 329.45/150.58 REDUCE(0(x_1)) -> REDEX_0(x_1) 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 REDUCE(1(x_1)) -> REDEX_1(x_1) 329.45/150.58 REDUCE(2(x_1)) -> CHECK_2(redex_2(x_1)) 329.45/150.58 REDUCE(2(x_1)) -> REDEX_2(x_1) 329.45/150.58 CHECK_F(redex_f(x_1)) -> IN_F_1(reduce(x_1)) 329.45/150.58 CHECK_F(redex_f(x_1)) -> REDUCE(x_1) 329.45/150.58 CHECK_0(redex_0(x_1)) -> IN_0_1(reduce(x_1)) 329.45/150.58 CHECK_0(redex_0(x_1)) -> REDUCE(x_1) 329.45/150.58 CHECK_1(redex_1(x_1)) -> IN_1_1(reduce(x_1)) 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 CHECK_2(redex_2(x_1)) -> IN_2_1(reduce(x_1)) 329.45/150.58 CHECK_2(redex_2(x_1)) -> REDUCE(x_1) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 top(go_up(x)) -> top(reduce(x)) 329.45/150.58 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.58 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.58 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.58 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.58 reduce(a) -> go_up(f(a)) 329.45/150.58 redex_f(f(x)) -> result_f(b) 329.45/150.58 redex_0(f(x)) -> result_0(1(x)) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 check_f(result_f(x)) -> go_up(x) 329.45/150.58 check_0(result_0(x)) -> go_up(x) 329.45/150.58 check_1(result_1(x)) -> go_up(x) 329.45/150.58 check_2(result_2(x)) -> go_up(x) 329.45/150.58 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.58 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.58 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.58 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.58 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.58 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.58 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.58 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 top(go_up(x0)) 329.45/150.58 reduce(f(x0)) 329.45/150.58 reduce(0(x0)) 329.45/150.58 reduce(1(x0)) 329.45/150.58 reduce(2(x0)) 329.45/150.58 reduce(a) 329.45/150.58 redex_f(f(x0)) 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 check_f(result_f(x0)) 329.45/150.58 check_0(result_0(x0)) 329.45/150.58 check_1(result_1(x0)) 329.45/150.58 check_2(result_2(x0)) 329.45/150.58 check_f(redex_f(x0)) 329.45/150.58 check_0(redex_0(x0)) 329.45/150.58 check_1(redex_1(x0)) 329.45/150.58 check_2(redex_2(x0)) 329.45/150.58 in_f_1(go_up(x0)) 329.45/150.58 in_0_1(go_up(x0)) 329.45/150.58 in_1_1(go_up(x0)) 329.45/150.58 in_2_1(go_up(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (5) DependencyGraphProof (EQUIVALENT) 329.45/150.58 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 11 less nodes. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (6) 329.45/150.58 Complex Obligation (AND) 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (7) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 REDUCE(0(x_1)) -> CHECK_0(redex_0(x_1)) 329.45/150.58 CHECK_0(redex_0(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(2(x_1)) -> CHECK_2(redex_2(x_1)) 329.45/150.58 CHECK_2(redex_2(x_1)) -> REDUCE(x_1) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 top(go_up(x)) -> top(reduce(x)) 329.45/150.58 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.58 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.58 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.58 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.58 reduce(a) -> go_up(f(a)) 329.45/150.58 redex_f(f(x)) -> result_f(b) 329.45/150.58 redex_0(f(x)) -> result_0(1(x)) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 check_f(result_f(x)) -> go_up(x) 329.45/150.58 check_0(result_0(x)) -> go_up(x) 329.45/150.58 check_1(result_1(x)) -> go_up(x) 329.45/150.58 check_2(result_2(x)) -> go_up(x) 329.45/150.58 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.58 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.58 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.58 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.58 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.58 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.58 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.58 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 top(go_up(x0)) 329.45/150.58 reduce(f(x0)) 329.45/150.58 reduce(0(x0)) 329.45/150.58 reduce(1(x0)) 329.45/150.58 reduce(2(x0)) 329.45/150.58 reduce(a) 329.45/150.58 redex_f(f(x0)) 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 check_f(result_f(x0)) 329.45/150.58 check_0(result_0(x0)) 329.45/150.58 check_1(result_1(x0)) 329.45/150.58 check_2(result_2(x0)) 329.45/150.58 check_f(redex_f(x0)) 329.45/150.58 check_0(redex_0(x0)) 329.45/150.58 check_1(redex_1(x0)) 329.45/150.58 check_2(redex_2(x0)) 329.45/150.58 in_f_1(go_up(x0)) 329.45/150.58 in_0_1(go_up(x0)) 329.45/150.58 in_1_1(go_up(x0)) 329.45/150.58 in_2_1(go_up(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (8) UsableRulesProof (EQUIVALENT) 329.45/150.58 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (9) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 REDUCE(0(x_1)) -> CHECK_0(redex_0(x_1)) 329.45/150.58 CHECK_0(redex_0(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(2(x_1)) -> CHECK_2(redex_2(x_1)) 329.45/150.58 CHECK_2(redex_2(x_1)) -> REDUCE(x_1) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 redex_0(f(x)) -> result_0(1(x)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 top(go_up(x0)) 329.45/150.58 reduce(f(x0)) 329.45/150.58 reduce(0(x0)) 329.45/150.58 reduce(1(x0)) 329.45/150.58 reduce(2(x0)) 329.45/150.58 reduce(a) 329.45/150.58 redex_f(f(x0)) 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 check_f(result_f(x0)) 329.45/150.58 check_0(result_0(x0)) 329.45/150.58 check_1(result_1(x0)) 329.45/150.58 check_2(result_2(x0)) 329.45/150.58 check_f(redex_f(x0)) 329.45/150.58 check_0(redex_0(x0)) 329.45/150.58 check_1(redex_1(x0)) 329.45/150.58 check_2(redex_2(x0)) 329.45/150.58 in_f_1(go_up(x0)) 329.45/150.58 in_0_1(go_up(x0)) 329.45/150.58 in_1_1(go_up(x0)) 329.45/150.58 in_2_1(go_up(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (10) QReductionProof (EQUIVALENT) 329.45/150.58 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 329.45/150.58 329.45/150.58 top(go_up(x0)) 329.45/150.58 reduce(f(x0)) 329.45/150.58 reduce(0(x0)) 329.45/150.58 reduce(1(x0)) 329.45/150.58 reduce(2(x0)) 329.45/150.58 reduce(a) 329.45/150.58 redex_f(f(x0)) 329.45/150.58 check_f(result_f(x0)) 329.45/150.58 check_0(result_0(x0)) 329.45/150.58 check_1(result_1(x0)) 329.45/150.58 check_2(result_2(x0)) 329.45/150.58 check_f(redex_f(x0)) 329.45/150.58 check_0(redex_0(x0)) 329.45/150.58 check_1(redex_1(x0)) 329.45/150.58 check_2(redex_2(x0)) 329.45/150.58 in_f_1(go_up(x0)) 329.45/150.58 in_0_1(go_up(x0)) 329.45/150.58 in_1_1(go_up(x0)) 329.45/150.58 in_2_1(go_up(x0)) 329.45/150.58 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (11) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 REDUCE(0(x_1)) -> CHECK_0(redex_0(x_1)) 329.45/150.58 CHECK_0(redex_0(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(2(x_1)) -> CHECK_2(redex_2(x_1)) 329.45/150.58 CHECK_2(redex_2(x_1)) -> REDUCE(x_1) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 redex_0(f(x)) -> result_0(1(x)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (12) MRRProof (EQUIVALENT) 329.45/150.58 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. 329.45/150.58 329.45/150.58 Strictly oriented dependency pairs: 329.45/150.58 329.45/150.58 REDUCE(0(x_1)) -> CHECK_0(redex_0(x_1)) 329.45/150.58 REDUCE(2(x_1)) -> CHECK_2(redex_2(x_1)) 329.45/150.58 CHECK_2(redex_2(x_1)) -> REDUCE(x_1) 329.45/150.58 329.45/150.58 Strictly oriented rules of the TRS R: 329.45/150.58 329.45/150.58 redex_0(f(x)) -> result_0(1(x)) 329.45/150.58 329.45/150.58 Used ordering: Polynomial interpretation [POLO]: 329.45/150.58 329.45/150.58 POL(0(x_1)) = 1 + 2*x_1 329.45/150.58 POL(1(x_1)) = 2*x_1 329.45/150.58 POL(2(x_1)) = 2 + 2*x_1 329.45/150.58 POL(CHECK_0(x_1)) = 1 + 2*x_1 329.45/150.58 POL(CHECK_1(x_1)) = 1 + 2*x_1 329.45/150.58 POL(CHECK_2(x_1)) = 2 + x_1 329.45/150.58 POL(REDUCE(x_1)) = 1 + 2*x_1 329.45/150.58 POL(f(x_1)) = 2 + 2*x_1 329.45/150.58 POL(redex_0(x_1)) = 2*x_1 329.45/150.58 POL(redex_1(x_1)) = 2*x_1 329.45/150.58 POL(redex_2(x_1)) = 2*x_1 329.45/150.58 POL(result_0(x_1)) = 2*x_1 329.45/150.58 POL(result_1(x_1)) = 2*x_1 329.45/150.58 POL(result_2(x_1)) = x_1 329.45/150.58 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (13) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 CHECK_0(redex_0(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (14) DependencyGraphProof (EQUIVALENT) 329.45/150.58 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (15) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (16) UsableRulesProof (EQUIVALENT) 329.45/150.58 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (17) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (18) QReductionProof (EQUIVALENT) 329.45/150.58 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 329.45/150.58 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (19) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 redex_1(f(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (20) UsableRulesReductionPairsProof (EQUIVALENT) 329.45/150.58 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. 329.45/150.58 329.45/150.58 The following dependency pairs can be deleted: 329.45/150.58 329.45/150.58 REDUCE(1(x_1)) -> CHECK_1(redex_1(x_1)) 329.45/150.58 The following rules are removed from R: 329.45/150.58 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 Used ordering: POLO with Polynomial interpretation [POLO]: 329.45/150.58 329.45/150.58 POL(1(x_1)) = 2*x_1 329.45/150.58 POL(2(x_1)) = x_1 329.45/150.58 POL(CHECK_1(x_1)) = x_1 329.45/150.58 POL(REDUCE(x_1)) = 2*x_1 329.45/150.58 POL(f(x_1)) = 2*x_1 329.45/150.58 POL(redex_1(x_1)) = 2*x_1 329.45/150.58 POL(result_1(x_1)) = 2*x_1 329.45/150.58 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (21) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 CHECK_1(redex_1(x_1)) -> REDUCE(x_1) 329.45/150.58 329.45/150.58 R is empty. 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 redex_1(f(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (22) DependencyGraphProof (EQUIVALENT) 329.45/150.58 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (23) 329.45/150.58 TRUE 329.45/150.58 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (24) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 TOP(go_up(x)) -> TOP(reduce(x)) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 top(go_up(x)) -> top(reduce(x)) 329.45/150.58 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.58 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.58 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.58 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.58 reduce(a) -> go_up(f(a)) 329.45/150.58 redex_f(f(x)) -> result_f(b) 329.45/150.58 redex_0(f(x)) -> result_0(1(x)) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 check_f(result_f(x)) -> go_up(x) 329.45/150.58 check_0(result_0(x)) -> go_up(x) 329.45/150.58 check_1(result_1(x)) -> go_up(x) 329.45/150.58 check_2(result_2(x)) -> go_up(x) 329.45/150.58 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.58 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.58 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.58 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.58 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.58 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.58 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.58 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.58 329.45/150.58 The set Q consists of the following terms: 329.45/150.58 329.45/150.58 top(go_up(x0)) 329.45/150.58 reduce(f(x0)) 329.45/150.58 reduce(0(x0)) 329.45/150.58 reduce(1(x0)) 329.45/150.58 reduce(2(x0)) 329.45/150.58 reduce(a) 329.45/150.58 redex_f(f(x0)) 329.45/150.58 redex_0(f(x0)) 329.45/150.58 redex_1(f(x0)) 329.45/150.58 redex_2(f(x0)) 329.45/150.58 check_f(result_f(x0)) 329.45/150.58 check_0(result_0(x0)) 329.45/150.58 check_1(result_1(x0)) 329.45/150.58 check_2(result_2(x0)) 329.45/150.58 check_f(redex_f(x0)) 329.45/150.58 check_0(redex_0(x0)) 329.45/150.58 check_1(redex_1(x0)) 329.45/150.58 check_2(redex_2(x0)) 329.45/150.58 in_f_1(go_up(x0)) 329.45/150.58 in_0_1(go_up(x0)) 329.45/150.58 in_1_1(go_up(x0)) 329.45/150.58 in_2_1(go_up(x0)) 329.45/150.58 329.45/150.58 We have to consider all minimal (P,Q,R)-chains. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (25) UsableRulesProof (EQUIVALENT) 329.45/150.58 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.58 ---------------------------------------- 329.45/150.58 329.45/150.58 (26) 329.45/150.58 Obligation: 329.45/150.58 Q DP problem: 329.45/150.58 The TRS P consists of the following rules: 329.45/150.58 329.45/150.58 TOP(go_up(x)) -> TOP(reduce(x)) 329.45/150.58 329.45/150.58 The TRS R consists of the following rules: 329.45/150.58 329.45/150.58 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.58 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.58 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.58 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.58 reduce(a) -> go_up(f(a)) 329.45/150.58 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.58 check_2(result_2(x)) -> go_up(x) 329.45/150.58 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.58 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.58 redex_1(f(x)) -> result_1(2(x)) 329.45/150.58 check_1(result_1(x)) -> go_up(x) 329.45/150.58 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.58 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.58 redex_0(f(x)) -> result_0(1(x)) 329.45/150.58 check_0(result_0(x)) -> go_up(x) 329.45/150.58 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.59 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.59 redex_f(f(x)) -> result_f(b) 329.45/150.59 check_f(result_f(x)) -> go_up(x) 329.45/150.59 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.59 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 top(go_up(x0)) 329.45/150.59 reduce(f(x0)) 329.45/150.59 reduce(0(x0)) 329.45/150.59 reduce(1(x0)) 329.45/150.59 reduce(2(x0)) 329.45/150.59 reduce(a) 329.45/150.59 redex_f(f(x0)) 329.45/150.59 redex_0(f(x0)) 329.45/150.59 redex_1(f(x0)) 329.45/150.59 redex_2(f(x0)) 329.45/150.59 check_f(result_f(x0)) 329.45/150.59 check_0(result_0(x0)) 329.45/150.59 check_1(result_1(x0)) 329.45/150.59 check_2(result_2(x0)) 329.45/150.59 check_f(redex_f(x0)) 329.45/150.59 check_0(redex_0(x0)) 329.45/150.59 check_1(redex_1(x0)) 329.45/150.59 check_2(redex_2(x0)) 329.45/150.59 in_f_1(go_up(x0)) 329.45/150.59 in_0_1(go_up(x0)) 329.45/150.59 in_1_1(go_up(x0)) 329.45/150.59 in_2_1(go_up(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (27) QReductionProof (EQUIVALENT) 329.45/150.59 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 329.45/150.59 329.45/150.59 top(go_up(x0)) 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (28) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP(go_up(x)) -> TOP(reduce(x)) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.59 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.59 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.59 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.59 reduce(a) -> go_up(f(a)) 329.45/150.59 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.59 check_2(result_2(x)) -> go_up(x) 329.45/150.59 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.59 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.59 redex_1(f(x)) -> result_1(2(x)) 329.45/150.59 check_1(result_1(x)) -> go_up(x) 329.45/150.59 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.59 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.59 redex_0(f(x)) -> result_0(1(x)) 329.45/150.59 check_0(result_0(x)) -> go_up(x) 329.45/150.59 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.59 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.59 redex_f(f(x)) -> result_f(b) 329.45/150.59 check_f(result_f(x)) -> go_up(x) 329.45/150.59 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.59 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce(f(x0)) 329.45/150.59 reduce(0(x0)) 329.45/150.59 reduce(1(x0)) 329.45/150.59 reduce(2(x0)) 329.45/150.59 reduce(a) 329.45/150.59 redex_f(f(x0)) 329.45/150.59 redex_0(f(x0)) 329.45/150.59 redex_1(f(x0)) 329.45/150.59 redex_2(f(x0)) 329.45/150.59 check_f(result_f(x0)) 329.45/150.59 check_0(result_0(x0)) 329.45/150.59 check_1(result_1(x0)) 329.45/150.59 check_2(result_2(x0)) 329.45/150.59 check_f(redex_f(x0)) 329.45/150.59 check_0(redex_0(x0)) 329.45/150.59 check_1(redex_1(x0)) 329.45/150.59 check_2(redex_2(x0)) 329.45/150.59 in_f_1(go_up(x0)) 329.45/150.59 in_0_1(go_up(x0)) 329.45/150.59 in_1_1(go_up(x0)) 329.45/150.59 in_2_1(go_up(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (29) TransformationProof (EQUIVALENT) 329.45/150.59 By narrowing [LPAR04] the rule TOP(go_up(x)) -> TOP(reduce(x)) at position [0] we obtained the following new rules [LPAR04]: 329.45/150.59 329.45/150.59 (TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))),TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0)))) 329.45/150.59 (TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))),TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0)))) 329.45/150.59 (TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))),TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0)))) 329.45/150.59 (TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))),TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0)))) 329.45/150.59 (TOP(go_up(a)) -> TOP(go_up(f(a))),TOP(go_up(a)) -> TOP(go_up(f(a)))) 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (30) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))) 329.45/150.59 TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))) 329.45/150.59 TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))) 329.45/150.59 TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))) 329.45/150.59 TOP(go_up(a)) -> TOP(go_up(f(a))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.59 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.59 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.59 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.59 reduce(a) -> go_up(f(a)) 329.45/150.59 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.59 check_2(result_2(x)) -> go_up(x) 329.45/150.59 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.59 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.59 redex_1(f(x)) -> result_1(2(x)) 329.45/150.59 check_1(result_1(x)) -> go_up(x) 329.45/150.59 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.59 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.59 redex_0(f(x)) -> result_0(1(x)) 329.45/150.59 check_0(result_0(x)) -> go_up(x) 329.45/150.59 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.59 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.59 redex_f(f(x)) -> result_f(b) 329.45/150.59 check_f(result_f(x)) -> go_up(x) 329.45/150.59 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.59 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce(f(x0)) 329.45/150.59 reduce(0(x0)) 329.45/150.59 reduce(1(x0)) 329.45/150.59 reduce(2(x0)) 329.45/150.59 reduce(a) 329.45/150.59 redex_f(f(x0)) 329.45/150.59 redex_0(f(x0)) 329.45/150.59 redex_1(f(x0)) 329.45/150.59 redex_2(f(x0)) 329.45/150.59 check_f(result_f(x0)) 329.45/150.59 check_0(result_0(x0)) 329.45/150.59 check_1(result_1(x0)) 329.45/150.59 check_2(result_2(x0)) 329.45/150.59 check_f(redex_f(x0)) 329.45/150.59 check_0(redex_0(x0)) 329.45/150.59 check_1(redex_1(x0)) 329.45/150.59 check_2(redex_2(x0)) 329.45/150.59 in_f_1(go_up(x0)) 329.45/150.59 in_0_1(go_up(x0)) 329.45/150.59 in_1_1(go_up(x0)) 329.45/150.59 in_2_1(go_up(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (31) UsableRulesProof (EQUIVALENT) 329.45/150.59 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (32) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))) 329.45/150.59 TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))) 329.45/150.59 TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))) 329.45/150.59 TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))) 329.45/150.59 TOP(go_up(a)) -> TOP(go_up(f(a))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.59 check_2(result_2(x)) -> go_up(x) 329.45/150.59 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.59 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.59 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.59 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.59 reduce(a) -> go_up(f(a)) 329.45/150.59 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.59 redex_1(f(x)) -> result_1(2(x)) 329.45/150.59 check_1(result_1(x)) -> go_up(x) 329.45/150.59 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.59 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.59 redex_0(f(x)) -> result_0(1(x)) 329.45/150.59 check_0(result_0(x)) -> go_up(x) 329.45/150.59 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.59 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.59 redex_f(f(x)) -> result_f(b) 329.45/150.59 check_f(result_f(x)) -> go_up(x) 329.45/150.59 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.59 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce(f(x0)) 329.45/150.59 reduce(0(x0)) 329.45/150.59 reduce(1(x0)) 329.45/150.59 reduce(2(x0)) 329.45/150.59 reduce(a) 329.45/150.59 redex_f(f(x0)) 329.45/150.59 redex_0(f(x0)) 329.45/150.59 redex_1(f(x0)) 329.45/150.59 redex_2(f(x0)) 329.45/150.59 check_f(result_f(x0)) 329.45/150.59 check_0(result_0(x0)) 329.45/150.59 check_1(result_1(x0)) 329.45/150.59 check_2(result_2(x0)) 329.45/150.59 check_f(redex_f(x0)) 329.45/150.59 check_0(redex_0(x0)) 329.45/150.59 check_1(redex_1(x0)) 329.45/150.59 check_2(redex_2(x0)) 329.45/150.59 in_f_1(go_up(x0)) 329.45/150.59 in_0_1(go_up(x0)) 329.45/150.59 in_1_1(go_up(x0)) 329.45/150.59 in_2_1(go_up(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (33) QDPOrderProof (EQUIVALENT) 329.45/150.59 We use the reduction pair processor [LPAR04,JAR06]. 329.45/150.59 329.45/150.59 329.45/150.59 The following pairs can be oriented strictly and are deleted. 329.45/150.59 329.45/150.59 TOP(go_up(a)) -> TOP(go_up(f(a))) 329.45/150.59 The remaining pairs can at least be oriented weakly. 329.45/150.59 Used ordering: Polynomial interpretation [POLO]: 329.45/150.59 329.45/150.59 POL(0(x_1)) = 0 329.45/150.59 POL(1(x_1)) = 0 329.45/150.59 POL(2(x_1)) = 0 329.45/150.59 POL(TOP(x_1)) = x_1 329.45/150.59 POL(a) = 1 329.45/150.59 POL(b) = 0 329.45/150.59 POL(check_0(x_1)) = x_1 329.45/150.59 POL(check_1(x_1)) = x_1 329.45/150.59 POL(check_2(x_1)) = x_1 329.45/150.59 POL(check_f(x_1)) = x_1 329.45/150.59 POL(f(x_1)) = 0 329.45/150.59 POL(go_up(x_1)) = x_1 329.45/150.59 POL(in_0_1(x_1)) = 0 329.45/150.59 POL(in_1_1(x_1)) = 0 329.45/150.59 POL(in_2_1(x_1)) = 0 329.45/150.59 POL(in_f_1(x_1)) = 0 329.45/150.59 POL(redex_0(x_1)) = 0 329.45/150.59 POL(redex_1(x_1)) = 0 329.45/150.59 POL(redex_2(x_1)) = 0 329.45/150.59 POL(redex_f(x_1)) = 0 329.45/150.59 POL(reduce(x_1)) = 0 329.45/150.59 POL(result_0(x_1)) = x_1 329.45/150.59 POL(result_1(x_1)) = x_1 329.45/150.59 POL(result_2(x_1)) = x_1 329.45/150.59 POL(result_f(x_1)) = x_1 329.45/150.59 329.45/150.59 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 329.45/150.59 329.45/150.59 redex_f(f(x)) -> result_f(b) 329.45/150.59 check_f(result_f(x)) -> go_up(x) 329.45/150.59 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.59 redex_0(f(x)) -> result_0(1(x)) 329.45/150.59 check_0(result_0(x)) -> go_up(x) 329.45/150.59 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.59 redex_1(f(x)) -> result_1(2(x)) 329.45/150.59 check_1(result_1(x)) -> go_up(x) 329.45/150.59 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.59 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.59 check_2(result_2(x)) -> go_up(x) 329.45/150.59 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.59 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.59 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.59 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.59 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.59 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.59 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.59 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (34) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))) 329.45/150.59 TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))) 329.45/150.59 TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))) 329.45/150.59 TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.59 check_2(result_2(x)) -> go_up(x) 329.45/150.59 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.59 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.59 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.59 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.59 reduce(a) -> go_up(f(a)) 329.45/150.59 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.59 redex_1(f(x)) -> result_1(2(x)) 329.45/150.59 check_1(result_1(x)) -> go_up(x) 329.45/150.59 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.59 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.59 redex_0(f(x)) -> result_0(1(x)) 329.45/150.59 check_0(result_0(x)) -> go_up(x) 329.45/150.59 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.59 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.59 redex_f(f(x)) -> result_f(b) 329.45/150.59 check_f(result_f(x)) -> go_up(x) 329.45/150.59 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.59 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce(f(x0)) 329.45/150.59 reduce(0(x0)) 329.45/150.59 reduce(1(x0)) 329.45/150.59 reduce(2(x0)) 329.45/150.59 reduce(a) 329.45/150.59 redex_f(f(x0)) 329.45/150.59 redex_0(f(x0)) 329.45/150.59 redex_1(f(x0)) 329.45/150.59 redex_2(f(x0)) 329.45/150.59 check_f(result_f(x0)) 329.45/150.59 check_0(result_0(x0)) 329.45/150.59 check_1(result_1(x0)) 329.45/150.59 check_2(result_2(x0)) 329.45/150.59 check_f(redex_f(x0)) 329.45/150.59 check_0(redex_0(x0)) 329.45/150.59 check_1(redex_1(x0)) 329.45/150.59 check_2(redex_2(x0)) 329.45/150.59 in_f_1(go_up(x0)) 329.45/150.59 in_0_1(go_up(x0)) 329.45/150.59 in_1_1(go_up(x0)) 329.45/150.59 in_2_1(go_up(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (35) SplitQDPProof (EQUIVALENT) 329.45/150.59 We show in the first subproof that some pairs and rules can be removed, afterwards, we continue with the remaining DP-Problem 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (36) 329.45/150.59 Complex Obligation (AND) 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (37) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))) 329.45/150.59 TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))) 329.45/150.59 TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))) 329.45/150.59 TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.59 check_2(result_2(x)) -> go_up(x) 329.45/150.59 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.59 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.59 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.59 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.59 reduce(a) -> go_up(f(a)) 329.45/150.59 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.59 redex_1(f(x)) -> result_1(2(x)) 329.45/150.59 check_1(result_1(x)) -> go_up(x) 329.45/150.59 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.59 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.59 redex_0(f(x)) -> result_0(1(x)) 329.45/150.59 check_0(result_0(x)) -> go_up(x) 329.45/150.59 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.59 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.59 redex_f(f(x)) -> result_f(b) 329.45/150.59 check_f(result_f(x)) -> go_up(x) 329.45/150.59 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.59 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce(f(x0)) 329.45/150.59 reduce(0(x0)) 329.45/150.59 reduce(1(x0)) 329.45/150.59 reduce(2(x0)) 329.45/150.59 reduce(a) 329.45/150.59 redex_f(f(x0)) 329.45/150.59 redex_0(f(x0)) 329.45/150.59 redex_1(f(x0)) 329.45/150.59 redex_2(f(x0)) 329.45/150.59 check_f(result_f(x0)) 329.45/150.59 check_0(result_0(x0)) 329.45/150.59 check_1(result_1(x0)) 329.45/150.59 check_2(result_2(x0)) 329.45/150.59 check_f(redex_f(x0)) 329.45/150.59 check_0(redex_0(x0)) 329.45/150.59 check_1(redex_1(x0)) 329.45/150.59 check_2(redex_2(x0)) 329.45/150.59 in_f_1(go_up(x0)) 329.45/150.59 in_0_1(go_up(x0)) 329.45/150.59 in_1_1(go_up(x0)) 329.45/150.59 in_2_1(go_up(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (38) SemLabProof (SOUND) 329.45/150.59 We found the following model for the rules of the TRSs R and P. 329.45/150.59 Interpretation over the domain with elements from 0 to 1. 329.45/150.59 a: 1 329.45/150.59 reduce: 0 329.45/150.59 redex_0: 0 329.45/150.59 check_1: 0 329.45/150.59 redex_f: 0 329.45/150.59 2: 1 329.45/150.59 result_2: 0 329.45/150.59 in_1_1: 0 329.45/150.59 TOP: 0 329.45/150.59 in_0_1: 0 329.45/150.59 result_0: 0 329.45/150.59 f: 0 329.45/150.59 check_0: 0 329.45/150.59 result_1: 0 329.45/150.59 result_f: 0 329.45/150.59 redex_2: 0 329.45/150.59 check_2: 0 329.45/150.59 check_f: 0 329.45/150.59 redex_1: 0 329.45/150.59 go_up: 0 329.45/150.59 in_f_1: 0 329.45/150.59 b: 0 329.45/150.59 in_2_1: 0 329.45/150.59 0: 1 329.45/150.59 1: 1 329.45/150.59 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (39) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP.0(go_up.0(f.0(x0))) -> TOP.0(check_f.0(redex_f.0(x0))) 329.45/150.59 TOP.0(go_up.0(f.1(x0))) -> TOP.0(check_f.0(redex_f.1(x0))) 329.45/150.59 TOP.0(go_up.1(0.0(x0))) -> TOP.0(check_0.0(redex_0.0(x0))) 329.45/150.59 TOP.0(go_up.1(0.1(x0))) -> TOP.0(check_0.0(redex_0.1(x0))) 329.45/150.59 TOP.0(go_up.1(1.0(x0))) -> TOP.0(check_1.0(redex_1.0(x0))) 329.45/150.59 TOP.0(go_up.1(1.1(x0))) -> TOP.0(check_1.0(redex_1.1(x0))) 329.45/150.59 TOP.0(go_up.1(2.0(x0))) -> TOP.0(check_2.0(redex_2.0(x0))) 329.45/150.59 TOP.0(go_up.1(2.1(x0))) -> TOP.0(check_2.0(redex_2.1(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 check_2.0(result_2.1(x)) -> go_up.1(x) 329.45/150.59 check_2.0(redex_2.0(x_1)) -> in_2_1.0(reduce.0(x_1)) 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 reduce.1(a.) -> go_up.0(f.1(a.)) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(result_1.0(x)) -> go_up.0(x) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_1.0(redex_1.0(x_1)) -> in_1_1.0(reduce.0(x_1)) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(result_0.0(x)) -> go_up.0(x) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 check_0.0(redex_0.0(x_1)) -> in_0_1.0(reduce.0(x_1)) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.59 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 check_f.0(result_f.1(x)) -> go_up.1(x) 329.45/150.59 check_f.0(redex_f.0(x_1)) -> in_f_1.0(reduce.0(x_1)) 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce.0(f.0(x0)) 329.45/150.59 reduce.0(f.1(x0)) 329.45/150.59 reduce.1(0.0(x0)) 329.45/150.59 reduce.1(0.1(x0)) 329.45/150.59 reduce.1(1.0(x0)) 329.45/150.59 reduce.1(1.1(x0)) 329.45/150.59 reduce.1(2.0(x0)) 329.45/150.59 reduce.1(2.1(x0)) 329.45/150.59 reduce.1(a.) 329.45/150.59 redex_f.0(f.0(x0)) 329.45/150.59 redex_f.0(f.1(x0)) 329.45/150.59 redex_0.0(f.0(x0)) 329.45/150.59 redex_0.0(f.1(x0)) 329.45/150.59 redex_1.0(f.0(x0)) 329.45/150.59 redex_1.0(f.1(x0)) 329.45/150.59 redex_2.0(f.0(x0)) 329.45/150.59 redex_2.0(f.1(x0)) 329.45/150.59 check_f.0(result_f.0(x0)) 329.45/150.59 check_f.0(result_f.1(x0)) 329.45/150.59 check_0.0(result_0.0(x0)) 329.45/150.59 check_0.0(result_0.1(x0)) 329.45/150.59 check_1.0(result_1.0(x0)) 329.45/150.59 check_1.0(result_1.1(x0)) 329.45/150.59 check_2.0(result_2.0(x0)) 329.45/150.59 check_2.0(result_2.1(x0)) 329.45/150.59 check_f.0(redex_f.0(x0)) 329.45/150.59 check_f.0(redex_f.1(x0)) 329.45/150.59 check_0.0(redex_0.0(x0)) 329.45/150.59 check_0.0(redex_0.1(x0)) 329.45/150.59 check_1.0(redex_1.0(x0)) 329.45/150.59 check_1.0(redex_1.1(x0)) 329.45/150.59 check_2.0(redex_2.0(x0)) 329.45/150.59 check_2.0(redex_2.1(x0)) 329.45/150.59 in_f_1.0(go_up.0(x0)) 329.45/150.59 in_f_1.0(go_up.1(x0)) 329.45/150.59 in_0_1.0(go_up.0(x0)) 329.45/150.59 in_0_1.0(go_up.1(x0)) 329.45/150.59 in_1_1.0(go_up.0(x0)) 329.45/150.59 in_1_1.0(go_up.1(x0)) 329.45/150.59 in_2_1.0(go_up.0(x0)) 329.45/150.59 in_2_1.0(go_up.1(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (40) UsableRulesReductionPairsProof (EQUIVALENT) 329.45/150.59 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. 329.45/150.59 329.45/150.59 No dependency pairs are removed. 329.45/150.59 329.45/150.59 The following rules are removed from R: 329.45/150.59 329.45/150.59 check_2.0(result_2.1(x)) -> go_up.1(x) 329.45/150.59 check_1.0(result_1.0(x)) -> go_up.0(x) 329.45/150.59 check_0.0(result_0.0(x)) -> go_up.0(x) 329.45/150.59 check_f.0(result_f.1(x)) -> go_up.1(x) 329.45/150.59 Used ordering: POLO with Polynomial interpretation [POLO]: 329.45/150.59 329.45/150.59 POL(0.0(x_1)) = x_1 329.45/150.59 POL(0.1(x_1)) = x_1 329.45/150.59 POL(1.0(x_1)) = x_1 329.45/150.59 POL(1.1(x_1)) = x_1 329.45/150.59 POL(2.0(x_1)) = x_1 329.45/150.59 POL(2.1(x_1)) = x_1 329.45/150.59 POL(TOP.0(x_1)) = x_1 329.45/150.59 POL(a.) = 0 329.45/150.59 POL(b.) = 0 329.45/150.59 POL(check_0.0(x_1)) = x_1 329.45/150.59 POL(check_1.0(x_1)) = x_1 329.45/150.59 POL(check_2.0(x_1)) = x_1 329.45/150.59 POL(check_f.0(x_1)) = x_1 329.45/150.59 POL(f.0(x_1)) = x_1 329.45/150.59 POL(f.1(x_1)) = x_1 329.45/150.59 POL(go_up.0(x_1)) = x_1 329.45/150.59 POL(go_up.1(x_1)) = x_1 329.45/150.59 POL(in_0_1.0(x_1)) = x_1 329.45/150.59 POL(in_1_1.0(x_1)) = x_1 329.45/150.59 POL(in_2_1.0(x_1)) = x_1 329.45/150.59 POL(in_f_1.0(x_1)) = x_1 329.45/150.59 POL(redex_0.0(x_1)) = x_1 329.45/150.59 POL(redex_0.1(x_1)) = x_1 329.45/150.59 POL(redex_1.0(x_1)) = x_1 329.45/150.59 POL(redex_1.1(x_1)) = x_1 329.45/150.59 POL(redex_2.0(x_1)) = x_1 329.45/150.59 POL(redex_2.1(x_1)) = x_1 329.45/150.59 POL(redex_f.0(x_1)) = x_1 329.45/150.59 POL(redex_f.1(x_1)) = x_1 329.45/150.59 POL(reduce.0(x_1)) = x_1 329.45/150.59 POL(reduce.1(x_1)) = x_1 329.45/150.59 POL(result_0.0(x_1)) = x_1 329.45/150.59 POL(result_0.1(x_1)) = x_1 329.45/150.59 POL(result_1.0(x_1)) = x_1 329.45/150.59 POL(result_1.1(x_1)) = x_1 329.45/150.59 POL(result_2.0(x_1)) = x_1 329.45/150.59 POL(result_2.1(x_1)) = x_1 329.45/150.59 POL(result_f.0(x_1)) = x_1 329.45/150.59 POL(result_f.1(x_1)) = x_1 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (41) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP.0(go_up.0(f.0(x0))) -> TOP.0(check_f.0(redex_f.0(x0))) 329.45/150.59 TOP.0(go_up.0(f.1(x0))) -> TOP.0(check_f.0(redex_f.1(x0))) 329.45/150.59 TOP.0(go_up.1(0.0(x0))) -> TOP.0(check_0.0(redex_0.0(x0))) 329.45/150.59 TOP.0(go_up.1(0.1(x0))) -> TOP.0(check_0.0(redex_0.1(x0))) 329.45/150.59 TOP.0(go_up.1(1.0(x0))) -> TOP.0(check_1.0(redex_1.0(x0))) 329.45/150.59 TOP.0(go_up.1(1.1(x0))) -> TOP.0(check_1.0(redex_1.1(x0))) 329.45/150.59 TOP.0(go_up.1(2.0(x0))) -> TOP.0(check_2.0(redex_2.0(x0))) 329.45/150.59 TOP.0(go_up.1(2.1(x0))) -> TOP.0(check_2.0(redex_2.1(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 reduce.1(a.) -> go_up.0(f.1(a.)) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 check_2.0(redex_2.0(x_1)) -> in_2_1.0(reduce.0(x_1)) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_1.0(redex_1.0(x_1)) -> in_1_1.0(reduce.0(x_1)) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 check_0.0(redex_0.0(x_1)) -> in_0_1.0(reduce.0(x_1)) 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.59 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 check_f.0(redex_f.0(x_1)) -> in_f_1.0(reduce.0(x_1)) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce.0(f.0(x0)) 329.45/150.59 reduce.0(f.1(x0)) 329.45/150.59 reduce.1(0.0(x0)) 329.45/150.59 reduce.1(0.1(x0)) 329.45/150.59 reduce.1(1.0(x0)) 329.45/150.59 reduce.1(1.1(x0)) 329.45/150.59 reduce.1(2.0(x0)) 329.45/150.59 reduce.1(2.1(x0)) 329.45/150.59 reduce.1(a.) 329.45/150.59 redex_f.0(f.0(x0)) 329.45/150.59 redex_f.0(f.1(x0)) 329.45/150.59 redex_0.0(f.0(x0)) 329.45/150.59 redex_0.0(f.1(x0)) 329.45/150.59 redex_1.0(f.0(x0)) 329.45/150.59 redex_1.0(f.1(x0)) 329.45/150.59 redex_2.0(f.0(x0)) 329.45/150.59 redex_2.0(f.1(x0)) 329.45/150.59 check_f.0(result_f.0(x0)) 329.45/150.59 check_f.0(result_f.1(x0)) 329.45/150.59 check_0.0(result_0.0(x0)) 329.45/150.59 check_0.0(result_0.1(x0)) 329.45/150.59 check_1.0(result_1.0(x0)) 329.45/150.59 check_1.0(result_1.1(x0)) 329.45/150.59 check_2.0(result_2.0(x0)) 329.45/150.59 check_2.0(result_2.1(x0)) 329.45/150.59 check_f.0(redex_f.0(x0)) 329.45/150.59 check_f.0(redex_f.1(x0)) 329.45/150.59 check_0.0(redex_0.0(x0)) 329.45/150.59 check_0.0(redex_0.1(x0)) 329.45/150.59 check_1.0(redex_1.0(x0)) 329.45/150.59 check_1.0(redex_1.1(x0)) 329.45/150.59 check_2.0(redex_2.0(x0)) 329.45/150.59 check_2.0(redex_2.1(x0)) 329.45/150.59 in_f_1.0(go_up.0(x0)) 329.45/150.59 in_f_1.0(go_up.1(x0)) 329.45/150.59 in_0_1.0(go_up.0(x0)) 329.45/150.59 in_0_1.0(go_up.1(x0)) 329.45/150.59 in_1_1.0(go_up.0(x0)) 329.45/150.59 in_1_1.0(go_up.1(x0)) 329.45/150.59 in_2_1.0(go_up.0(x0)) 329.45/150.59 in_2_1.0(go_up.1(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (42) MRRProof (EQUIVALENT) 329.45/150.59 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. 329.45/150.59 329.45/150.59 329.45/150.59 Strictly oriented rules of the TRS R: 329.45/150.59 329.45/150.59 check_2.0(redex_2.0(x_1)) -> in_2_1.0(reduce.0(x_1)) 329.45/150.59 check_1.0(redex_1.0(x_1)) -> in_1_1.0(reduce.0(x_1)) 329.45/150.59 check_0.0(redex_0.0(x_1)) -> in_0_1.0(reduce.0(x_1)) 329.45/150.59 check_f.0(redex_f.0(x_1)) -> in_f_1.0(reduce.0(x_1)) 329.45/150.59 329.45/150.59 Used ordering: Polynomial interpretation [POLO]: 329.45/150.59 329.45/150.59 POL(0.0(x_1)) = 1 + x_1 329.45/150.59 POL(0.1(x_1)) = 1 + x_1 329.45/150.59 POL(1.0(x_1)) = 1 + x_1 329.45/150.59 POL(1.1(x_1)) = 1 + x_1 329.45/150.59 POL(2.0(x_1)) = 1 + x_1 329.45/150.59 POL(2.1(x_1)) = 1 + x_1 329.45/150.59 POL(TOP.0(x_1)) = x_1 329.45/150.59 POL(a.) = 0 329.45/150.59 POL(b.) = 0 329.45/150.59 POL(check_0.0(x_1)) = 1 + x_1 329.45/150.59 POL(check_1.0(x_1)) = 1 + x_1 329.45/150.59 POL(check_2.0(x_1)) = 1 + x_1 329.45/150.59 POL(check_f.0(x_1)) = x_1 329.45/150.59 POL(f.0(x_1)) = x_1 329.45/150.59 POL(f.1(x_1)) = x_1 329.45/150.59 POL(go_up.0(x_1)) = 1 + x_1 329.45/150.59 POL(go_up.1(x_1)) = 1 + x_1 329.45/150.59 POL(in_0_1.0(x_1)) = 1 + x_1 329.45/150.59 POL(in_1_1.0(x_1)) = 1 + x_1 329.45/150.59 POL(in_2_1.0(x_1)) = 1 + x_1 329.45/150.59 POL(in_f_1.0(x_1)) = x_1 329.45/150.59 POL(redex_0.0(x_1)) = 1 + x_1 329.45/150.59 POL(redex_0.1(x_1)) = 1 + x_1 329.45/150.59 POL(redex_1.0(x_1)) = 1 + x_1 329.45/150.59 POL(redex_1.1(x_1)) = 1 + x_1 329.45/150.59 POL(redex_2.0(x_1)) = 1 + x_1 329.45/150.59 POL(redex_2.1(x_1)) = 1 + x_1 329.45/150.59 POL(redex_f.0(x_1)) = 1 + x_1 329.45/150.59 POL(redex_f.1(x_1)) = 1 + x_1 329.45/150.59 POL(reduce.0(x_1)) = x_1 329.45/150.59 POL(reduce.1(x_1)) = 1 + x_1 329.45/150.59 POL(result_0.1(x_1)) = x_1 329.45/150.59 POL(result_1.1(x_1)) = x_1 329.45/150.59 POL(result_2.0(x_1)) = x_1 329.45/150.59 POL(result_f.0(x_1)) = 1 + x_1 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (43) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP.0(go_up.0(f.0(x0))) -> TOP.0(check_f.0(redex_f.0(x0))) 329.45/150.59 TOP.0(go_up.0(f.1(x0))) -> TOP.0(check_f.0(redex_f.1(x0))) 329.45/150.59 TOP.0(go_up.1(0.0(x0))) -> TOP.0(check_0.0(redex_0.0(x0))) 329.45/150.59 TOP.0(go_up.1(0.1(x0))) -> TOP.0(check_0.0(redex_0.1(x0))) 329.45/150.59 TOP.0(go_up.1(1.0(x0))) -> TOP.0(check_1.0(redex_1.0(x0))) 329.45/150.59 TOP.0(go_up.1(1.1(x0))) -> TOP.0(check_1.0(redex_1.1(x0))) 329.45/150.59 TOP.0(go_up.1(2.0(x0))) -> TOP.0(check_2.0(redex_2.0(x0))) 329.45/150.59 TOP.0(go_up.1(2.1(x0))) -> TOP.0(check_2.0(redex_2.1(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 reduce.1(a.) -> go_up.0(f.1(a.)) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.59 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce.0(f.0(x0)) 329.45/150.59 reduce.0(f.1(x0)) 329.45/150.59 reduce.1(0.0(x0)) 329.45/150.59 reduce.1(0.1(x0)) 329.45/150.59 reduce.1(1.0(x0)) 329.45/150.59 reduce.1(1.1(x0)) 329.45/150.59 reduce.1(2.0(x0)) 329.45/150.59 reduce.1(2.1(x0)) 329.45/150.59 reduce.1(a.) 329.45/150.59 redex_f.0(f.0(x0)) 329.45/150.59 redex_f.0(f.1(x0)) 329.45/150.59 redex_0.0(f.0(x0)) 329.45/150.59 redex_0.0(f.1(x0)) 329.45/150.59 redex_1.0(f.0(x0)) 329.45/150.59 redex_1.0(f.1(x0)) 329.45/150.59 redex_2.0(f.0(x0)) 329.45/150.59 redex_2.0(f.1(x0)) 329.45/150.59 check_f.0(result_f.0(x0)) 329.45/150.59 check_f.0(result_f.1(x0)) 329.45/150.59 check_0.0(result_0.0(x0)) 329.45/150.59 check_0.0(result_0.1(x0)) 329.45/150.59 check_1.0(result_1.0(x0)) 329.45/150.59 check_1.0(result_1.1(x0)) 329.45/150.59 check_2.0(result_2.0(x0)) 329.45/150.59 check_2.0(result_2.1(x0)) 329.45/150.59 check_f.0(redex_f.0(x0)) 329.45/150.59 check_f.0(redex_f.1(x0)) 329.45/150.59 check_0.0(redex_0.0(x0)) 329.45/150.59 check_0.0(redex_0.1(x0)) 329.45/150.59 check_1.0(redex_1.0(x0)) 329.45/150.59 check_1.0(redex_1.1(x0)) 329.45/150.59 check_2.0(redex_2.0(x0)) 329.45/150.59 check_2.0(redex_2.1(x0)) 329.45/150.59 in_f_1.0(go_up.0(x0)) 329.45/150.59 in_f_1.0(go_up.1(x0)) 329.45/150.59 in_0_1.0(go_up.0(x0)) 329.45/150.59 in_0_1.0(go_up.1(x0)) 329.45/150.59 in_1_1.0(go_up.0(x0)) 329.45/150.59 in_1_1.0(go_up.1(x0)) 329.45/150.59 in_2_1.0(go_up.0(x0)) 329.45/150.59 in_2_1.0(go_up.1(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (44) QDPOrderProof (EQUIVALENT) 329.45/150.59 We use the reduction pair processor [LPAR04,JAR06]. 329.45/150.59 329.45/150.59 329.45/150.59 The following pairs can be oriented strictly and are deleted. 329.45/150.59 329.45/150.59 TOP.0(go_up.1(2.0(x0))) -> TOP.0(check_2.0(redex_2.0(x0))) 329.45/150.59 The remaining pairs can at least be oriented weakly. 329.45/150.59 Used ordering: Polynomial interpretation [POLO]: 329.45/150.59 329.45/150.59 POL(0.0(x_1)) = 1 329.45/150.59 POL(0.1(x_1)) = 1 + x_1 329.45/150.59 POL(1.0(x_1)) = 1 329.45/150.59 POL(1.1(x_1)) = 1 + x_1 329.45/150.59 POL(2.0(x_1)) = 0 329.45/150.59 POL(2.1(x_1)) = 1 + x_1 329.45/150.59 POL(TOP.0(x_1)) = x_1 329.45/150.59 POL(a.) = 0 329.45/150.59 POL(b.) = 1 329.45/150.59 POL(check_0.0(x_1)) = 1 329.45/150.59 POL(check_1.0(x_1)) = 1 329.45/150.59 POL(check_2.0(x_1)) = x_1 329.45/150.59 POL(check_f.0(x_1)) = 0 329.45/150.59 POL(f.0(x_1)) = x_1 329.45/150.59 POL(f.1(x_1)) = 0 329.45/150.59 POL(go_up.0(x_1)) = 0 329.45/150.59 POL(go_up.1(x_1)) = 1 329.45/150.59 POL(in_0_1.0(x_1)) = 1 329.45/150.59 POL(in_1_1.0(x_1)) = 1 329.45/150.59 POL(in_2_1.0(x_1)) = 1 329.45/150.59 POL(in_f_1.0(x_1)) = 0 329.45/150.59 POL(redex_0.0(x_1)) = 0 329.45/150.59 POL(redex_0.1(x_1)) = x_1 329.45/150.59 POL(redex_1.0(x_1)) = 0 329.45/150.59 POL(redex_1.1(x_1)) = x_1 329.45/150.59 POL(redex_2.0(x_1)) = 0 329.45/150.59 POL(redex_2.1(x_1)) = 1 329.45/150.59 POL(redex_f.0(x_1)) = x_1 329.45/150.59 POL(redex_f.1(x_1)) = x_1 329.45/150.59 POL(reduce.1(x_1)) = x_1 329.45/150.59 POL(result_0.1(x_1)) = 0 329.45/150.59 POL(result_1.1(x_1)) = 0 329.45/150.59 POL(result_2.0(x_1)) = 0 329.45/150.59 POL(result_f.0(x_1)) = 1 + x_1 329.45/150.59 329.45/150.59 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 329.45/150.59 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (45) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP.0(go_up.0(f.0(x0))) -> TOP.0(check_f.0(redex_f.0(x0))) 329.45/150.59 TOP.0(go_up.0(f.1(x0))) -> TOP.0(check_f.0(redex_f.1(x0))) 329.45/150.59 TOP.0(go_up.1(0.0(x0))) -> TOP.0(check_0.0(redex_0.0(x0))) 329.45/150.59 TOP.0(go_up.1(0.1(x0))) -> TOP.0(check_0.0(redex_0.1(x0))) 329.45/150.59 TOP.0(go_up.1(1.0(x0))) -> TOP.0(check_1.0(redex_1.0(x0))) 329.45/150.59 TOP.0(go_up.1(1.1(x0))) -> TOP.0(check_1.0(redex_1.1(x0))) 329.45/150.59 TOP.0(go_up.1(2.1(x0))) -> TOP.0(check_2.0(redex_2.1(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 reduce.1(a.) -> go_up.0(f.1(a.)) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.59 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce.0(f.0(x0)) 329.45/150.59 reduce.0(f.1(x0)) 329.45/150.59 reduce.1(0.0(x0)) 329.45/150.59 reduce.1(0.1(x0)) 329.45/150.59 reduce.1(1.0(x0)) 329.45/150.59 reduce.1(1.1(x0)) 329.45/150.59 reduce.1(2.0(x0)) 329.45/150.59 reduce.1(2.1(x0)) 329.45/150.59 reduce.1(a.) 329.45/150.59 redex_f.0(f.0(x0)) 329.45/150.59 redex_f.0(f.1(x0)) 329.45/150.59 redex_0.0(f.0(x0)) 329.45/150.59 redex_0.0(f.1(x0)) 329.45/150.59 redex_1.0(f.0(x0)) 329.45/150.59 redex_1.0(f.1(x0)) 329.45/150.59 redex_2.0(f.0(x0)) 329.45/150.59 redex_2.0(f.1(x0)) 329.45/150.59 check_f.0(result_f.0(x0)) 329.45/150.59 check_f.0(result_f.1(x0)) 329.45/150.59 check_0.0(result_0.0(x0)) 329.45/150.59 check_0.0(result_0.1(x0)) 329.45/150.59 check_1.0(result_1.0(x0)) 329.45/150.59 check_1.0(result_1.1(x0)) 329.45/150.59 check_2.0(result_2.0(x0)) 329.45/150.59 check_2.0(result_2.1(x0)) 329.45/150.59 check_f.0(redex_f.0(x0)) 329.45/150.59 check_f.0(redex_f.1(x0)) 329.45/150.59 check_0.0(redex_0.0(x0)) 329.45/150.59 check_0.0(redex_0.1(x0)) 329.45/150.59 check_1.0(redex_1.0(x0)) 329.45/150.59 check_1.0(redex_1.1(x0)) 329.45/150.59 check_2.0(redex_2.0(x0)) 329.45/150.59 check_2.0(redex_2.1(x0)) 329.45/150.59 in_f_1.0(go_up.0(x0)) 329.45/150.59 in_f_1.0(go_up.1(x0)) 329.45/150.59 in_0_1.0(go_up.0(x0)) 329.45/150.59 in_0_1.0(go_up.1(x0)) 329.45/150.59 in_1_1.0(go_up.0(x0)) 329.45/150.59 in_1_1.0(go_up.1(x0)) 329.45/150.59 in_2_1.0(go_up.0(x0)) 329.45/150.59 in_2_1.0(go_up.1(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (46) QDPOrderProof (EQUIVALENT) 329.45/150.59 We use the reduction pair processor [LPAR04,JAR06]. 329.45/150.59 329.45/150.59 329.45/150.59 The following pairs can be oriented strictly and are deleted. 329.45/150.59 329.45/150.59 TOP.0(go_up.1(0.0(x0))) -> TOP.0(check_0.0(redex_0.0(x0))) 329.45/150.59 The remaining pairs can at least be oriented weakly. 329.45/150.59 Used ordering: Polynomial interpretation [POLO]: 329.45/150.59 329.45/150.59 POL(0.0(x_1)) = 1 329.45/150.59 POL(0.1(x_1)) = 1 329.45/150.59 POL(1.0(x_1)) = 0 329.45/150.59 POL(1.1(x_1)) = 0 329.45/150.59 POL(2.0(x_1)) = 0 329.45/150.59 POL(2.1(x_1)) = 0 329.45/150.59 POL(TOP.0(x_1)) = x_1 329.45/150.59 POL(a.) = 0 329.45/150.59 POL(b.) = 1 329.45/150.59 POL(check_0.0(x_1)) = x_1 329.45/150.59 POL(check_1.0(x_1)) = x_1 329.45/150.59 POL(check_2.0(x_1)) = 0 329.45/150.59 POL(check_f.0(x_1)) = 0 329.45/150.59 POL(f.0(x_1)) = x_1 329.45/150.59 POL(f.1(x_1)) = 0 329.45/150.59 POL(go_up.0(x_1)) = 0 329.45/150.59 POL(go_up.1(x_1)) = x_1 329.45/150.59 POL(in_0_1.0(x_1)) = 1 329.45/150.59 POL(in_1_1.0(x_1)) = 0 329.45/150.59 POL(in_2_1.0(x_1)) = 0 329.45/150.59 POL(in_f_1.0(x_1)) = 0 329.45/150.59 POL(redex_0.0(x_1)) = 0 329.45/150.59 POL(redex_0.1(x_1)) = 1 329.45/150.59 POL(redex_1.0(x_1)) = 0 329.45/150.59 POL(redex_1.1(x_1)) = 0 329.45/150.59 POL(redex_2.0(x_1)) = 0 329.45/150.59 POL(redex_2.1(x_1)) = x_1 329.45/150.59 POL(redex_f.0(x_1)) = x_1 329.45/150.59 POL(redex_f.1(x_1)) = x_1 329.45/150.59 POL(reduce.1(x_1)) = x_1 329.45/150.59 POL(result_0.1(x_1)) = x_1 329.45/150.59 POL(result_1.1(x_1)) = x_1 329.45/150.59 POL(result_2.0(x_1)) = 0 329.45/150.59 POL(result_f.0(x_1)) = 1 + x_1 329.45/150.59 329.45/150.59 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 329.45/150.59 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (47) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP.0(go_up.0(f.0(x0))) -> TOP.0(check_f.0(redex_f.0(x0))) 329.45/150.59 TOP.0(go_up.0(f.1(x0))) -> TOP.0(check_f.0(redex_f.1(x0))) 329.45/150.59 TOP.0(go_up.1(0.1(x0))) -> TOP.0(check_0.0(redex_0.1(x0))) 329.45/150.59 TOP.0(go_up.1(1.0(x0))) -> TOP.0(check_1.0(redex_1.0(x0))) 329.45/150.59 TOP.0(go_up.1(1.1(x0))) -> TOP.0(check_1.0(redex_1.1(x0))) 329.45/150.59 TOP.0(go_up.1(2.1(x0))) -> TOP.0(check_2.0(redex_2.1(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 reduce.1(a.) -> go_up.0(f.1(a.)) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.59 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce.0(f.0(x0)) 329.45/150.59 reduce.0(f.1(x0)) 329.45/150.59 reduce.1(0.0(x0)) 329.45/150.59 reduce.1(0.1(x0)) 329.45/150.59 reduce.1(1.0(x0)) 329.45/150.59 reduce.1(1.1(x0)) 329.45/150.59 reduce.1(2.0(x0)) 329.45/150.59 reduce.1(2.1(x0)) 329.45/150.59 reduce.1(a.) 329.45/150.59 redex_f.0(f.0(x0)) 329.45/150.59 redex_f.0(f.1(x0)) 329.45/150.59 redex_0.0(f.0(x0)) 329.45/150.59 redex_0.0(f.1(x0)) 329.45/150.59 redex_1.0(f.0(x0)) 329.45/150.59 redex_1.0(f.1(x0)) 329.45/150.59 redex_2.0(f.0(x0)) 329.45/150.59 redex_2.0(f.1(x0)) 329.45/150.59 check_f.0(result_f.0(x0)) 329.45/150.59 check_f.0(result_f.1(x0)) 329.45/150.59 check_0.0(result_0.0(x0)) 329.45/150.59 check_0.0(result_0.1(x0)) 329.45/150.59 check_1.0(result_1.0(x0)) 329.45/150.59 check_1.0(result_1.1(x0)) 329.45/150.59 check_2.0(result_2.0(x0)) 329.45/150.59 check_2.0(result_2.1(x0)) 329.45/150.59 check_f.0(redex_f.0(x0)) 329.45/150.59 check_f.0(redex_f.1(x0)) 329.45/150.59 check_0.0(redex_0.0(x0)) 329.45/150.59 check_0.0(redex_0.1(x0)) 329.45/150.59 check_1.0(redex_1.0(x0)) 329.45/150.59 check_1.0(redex_1.1(x0)) 329.45/150.59 check_2.0(redex_2.0(x0)) 329.45/150.59 check_2.0(redex_2.1(x0)) 329.45/150.59 in_f_1.0(go_up.0(x0)) 329.45/150.59 in_f_1.0(go_up.1(x0)) 329.45/150.59 in_0_1.0(go_up.0(x0)) 329.45/150.59 in_0_1.0(go_up.1(x0)) 329.45/150.59 in_1_1.0(go_up.0(x0)) 329.45/150.59 in_1_1.0(go_up.1(x0)) 329.45/150.59 in_2_1.0(go_up.0(x0)) 329.45/150.59 in_2_1.0(go_up.1(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (48) QDPOrderProof (EQUIVALENT) 329.45/150.59 We use the reduction pair processor [LPAR04,JAR06]. 329.45/150.59 329.45/150.59 329.45/150.59 The following pairs can be oriented strictly and are deleted. 329.45/150.59 329.45/150.59 TOP.0(go_up.1(1.0(x0))) -> TOP.0(check_1.0(redex_1.0(x0))) 329.45/150.59 The remaining pairs can at least be oriented weakly. 329.45/150.59 Used ordering: Polynomial interpretation [POLO]: 329.45/150.59 329.45/150.59 POL(0.0(x_1)) = 1 329.45/150.59 POL(0.1(x_1)) = 1 329.45/150.59 POL(1.0(x_1)) = 1 329.45/150.59 POL(1.1(x_1)) = 1 329.45/150.59 POL(2.0(x_1)) = 0 329.45/150.59 POL(2.1(x_1)) = 0 329.45/150.59 POL(TOP.0(x_1)) = x_1 329.45/150.59 POL(a.) = 0 329.45/150.59 POL(b.) = 1 329.45/150.59 POL(check_0.0(x_1)) = x_1 329.45/150.59 POL(check_1.0(x_1)) = x_1 329.45/150.59 POL(check_2.0(x_1)) = 0 329.45/150.59 POL(check_f.0(x_1)) = 0 329.45/150.59 POL(f.0(x_1)) = x_1 329.45/150.59 POL(f.1(x_1)) = 0 329.45/150.59 POL(go_up.0(x_1)) = 0 329.45/150.59 POL(go_up.1(x_1)) = x_1 329.45/150.59 POL(in_0_1.0(x_1)) = 1 329.45/150.59 POL(in_1_1.0(x_1)) = 1 329.45/150.59 POL(in_2_1.0(x_1)) = 0 329.45/150.59 POL(in_f_1.0(x_1)) = 0 329.45/150.59 POL(redex_0.0(x_1)) = 1 329.45/150.59 POL(redex_0.1(x_1)) = 1 329.45/150.59 POL(redex_1.0(x_1)) = 0 329.45/150.59 POL(redex_1.1(x_1)) = 1 329.45/150.59 POL(redex_2.0(x_1)) = 0 329.45/150.59 POL(redex_2.1(x_1)) = x_1 329.45/150.59 POL(redex_f.0(x_1)) = x_1 329.45/150.59 POL(redex_f.1(x_1)) = x_1 329.45/150.59 POL(reduce.1(x_1)) = x_1 329.45/150.59 POL(result_0.1(x_1)) = x_1 329.45/150.59 POL(result_1.1(x_1)) = x_1 329.45/150.59 POL(result_2.0(x_1)) = 0 329.45/150.59 POL(result_f.0(x_1)) = 1 + x_1 329.45/150.59 329.45/150.59 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 329.45/150.59 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (49) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP.0(go_up.0(f.0(x0))) -> TOP.0(check_f.0(redex_f.0(x0))) 329.45/150.59 TOP.0(go_up.0(f.1(x0))) -> TOP.0(check_f.0(redex_f.1(x0))) 329.45/150.59 TOP.0(go_up.1(0.1(x0))) -> TOP.0(check_0.0(redex_0.1(x0))) 329.45/150.59 TOP.0(go_up.1(1.1(x0))) -> TOP.0(check_1.0(redex_1.1(x0))) 329.45/150.59 TOP.0(go_up.1(2.1(x0))) -> TOP.0(check_2.0(redex_2.1(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 reduce.1(a.) -> go_up.0(f.1(a.)) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.59 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce.0(f.0(x0)) 329.45/150.59 reduce.0(f.1(x0)) 329.45/150.59 reduce.1(0.0(x0)) 329.45/150.59 reduce.1(0.1(x0)) 329.45/150.59 reduce.1(1.0(x0)) 329.45/150.59 reduce.1(1.1(x0)) 329.45/150.59 reduce.1(2.0(x0)) 329.45/150.59 reduce.1(2.1(x0)) 329.45/150.59 reduce.1(a.) 329.45/150.59 redex_f.0(f.0(x0)) 329.45/150.59 redex_f.0(f.1(x0)) 329.45/150.59 redex_0.0(f.0(x0)) 329.45/150.59 redex_0.0(f.1(x0)) 329.45/150.59 redex_1.0(f.0(x0)) 329.45/150.59 redex_1.0(f.1(x0)) 329.45/150.59 redex_2.0(f.0(x0)) 329.45/150.59 redex_2.0(f.1(x0)) 329.45/150.59 check_f.0(result_f.0(x0)) 329.45/150.59 check_f.0(result_f.1(x0)) 329.45/150.59 check_0.0(result_0.0(x0)) 329.45/150.59 check_0.0(result_0.1(x0)) 329.45/150.59 check_1.0(result_1.0(x0)) 329.45/150.59 check_1.0(result_1.1(x0)) 329.45/150.59 check_2.0(result_2.0(x0)) 329.45/150.59 check_2.0(result_2.1(x0)) 329.45/150.59 check_f.0(redex_f.0(x0)) 329.45/150.59 check_f.0(redex_f.1(x0)) 329.45/150.59 check_0.0(redex_0.0(x0)) 329.45/150.59 check_0.0(redex_0.1(x0)) 329.45/150.59 check_1.0(redex_1.0(x0)) 329.45/150.59 check_1.0(redex_1.1(x0)) 329.45/150.59 check_2.0(redex_2.0(x0)) 329.45/150.59 check_2.0(redex_2.1(x0)) 329.45/150.59 in_f_1.0(go_up.0(x0)) 329.45/150.59 in_f_1.0(go_up.1(x0)) 329.45/150.59 in_0_1.0(go_up.0(x0)) 329.45/150.59 in_0_1.0(go_up.1(x0)) 329.45/150.59 in_1_1.0(go_up.0(x0)) 329.45/150.59 in_1_1.0(go_up.1(x0)) 329.45/150.59 in_2_1.0(go_up.0(x0)) 329.45/150.59 in_2_1.0(go_up.1(x0)) 329.45/150.59 329.45/150.59 We have to consider all minimal (P,Q,R)-chains. 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (50) QDPOrderProof (EQUIVALENT) 329.45/150.59 We use the reduction pair processor [LPAR04,JAR06]. 329.45/150.59 329.45/150.59 329.45/150.59 The following pairs can be oriented strictly and are deleted. 329.45/150.59 329.45/150.59 TOP.0(go_up.0(f.0(x0))) -> TOP.0(check_f.0(redex_f.0(x0))) 329.45/150.59 The remaining pairs can at least be oriented weakly. 329.45/150.59 Used ordering: Polynomial interpretation [POLO]: 329.45/150.59 329.45/150.59 POL(0.0(x_1)) = x_1 329.45/150.59 POL(0.1(x_1)) = x_1 329.45/150.59 POL(1.0(x_1)) = x_1 329.45/150.59 POL(1.1(x_1)) = x_1 329.45/150.59 POL(2.0(x_1)) = x_1 329.45/150.59 POL(2.1(x_1)) = x_1 329.45/150.59 POL(TOP.0(x_1)) = x_1 329.45/150.59 POL(a.) = 0 329.45/150.59 POL(b.) = 0 329.45/150.59 POL(check_0.0(x_1)) = 0 329.45/150.59 POL(check_1.0(x_1)) = 0 329.45/150.59 POL(check_2.0(x_1)) = x_1 329.45/150.59 POL(check_f.0(x_1)) = x_1 329.45/150.59 POL(f.0(x_1)) = 1 329.45/150.59 POL(f.1(x_1)) = 1 329.45/150.59 POL(go_up.0(x_1)) = x_1 329.45/150.59 POL(go_up.1(x_1)) = 0 329.45/150.59 POL(in_0_1.0(x_1)) = 0 329.45/150.59 POL(in_1_1.0(x_1)) = 0 329.45/150.59 POL(in_2_1.0(x_1)) = 0 329.45/150.59 POL(in_f_1.0(x_1)) = 1 329.45/150.59 POL(redex_0.0(x_1)) = 0 329.45/150.59 POL(redex_0.1(x_1)) = x_1 329.45/150.59 POL(redex_1.0(x_1)) = 0 329.45/150.59 POL(redex_1.1(x_1)) = x_1 329.45/150.59 POL(redex_2.0(x_1)) = x_1 329.45/150.59 POL(redex_2.1(x_1)) = 0 329.45/150.59 POL(redex_f.0(x_1)) = 0 329.45/150.59 POL(redex_f.1(x_1)) = 1 329.45/150.59 POL(reduce.1(x_1)) = x_1 329.45/150.59 POL(result_0.1(x_1)) = 0 329.45/150.59 POL(result_1.1(x_1)) = 0 329.45/150.59 POL(result_2.0(x_1)) = x_1 329.45/150.59 POL(result_f.0(x_1)) = x_1 329.45/150.59 329.45/150.59 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 329.45/150.59 329.45/150.59 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.59 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 329.45/150.59 329.45/150.59 ---------------------------------------- 329.45/150.59 329.45/150.59 (51) 329.45/150.59 Obligation: 329.45/150.59 Q DP problem: 329.45/150.59 The TRS P consists of the following rules: 329.45/150.59 329.45/150.59 TOP.0(go_up.0(f.1(x0))) -> TOP.0(check_f.0(redex_f.1(x0))) 329.45/150.59 TOP.0(go_up.1(0.1(x0))) -> TOP.0(check_0.0(redex_0.1(x0))) 329.45/150.59 TOP.0(go_up.1(1.1(x0))) -> TOP.0(check_1.0(redex_1.1(x0))) 329.45/150.59 TOP.0(go_up.1(2.1(x0))) -> TOP.0(check_2.0(redex_2.1(x0))) 329.45/150.59 329.45/150.59 The TRS R consists of the following rules: 329.45/150.59 329.45/150.59 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.59 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.59 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.59 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.59 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.59 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.59 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.59 reduce.1(a.) -> go_up.0(f.1(a.)) 329.45/150.59 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.59 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.59 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.59 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.59 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.59 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.59 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.59 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.59 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.59 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.59 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.59 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.59 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.59 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.59 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.59 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.59 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.59 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.59 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.59 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.59 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.59 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.59 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.59 329.45/150.59 The set Q consists of the following terms: 329.45/150.59 329.45/150.59 reduce.0(f.0(x0)) 329.45/150.59 reduce.0(f.1(x0)) 329.45/150.59 reduce.1(0.0(x0)) 329.45/150.60 reduce.1(0.1(x0)) 329.45/150.60 reduce.1(1.0(x0)) 329.45/150.60 reduce.1(1.1(x0)) 329.45/150.60 reduce.1(2.0(x0)) 329.45/150.60 reduce.1(2.1(x0)) 329.45/150.60 reduce.1(a.) 329.45/150.60 redex_f.0(f.0(x0)) 329.45/150.60 redex_f.0(f.1(x0)) 329.45/150.60 redex_0.0(f.0(x0)) 329.45/150.60 redex_0.0(f.1(x0)) 329.45/150.60 redex_1.0(f.0(x0)) 329.45/150.60 redex_1.0(f.1(x0)) 329.45/150.60 redex_2.0(f.0(x0)) 329.45/150.60 redex_2.0(f.1(x0)) 329.45/150.60 check_f.0(result_f.0(x0)) 329.45/150.60 check_f.0(result_f.1(x0)) 329.45/150.60 check_0.0(result_0.0(x0)) 329.45/150.60 check_0.0(result_0.1(x0)) 329.45/150.60 check_1.0(result_1.0(x0)) 329.45/150.60 check_1.0(result_1.1(x0)) 329.45/150.60 check_2.0(result_2.0(x0)) 329.45/150.60 check_2.0(result_2.1(x0)) 329.45/150.60 check_f.0(redex_f.0(x0)) 329.45/150.60 check_f.0(redex_f.1(x0)) 329.45/150.60 check_0.0(redex_0.0(x0)) 329.45/150.60 check_0.0(redex_0.1(x0)) 329.45/150.60 check_1.0(redex_1.0(x0)) 329.45/150.60 check_1.0(redex_1.1(x0)) 329.45/150.60 check_2.0(redex_2.0(x0)) 329.45/150.60 check_2.0(redex_2.1(x0)) 329.45/150.60 in_f_1.0(go_up.0(x0)) 329.45/150.60 in_f_1.0(go_up.1(x0)) 329.45/150.60 in_0_1.0(go_up.0(x0)) 329.45/150.60 in_0_1.0(go_up.1(x0)) 329.45/150.60 in_1_1.0(go_up.0(x0)) 329.45/150.60 in_1_1.0(go_up.1(x0)) 329.45/150.60 in_2_1.0(go_up.0(x0)) 329.45/150.60 in_2_1.0(go_up.1(x0)) 329.45/150.60 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (52) UsableRulesReductionPairsProof (EQUIVALENT) 329.45/150.60 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. 329.45/150.60 329.45/150.60 No dependency pairs are removed. 329.45/150.60 329.45/150.60 The following rules are removed from R: 329.45/150.60 329.45/150.60 redex_f.0(f.0(x)) -> result_f.0(b.) 329.45/150.60 redex_f.0(f.1(x)) -> result_f.0(b.) 329.45/150.60 check_f.0(result_f.0(x)) -> go_up.0(x) 329.45/150.60 Used ordering: POLO with Polynomial interpretation [POLO]: 329.45/150.60 329.45/150.60 POL(0.0(x_1)) = x_1 329.45/150.60 POL(0.1(x_1)) = x_1 329.45/150.60 POL(1.0(x_1)) = x_1 329.45/150.60 POL(1.1(x_1)) = x_1 329.45/150.60 POL(2.0(x_1)) = x_1 329.45/150.60 POL(2.1(x_1)) = x_1 329.45/150.60 POL(TOP.0(x_1)) = x_1 329.45/150.60 POL(a.) = 0 329.45/150.60 POL(check_0.0(x_1)) = x_1 329.45/150.60 POL(check_1.0(x_1)) = x_1 329.45/150.60 POL(check_2.0(x_1)) = x_1 329.45/150.60 POL(check_f.0(x_1)) = x_1 329.45/150.60 POL(f.0(x_1)) = x_1 329.45/150.60 POL(f.1(x_1)) = x_1 329.45/150.60 POL(go_up.0(x_1)) = x_1 329.45/150.60 POL(go_up.1(x_1)) = x_1 329.45/150.60 POL(in_0_1.0(x_1)) = x_1 329.45/150.60 POL(in_1_1.0(x_1)) = x_1 329.45/150.60 POL(in_2_1.0(x_1)) = x_1 329.45/150.60 POL(in_f_1.0(x_1)) = x_1 329.45/150.60 POL(redex_0.0(x_1)) = x_1 329.45/150.60 POL(redex_0.1(x_1)) = x_1 329.45/150.60 POL(redex_1.0(x_1)) = x_1 329.45/150.60 POL(redex_1.1(x_1)) = x_1 329.45/150.60 POL(redex_2.0(x_1)) = x_1 329.45/150.60 POL(redex_2.1(x_1)) = x_1 329.45/150.60 POL(redex_f.1(x_1)) = x_1 329.45/150.60 POL(reduce.1(x_1)) = x_1 329.45/150.60 POL(result_0.1(x_1)) = x_1 329.45/150.60 POL(result_1.1(x_1)) = x_1 329.45/150.60 POL(result_2.0(x_1)) = x_1 329.45/150.60 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (53) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 TOP.0(go_up.0(f.1(x0))) -> TOP.0(check_f.0(redex_f.1(x0))) 329.45/150.60 TOP.0(go_up.1(0.1(x0))) -> TOP.0(check_0.0(redex_0.1(x0))) 329.45/150.60 TOP.0(go_up.1(1.1(x0))) -> TOP.0(check_1.0(redex_1.1(x0))) 329.45/150.60 TOP.0(go_up.1(2.1(x0))) -> TOP.0(check_2.0(redex_2.1(x0))) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 check_2.0(redex_2.1(x_1)) -> in_2_1.0(reduce.1(x_1)) 329.45/150.60 reduce.1(0.0(x_1)) -> check_0.0(redex_0.0(x_1)) 329.45/150.60 reduce.1(0.1(x_1)) -> check_0.0(redex_0.1(x_1)) 329.45/150.60 reduce.1(1.0(x_1)) -> check_1.0(redex_1.0(x_1)) 329.45/150.60 reduce.1(1.1(x_1)) -> check_1.0(redex_1.1(x_1)) 329.45/150.60 reduce.1(2.0(x_1)) -> check_2.0(redex_2.0(x_1)) 329.45/150.60 reduce.1(2.1(x_1)) -> check_2.0(redex_2.1(x_1)) 329.45/150.60 reduce.1(a.) -> go_up.0(f.1(a.)) 329.45/150.60 in_2_1.0(go_up.0(x_1)) -> go_up.1(2.0(x_1)) 329.45/150.60 in_2_1.0(go_up.1(x_1)) -> go_up.1(2.1(x_1)) 329.45/150.60 redex_2.0(f.0(x)) -> result_2.0(f.1(0.0(x))) 329.45/150.60 redex_2.0(f.1(x)) -> result_2.0(f.1(0.1(x))) 329.45/150.60 check_2.0(result_2.0(x)) -> go_up.0(x) 329.45/150.60 check_1.0(redex_1.1(x_1)) -> in_1_1.0(reduce.1(x_1)) 329.45/150.60 in_1_1.0(go_up.0(x_1)) -> go_up.1(1.0(x_1)) 329.45/150.60 in_1_1.0(go_up.1(x_1)) -> go_up.1(1.1(x_1)) 329.45/150.60 redex_1.0(f.0(x)) -> result_1.1(2.0(x)) 329.45/150.60 redex_1.0(f.1(x)) -> result_1.1(2.1(x)) 329.45/150.60 check_1.0(result_1.1(x)) -> go_up.1(x) 329.45/150.60 check_0.0(redex_0.1(x_1)) -> in_0_1.0(reduce.1(x_1)) 329.45/150.60 in_0_1.0(go_up.0(x_1)) -> go_up.1(0.0(x_1)) 329.45/150.60 in_0_1.0(go_up.1(x_1)) -> go_up.1(0.1(x_1)) 329.45/150.60 redex_0.0(f.0(x)) -> result_0.1(1.0(x)) 329.45/150.60 redex_0.0(f.1(x)) -> result_0.1(1.1(x)) 329.45/150.60 check_0.0(result_0.1(x)) -> go_up.1(x) 329.45/150.60 check_f.0(redex_f.1(x_1)) -> in_f_1.0(reduce.1(x_1)) 329.45/150.60 in_f_1.0(go_up.0(x_1)) -> go_up.0(f.0(x_1)) 329.45/150.60 in_f_1.0(go_up.1(x_1)) -> go_up.0(f.1(x_1)) 329.45/150.60 329.45/150.60 The set Q consists of the following terms: 329.45/150.60 329.45/150.60 reduce.0(f.0(x0)) 329.45/150.60 reduce.0(f.1(x0)) 329.45/150.60 reduce.1(0.0(x0)) 329.45/150.60 reduce.1(0.1(x0)) 329.45/150.60 reduce.1(1.0(x0)) 329.45/150.60 reduce.1(1.1(x0)) 329.45/150.60 reduce.1(2.0(x0)) 329.45/150.60 reduce.1(2.1(x0)) 329.45/150.60 reduce.1(a.) 329.45/150.60 redex_f.0(f.0(x0)) 329.45/150.60 redex_f.0(f.1(x0)) 329.45/150.60 redex_0.0(f.0(x0)) 329.45/150.60 redex_0.0(f.1(x0)) 329.45/150.60 redex_1.0(f.0(x0)) 329.45/150.60 redex_1.0(f.1(x0)) 329.45/150.60 redex_2.0(f.0(x0)) 329.45/150.60 redex_2.0(f.1(x0)) 329.45/150.60 check_f.0(result_f.0(x0)) 329.45/150.60 check_f.0(result_f.1(x0)) 329.45/150.60 check_0.0(result_0.0(x0)) 329.45/150.60 check_0.0(result_0.1(x0)) 329.45/150.60 check_1.0(result_1.0(x0)) 329.45/150.60 check_1.0(result_1.1(x0)) 329.45/150.60 check_2.0(result_2.0(x0)) 329.45/150.60 check_2.0(result_2.1(x0)) 329.45/150.60 check_f.0(redex_f.0(x0)) 329.45/150.60 check_f.0(redex_f.1(x0)) 329.45/150.60 check_0.0(redex_0.0(x0)) 329.45/150.60 check_0.0(redex_0.1(x0)) 329.45/150.60 check_1.0(redex_1.0(x0)) 329.45/150.60 check_1.0(redex_1.1(x0)) 329.45/150.60 check_2.0(redex_2.0(x0)) 329.45/150.60 check_2.0(redex_2.1(x0)) 329.45/150.60 in_f_1.0(go_up.0(x0)) 329.45/150.60 in_f_1.0(go_up.1(x0)) 329.45/150.60 in_0_1.0(go_up.0(x0)) 329.45/150.60 in_0_1.0(go_up.1(x0)) 329.45/150.60 in_1_1.0(go_up.0(x0)) 329.45/150.60 in_1_1.0(go_up.1(x0)) 329.45/150.60 in_2_1.0(go_up.0(x0)) 329.45/150.60 in_2_1.0(go_up.1(x0)) 329.45/150.60 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (54) PisEmptyProof (SOUND) 329.45/150.60 The TRS P is empty. Hence, there is no (P,Q,R) chain. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (55) 329.45/150.60 TRUE 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (56) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))) 329.45/150.60 TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))) 329.45/150.60 TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))) 329.45/150.60 TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.60 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.60 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.60 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.60 reduce(a) -> go_up(f(a)) 329.45/150.60 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.60 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.60 check_2(result_2(x)) -> go_up(x) 329.45/150.60 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.60 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.60 redex_1(f(x)) -> result_1(2(x)) 329.45/150.60 check_1(result_1(x)) -> go_up(x) 329.45/150.60 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.60 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.60 redex_0(f(x)) -> result_0(1(x)) 329.45/150.60 check_0(result_0(x)) -> go_up(x) 329.45/150.60 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.60 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.60 329.45/150.60 The set Q consists of the following terms: 329.45/150.60 329.45/150.60 reduce(f(x0)) 329.45/150.60 reduce(0(x0)) 329.45/150.60 reduce(1(x0)) 329.45/150.60 reduce(2(x0)) 329.45/150.60 reduce(a) 329.45/150.60 redex_f(f(x0)) 329.45/150.60 redex_0(f(x0)) 329.45/150.60 redex_1(f(x0)) 329.45/150.60 redex_2(f(x0)) 329.45/150.60 check_f(result_f(x0)) 329.45/150.60 check_0(result_0(x0)) 329.45/150.60 check_1(result_1(x0)) 329.45/150.60 check_2(result_2(x0)) 329.45/150.60 check_f(redex_f(x0)) 329.45/150.60 check_0(redex_0(x0)) 329.45/150.60 check_1(redex_1(x0)) 329.45/150.60 check_2(redex_2(x0)) 329.45/150.60 in_f_1(go_up(x0)) 329.45/150.60 in_0_1(go_up(x0)) 329.45/150.60 in_1_1(go_up(x0)) 329.45/150.60 in_2_1(go_up(x0)) 329.45/150.60 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (57) TransformationProof (SOUND) 329.45/150.60 By rewriting [LPAR04] the rule TOP(go_up(f(x0))) -> TOP(check_f(redex_f(x0))) at position [0] we obtained the following new rules [LPAR04]: 329.45/150.60 329.45/150.60 (TOP(go_up(f(x0))) -> TOP(in_f_1(reduce(x0))),TOP(go_up(f(x0))) -> TOP(in_f_1(reduce(x0)))) 329.45/150.60 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (58) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))) 329.45/150.60 TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))) 329.45/150.60 TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))) 329.45/150.60 TOP(go_up(f(x0))) -> TOP(in_f_1(reduce(x0))) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.60 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.60 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.60 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.60 reduce(a) -> go_up(f(a)) 329.45/150.60 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.60 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.60 check_2(result_2(x)) -> go_up(x) 329.45/150.60 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.60 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.60 redex_1(f(x)) -> result_1(2(x)) 329.45/150.60 check_1(result_1(x)) -> go_up(x) 329.45/150.60 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.60 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.60 redex_0(f(x)) -> result_0(1(x)) 329.45/150.60 check_0(result_0(x)) -> go_up(x) 329.45/150.60 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.60 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.60 329.45/150.60 The set Q consists of the following terms: 329.45/150.60 329.45/150.60 reduce(f(x0)) 329.45/150.60 reduce(0(x0)) 329.45/150.60 reduce(1(x0)) 329.45/150.60 reduce(2(x0)) 329.45/150.60 reduce(a) 329.45/150.60 redex_f(f(x0)) 329.45/150.60 redex_0(f(x0)) 329.45/150.60 redex_1(f(x0)) 329.45/150.60 redex_2(f(x0)) 329.45/150.60 check_f(result_f(x0)) 329.45/150.60 check_0(result_0(x0)) 329.45/150.60 check_1(result_1(x0)) 329.45/150.60 check_2(result_2(x0)) 329.45/150.60 check_f(redex_f(x0)) 329.45/150.60 check_0(redex_0(x0)) 329.45/150.60 check_1(redex_1(x0)) 329.45/150.60 check_2(redex_2(x0)) 329.45/150.60 in_f_1(go_up(x0)) 329.45/150.60 in_0_1(go_up(x0)) 329.45/150.60 in_1_1(go_up(x0)) 329.45/150.60 in_2_1(go_up(x0)) 329.45/150.60 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (59) UsableRulesProof (EQUIVALENT) 329.45/150.60 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (60) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))) 329.45/150.60 TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))) 329.45/150.60 TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))) 329.45/150.60 TOP(go_up(f(x0))) -> TOP(in_f_1(reduce(x0))) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.60 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.60 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.60 reduce(a) -> go_up(f(a)) 329.45/150.60 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.60 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.60 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.60 check_2(result_2(x)) -> go_up(x) 329.45/150.60 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.60 redex_1(f(x)) -> result_1(2(x)) 329.45/150.60 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.60 check_1(result_1(x)) -> go_up(x) 329.45/150.60 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.60 redex_0(f(x)) -> result_0(1(x)) 329.45/150.60 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.60 check_0(result_0(x)) -> go_up(x) 329.45/150.60 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.60 329.45/150.60 The set Q consists of the following terms: 329.45/150.60 329.45/150.60 reduce(f(x0)) 329.45/150.60 reduce(0(x0)) 329.45/150.60 reduce(1(x0)) 329.45/150.60 reduce(2(x0)) 329.45/150.60 reduce(a) 329.45/150.60 redex_f(f(x0)) 329.45/150.60 redex_0(f(x0)) 329.45/150.60 redex_1(f(x0)) 329.45/150.60 redex_2(f(x0)) 329.45/150.60 check_f(result_f(x0)) 329.45/150.60 check_0(result_0(x0)) 329.45/150.60 check_1(result_1(x0)) 329.45/150.60 check_2(result_2(x0)) 329.45/150.60 check_f(redex_f(x0)) 329.45/150.60 check_0(redex_0(x0)) 329.45/150.60 check_1(redex_1(x0)) 329.45/150.60 check_2(redex_2(x0)) 329.45/150.60 in_f_1(go_up(x0)) 329.45/150.60 in_0_1(go_up(x0)) 329.45/150.60 in_1_1(go_up(x0)) 329.45/150.60 in_2_1(go_up(x0)) 329.45/150.60 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (61) QReductionProof (EQUIVALENT) 329.45/150.60 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 329.45/150.60 329.45/150.60 redex_f(f(x0)) 329.45/150.60 check_f(result_f(x0)) 329.45/150.60 check_f(redex_f(x0)) 329.45/150.60 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (62) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 TOP(go_up(0(x0))) -> TOP(check_0(redex_0(x0))) 329.45/150.60 TOP(go_up(1(x0))) -> TOP(check_1(redex_1(x0))) 329.45/150.60 TOP(go_up(2(x0))) -> TOP(check_2(redex_2(x0))) 329.45/150.60 TOP(go_up(f(x0))) -> TOP(in_f_1(reduce(x0))) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.60 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.60 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.60 reduce(a) -> go_up(f(a)) 329.45/150.60 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.60 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.60 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.60 check_2(result_2(x)) -> go_up(x) 329.45/150.60 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.60 redex_1(f(x)) -> result_1(2(x)) 329.45/150.60 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.60 check_1(result_1(x)) -> go_up(x) 329.45/150.60 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.60 redex_0(f(x)) -> result_0(1(x)) 329.45/150.60 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.60 check_0(result_0(x)) -> go_up(x) 329.45/150.60 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.60 329.45/150.60 The set Q consists of the following terms: 329.45/150.60 329.45/150.60 reduce(f(x0)) 329.45/150.60 reduce(0(x0)) 329.45/150.60 reduce(1(x0)) 329.45/150.60 reduce(2(x0)) 329.45/150.60 reduce(a) 329.45/150.60 redex_0(f(x0)) 329.45/150.60 redex_1(f(x0)) 329.45/150.60 redex_2(f(x0)) 329.45/150.60 check_0(result_0(x0)) 329.45/150.60 check_1(result_1(x0)) 329.45/150.60 check_2(result_2(x0)) 329.45/150.60 check_0(redex_0(x0)) 329.45/150.60 check_1(redex_1(x0)) 329.45/150.60 check_2(redex_2(x0)) 329.45/150.60 in_f_1(go_up(x0)) 329.45/150.60 in_0_1(go_up(x0)) 329.45/150.60 in_1_1(go_up(x0)) 329.45/150.60 in_2_1(go_up(x0)) 329.45/150.60 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (63) UsableRulesProof (EQUIVALENT) 329.45/150.60 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (64) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 TOP(go_up(x)) -> TOP(reduce(x)) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.60 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.60 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.60 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.60 reduce(a) -> go_up(f(a)) 329.45/150.60 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.60 check_2(result_2(x)) -> go_up(x) 329.45/150.60 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.60 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.60 redex_1(f(x)) -> result_1(2(x)) 329.45/150.60 check_1(result_1(x)) -> go_up(x) 329.45/150.60 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.60 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.60 redex_0(f(x)) -> result_0(1(x)) 329.45/150.60 check_0(result_0(x)) -> go_up(x) 329.45/150.60 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.60 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.60 redex_f(f(x)) -> result_f(b) 329.45/150.60 check_f(result_f(x)) -> go_up(x) 329.45/150.60 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.60 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.60 329.45/150.60 The set Q consists of the following terms: 329.45/150.60 329.45/150.60 top(go_up(x0)) 329.45/150.60 reduce(f(x0)) 329.45/150.60 reduce(0(x0)) 329.45/150.60 reduce(1(x0)) 329.45/150.60 reduce(2(x0)) 329.45/150.60 reduce(a) 329.45/150.60 redex_f(f(x0)) 329.45/150.60 redex_0(f(x0)) 329.45/150.60 redex_1(f(x0)) 329.45/150.60 redex_2(f(x0)) 329.45/150.60 check_f(result_f(x0)) 329.45/150.60 check_0(result_0(x0)) 329.45/150.60 check_1(result_1(x0)) 329.45/150.60 check_2(result_2(x0)) 329.45/150.60 check_f(redex_f(x0)) 329.45/150.60 check_0(redex_0(x0)) 329.45/150.60 check_1(redex_1(x0)) 329.45/150.60 check_2(redex_2(x0)) 329.45/150.60 in_f_1(go_up(x0)) 329.45/150.60 in_0_1(go_up(x0)) 329.45/150.60 in_1_1(go_up(x0)) 329.45/150.60 in_2_1(go_up(x0)) 329.45/150.60 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (65) QReductionProof (EQUIVALENT) 329.45/150.60 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 329.45/150.60 329.45/150.60 top(go_up(x0)) 329.45/150.60 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (66) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 TOP(go_up(x)) -> TOP(reduce(x)) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 reduce(f(x_1)) -> check_f(redex_f(x_1)) 329.45/150.60 reduce(0(x_1)) -> check_0(redex_0(x_1)) 329.45/150.60 reduce(1(x_1)) -> check_1(redex_1(x_1)) 329.45/150.60 reduce(2(x_1)) -> check_2(redex_2(x_1)) 329.45/150.60 reduce(a) -> go_up(f(a)) 329.45/150.60 redex_2(f(x)) -> result_2(f(0(x))) 329.45/150.60 check_2(result_2(x)) -> go_up(x) 329.45/150.60 check_2(redex_2(x_1)) -> in_2_1(reduce(x_1)) 329.45/150.60 in_2_1(go_up(x_1)) -> go_up(2(x_1)) 329.45/150.60 redex_1(f(x)) -> result_1(2(x)) 329.45/150.60 check_1(result_1(x)) -> go_up(x) 329.45/150.60 check_1(redex_1(x_1)) -> in_1_1(reduce(x_1)) 329.45/150.60 in_1_1(go_up(x_1)) -> go_up(1(x_1)) 329.45/150.60 redex_0(f(x)) -> result_0(1(x)) 329.45/150.60 check_0(result_0(x)) -> go_up(x) 329.45/150.60 check_0(redex_0(x_1)) -> in_0_1(reduce(x_1)) 329.45/150.60 in_0_1(go_up(x_1)) -> go_up(0(x_1)) 329.45/150.60 redex_f(f(x)) -> result_f(b) 329.45/150.60 check_f(result_f(x)) -> go_up(x) 329.45/150.60 check_f(redex_f(x_1)) -> in_f_1(reduce(x_1)) 329.45/150.60 in_f_1(go_up(x_1)) -> go_up(f(x_1)) 329.45/150.60 329.45/150.60 The set Q consists of the following terms: 329.45/150.60 329.45/150.60 reduce(f(x0)) 329.45/150.60 reduce(0(x0)) 329.45/150.60 reduce(1(x0)) 329.45/150.60 reduce(2(x0)) 329.45/150.60 reduce(a) 329.45/150.60 redex_f(f(x0)) 329.45/150.60 redex_0(f(x0)) 329.45/150.60 redex_1(f(x0)) 329.45/150.60 redex_2(f(x0)) 329.45/150.60 check_f(result_f(x0)) 329.45/150.60 check_0(result_0(x0)) 329.45/150.60 check_1(result_1(x0)) 329.45/150.60 check_2(result_2(x0)) 329.45/150.60 check_f(redex_f(x0)) 329.45/150.60 check_0(redex_0(x0)) 329.45/150.60 check_1(redex_1(x0)) 329.45/150.60 check_2(redex_2(x0)) 329.45/150.60 in_f_1(go_up(x0)) 329.45/150.60 in_0_1(go_up(x0)) 329.45/150.60 in_1_1(go_up(x0)) 329.45/150.60 in_2_1(go_up(x0)) 329.45/150.60 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (67) Trivial-Transformation (SOUND) 329.45/150.60 We applied the Trivial transformation to transform the outermost TRS to a standard TRS. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (68) 329.45/150.60 Obligation: 329.45/150.60 Q restricted rewrite system: 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 a -> f(a) 329.45/150.60 f(f(x)) -> b 329.45/150.60 0(f(x)) -> 1(x) 329.45/150.60 1(f(x)) -> 2(x) 329.45/150.60 2(f(x)) -> f(0(x)) 329.45/150.60 329.45/150.60 Q is empty. 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (69) DependencyPairsProof (EQUIVALENT) 329.45/150.60 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (70) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 A -> F(a) 329.45/150.60 A -> A 329.45/150.60 0^1(f(x)) -> 1^1(x) 329.45/150.60 1^1(f(x)) -> 2^1(x) 329.45/150.60 2^1(f(x)) -> F(0(x)) 329.45/150.60 2^1(f(x)) -> 0^1(x) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 a -> f(a) 329.45/150.60 f(f(x)) -> b 329.45/150.60 0(f(x)) -> 1(x) 329.45/150.60 1(f(x)) -> 2(x) 329.45/150.60 2(f(x)) -> f(0(x)) 329.45/150.60 329.45/150.60 Q is empty. 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (71) DependencyGraphProof (EQUIVALENT) 329.45/150.60 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (72) 329.45/150.60 Complex Obligation (AND) 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (73) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 1^1(f(x)) -> 2^1(x) 329.45/150.60 2^1(f(x)) -> 0^1(x) 329.45/150.60 0^1(f(x)) -> 1^1(x) 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 a -> f(a) 329.45/150.60 f(f(x)) -> b 329.45/150.60 0(f(x)) -> 1(x) 329.45/150.60 1(f(x)) -> 2(x) 329.45/150.60 2(f(x)) -> f(0(x)) 329.45/150.60 329.45/150.60 Q is empty. 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (74) UsableRulesProof (EQUIVALENT) 329.45/150.60 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. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (75) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 1^1(f(x)) -> 2^1(x) 329.45/150.60 2^1(f(x)) -> 0^1(x) 329.45/150.60 0^1(f(x)) -> 1^1(x) 329.45/150.60 329.45/150.60 R is empty. 329.45/150.60 Q is empty. 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (76) QDPSizeChangeProof (EQUIVALENT) 329.45/150.60 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. 329.45/150.60 329.45/150.60 From the DPs we obtained the following set of size-change graphs: 329.45/150.60 *2^1(f(x)) -> 0^1(x) 329.45/150.60 The graph contains the following edges 1 > 1 329.45/150.60 329.45/150.60 329.45/150.60 *0^1(f(x)) -> 1^1(x) 329.45/150.60 The graph contains the following edges 1 > 1 329.45/150.60 329.45/150.60 329.45/150.60 *1^1(f(x)) -> 2^1(x) 329.45/150.60 The graph contains the following edges 1 > 1 329.45/150.60 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (77) 329.45/150.60 YES 329.45/150.60 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (78) 329.45/150.60 Obligation: 329.45/150.60 Q DP problem: 329.45/150.60 The TRS P consists of the following rules: 329.45/150.60 329.45/150.60 A -> A 329.45/150.60 329.45/150.60 The TRS R consists of the following rules: 329.45/150.60 329.45/150.60 a -> f(a) 329.45/150.60 f(f(x)) -> b 329.45/150.60 0(f(x)) -> 1(x) 329.45/150.60 1(f(x)) -> 2(x) 329.45/150.60 2(f(x)) -> f(0(x)) 329.45/150.60 329.45/150.60 Q is empty. 329.45/150.60 We have to consider all minimal (P,Q,R)-chains. 329.45/150.60 ---------------------------------------- 329.45/150.60 329.45/150.60 (79) UsableRulesProof (EQUIVALENT) 329.45/150.61 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. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (80) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 A -> A 329.45/150.61 329.45/150.61 R is empty. 329.45/150.61 Q is empty. 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (81) NonTerminationLoopProof (COMPLETE) 329.45/150.61 We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. 329.45/150.61 Found a loop by semiunifying a rule from P directly. 329.45/150.61 329.45/150.61 s = A evaluates to t =A 329.45/150.61 329.45/150.61 Thus s starts an infinite chain as s semiunifies with t with the following substitutions: 329.45/150.61 * Matcher: [ ] 329.45/150.61 * Semiunifier: [ ] 329.45/150.61 329.45/150.61 -------------------------------------------------------------------------------- 329.45/150.61 Rewriting sequence 329.45/150.61 329.45/150.61 The DP semiunifies directly so there is only one rewrite step from A to A. 329.45/150.61 329.45/150.61 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (82) 329.45/150.61 NO 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (83) Raffelsieper-Zantema-Transformation (SOUND) 329.45/150.61 We applied the Raffelsieper-Zantema transformation to transform the outermost TRS to a standard TRS. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (84) 329.45/150.61 Obligation: 329.45/150.61 Q restricted rewrite system: 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 top(up(x)) -> top(down(x)) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 329.45/150.61 Q is empty. 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (85) AAECC Innermost (EQUIVALENT) 329.45/150.61 We have applied [NOC,AAECCNOC] to switch to innermost. The TRS R 1 is 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 329.45/150.61 The TRS R 2 is 329.45/150.61 top(up(x)) -> top(down(x)) 329.45/150.61 329.45/150.61 The signature Sigma is {top_1} 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (86) 329.45/150.61 Obligation: 329.45/150.61 Q restricted rewrite system: 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 top(up(x)) -> top(down(x)) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 top(up(x0)) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (87) DependencyPairsProof (EQUIVALENT) 329.45/150.61 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (88) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(x)) -> TOP(down(x)) 329.45/150.61 TOP(up(x)) -> DOWN(x) 329.45/150.61 DOWN(f(a)) -> F_FLAT(down(a)) 329.45/150.61 DOWN(f(a)) -> DOWN(a) 329.45/150.61 DOWN(f(b)) -> F_FLAT(down(b)) 329.45/150.61 DOWN(f(b)) -> DOWN(b) 329.45/150.61 DOWN(f(0(y6))) -> F_FLAT(down(0(y6))) 329.45/150.61 DOWN(f(0(y6))) -> DOWN(0(y6)) 329.45/150.61 DOWN(f(1(y7))) -> F_FLAT(down(1(y7))) 329.45/150.61 DOWN(f(1(y7))) -> DOWN(1(y7)) 329.45/150.61 DOWN(f(2(y8))) -> F_FLAT(down(2(y8))) 329.45/150.61 DOWN(f(2(y8))) -> DOWN(2(y8)) 329.45/150.61 DOWN(f(fresh_constant)) -> F_FLAT(down(fresh_constant)) 329.45/150.61 DOWN(f(fresh_constant)) -> DOWN(fresh_constant) 329.45/150.61 DOWN(0(a)) -> 0_FLAT(down(a)) 329.45/150.61 DOWN(0(a)) -> DOWN(a) 329.45/150.61 DOWN(0(b)) -> 0_FLAT(down(b)) 329.45/150.61 DOWN(0(b)) -> DOWN(b) 329.45/150.61 DOWN(0(0(y11))) -> 0_FLAT(down(0(y11))) 329.45/150.61 DOWN(0(0(y11))) -> DOWN(0(y11)) 329.45/150.61 DOWN(0(1(y12))) -> 0_FLAT(down(1(y12))) 329.45/150.61 DOWN(0(1(y12))) -> DOWN(1(y12)) 329.45/150.61 DOWN(0(2(y13))) -> 0_FLAT(down(2(y13))) 329.45/150.61 DOWN(0(2(y13))) -> DOWN(2(y13)) 329.45/150.61 DOWN(0(fresh_constant)) -> 0_FLAT(down(fresh_constant)) 329.45/150.61 DOWN(0(fresh_constant)) -> DOWN(fresh_constant) 329.45/150.61 DOWN(1(a)) -> 1_FLAT(down(a)) 329.45/150.61 DOWN(1(a)) -> DOWN(a) 329.45/150.61 DOWN(1(b)) -> 1_FLAT(down(b)) 329.45/150.61 DOWN(1(b)) -> DOWN(b) 329.45/150.61 DOWN(1(0(y16))) -> 1_FLAT(down(0(y16))) 329.45/150.61 DOWN(1(0(y16))) -> DOWN(0(y16)) 329.45/150.61 DOWN(1(1(y17))) -> 1_FLAT(down(1(y17))) 329.45/150.61 DOWN(1(1(y17))) -> DOWN(1(y17)) 329.45/150.61 DOWN(1(2(y18))) -> 1_FLAT(down(2(y18))) 329.45/150.61 DOWN(1(2(y18))) -> DOWN(2(y18)) 329.45/150.61 DOWN(1(fresh_constant)) -> 1_FLAT(down(fresh_constant)) 329.45/150.61 DOWN(1(fresh_constant)) -> DOWN(fresh_constant) 329.45/150.61 DOWN(2(a)) -> 2_FLAT(down(a)) 329.45/150.61 DOWN(2(a)) -> DOWN(a) 329.45/150.61 DOWN(2(b)) -> 2_FLAT(down(b)) 329.45/150.61 DOWN(2(b)) -> DOWN(b) 329.45/150.61 DOWN(2(0(y21))) -> 2_FLAT(down(0(y21))) 329.45/150.61 DOWN(2(0(y21))) -> DOWN(0(y21)) 329.45/150.61 DOWN(2(1(y22))) -> 2_FLAT(down(1(y22))) 329.45/150.61 DOWN(2(1(y22))) -> DOWN(1(y22)) 329.45/150.61 DOWN(2(2(y23))) -> 2_FLAT(down(2(y23))) 329.45/150.61 DOWN(2(2(y23))) -> DOWN(2(y23)) 329.45/150.61 DOWN(2(fresh_constant)) -> 2_FLAT(down(fresh_constant)) 329.45/150.61 DOWN(2(fresh_constant)) -> DOWN(fresh_constant) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 top(up(x)) -> top(down(x)) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 top(up(x0)) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (89) DependencyGraphProof (EQUIVALENT) 329.45/150.61 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 40 less nodes. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (90) 329.45/150.61 Complex Obligation (AND) 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (91) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 DOWN(0(1(y12))) -> DOWN(1(y12)) 329.45/150.61 DOWN(1(0(y16))) -> DOWN(0(y16)) 329.45/150.61 DOWN(0(0(y11))) -> DOWN(0(y11)) 329.45/150.61 DOWN(0(2(y13))) -> DOWN(2(y13)) 329.45/150.61 DOWN(2(0(y21))) -> DOWN(0(y21)) 329.45/150.61 DOWN(2(1(y22))) -> DOWN(1(y22)) 329.45/150.61 DOWN(1(1(y17))) -> DOWN(1(y17)) 329.45/150.61 DOWN(1(2(y18))) -> DOWN(2(y18)) 329.45/150.61 DOWN(2(2(y23))) -> DOWN(2(y23)) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 top(up(x)) -> top(down(x)) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 top(up(x0)) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (92) UsableRulesProof (EQUIVALENT) 329.45/150.61 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (93) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 DOWN(0(1(y12))) -> DOWN(1(y12)) 329.45/150.61 DOWN(1(0(y16))) -> DOWN(0(y16)) 329.45/150.61 DOWN(0(0(y11))) -> DOWN(0(y11)) 329.45/150.61 DOWN(0(2(y13))) -> DOWN(2(y13)) 329.45/150.61 DOWN(2(0(y21))) -> DOWN(0(y21)) 329.45/150.61 DOWN(2(1(y22))) -> DOWN(1(y22)) 329.45/150.61 DOWN(1(1(y17))) -> DOWN(1(y17)) 329.45/150.61 DOWN(1(2(y18))) -> DOWN(2(y18)) 329.45/150.61 DOWN(2(2(y23))) -> DOWN(2(y23)) 329.45/150.61 329.45/150.61 R is empty. 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 top(up(x0)) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (94) QReductionProof (EQUIVALENT) 329.45/150.61 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 top(up(x0)) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (95) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 DOWN(0(1(y12))) -> DOWN(1(y12)) 329.45/150.61 DOWN(1(0(y16))) -> DOWN(0(y16)) 329.45/150.61 DOWN(0(0(y11))) -> DOWN(0(y11)) 329.45/150.61 DOWN(0(2(y13))) -> DOWN(2(y13)) 329.45/150.61 DOWN(2(0(y21))) -> DOWN(0(y21)) 329.45/150.61 DOWN(2(1(y22))) -> DOWN(1(y22)) 329.45/150.61 DOWN(1(1(y17))) -> DOWN(1(y17)) 329.45/150.61 DOWN(1(2(y18))) -> DOWN(2(y18)) 329.45/150.61 DOWN(2(2(y23))) -> DOWN(2(y23)) 329.45/150.61 329.45/150.61 R is empty. 329.45/150.61 Q is empty. 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (96) QDPSizeChangeProof (EQUIVALENT) 329.45/150.61 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. 329.45/150.61 329.45/150.61 From the DPs we obtained the following set of size-change graphs: 329.45/150.61 *DOWN(1(0(y16))) -> DOWN(0(y16)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 *DOWN(1(1(y17))) -> DOWN(1(y17)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 *DOWN(1(2(y18))) -> DOWN(2(y18)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 *DOWN(0(0(y11))) -> DOWN(0(y11)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 *DOWN(2(0(y21))) -> DOWN(0(y21)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 *DOWN(0(1(y12))) -> DOWN(1(y12)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 *DOWN(0(2(y13))) -> DOWN(2(y13)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 *DOWN(2(1(y22))) -> DOWN(1(y22)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 *DOWN(2(2(y23))) -> DOWN(2(y23)) 329.45/150.61 The graph contains the following edges 1 > 1 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (97) 329.45/150.61 YES 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (98) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(x)) -> TOP(down(x)) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 top(up(x)) -> top(down(x)) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 top(up(x0)) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (99) UsableRulesProof (EQUIVALENT) 329.45/150.61 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (100) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(x)) -> TOP(down(x)) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 top(up(x0)) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (101) QReductionProof (EQUIVALENT) 329.45/150.61 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 329.45/150.61 329.45/150.61 top(up(x0)) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (102) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(x)) -> TOP(down(x)) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (103) TransformationProof (EQUIVALENT) 329.45/150.61 By narrowing [LPAR04] the rule TOP(up(x)) -> TOP(down(x)) at position [0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(a)) -> TOP(up(f(a))),TOP(up(a)) -> TOP(up(f(a)))) 329.45/150.61 (TOP(up(f(f(x0)))) -> TOP(up(b)),TOP(up(f(f(x0)))) -> TOP(up(b))) 329.45/150.61 (TOP(up(0(f(x0)))) -> TOP(up(1(x0))),TOP(up(0(f(x0)))) -> TOP(up(1(x0)))) 329.45/150.61 (TOP(up(1(f(x0)))) -> TOP(up(2(x0))),TOP(up(1(f(x0)))) -> TOP(up(2(x0)))) 329.45/150.61 (TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))),TOP(up(2(f(x0)))) -> TOP(up(f(0(x0))))) 329.45/150.61 (TOP(up(f(a))) -> TOP(f_flat(down(a))),TOP(up(f(a))) -> TOP(f_flat(down(a)))) 329.45/150.61 (TOP(up(f(b))) -> TOP(f_flat(down(b))),TOP(up(f(b))) -> TOP(f_flat(down(b)))) 329.45/150.61 (TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))),TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0))))) 329.45/150.61 (TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))),TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0))))) 329.45/150.61 (TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))),TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0))))) 329.45/150.61 (TOP(up(f(fresh_constant))) -> TOP(f_flat(down(fresh_constant))),TOP(up(f(fresh_constant))) -> TOP(f_flat(down(fresh_constant)))) 329.45/150.61 (TOP(up(0(a))) -> TOP(0_flat(down(a))),TOP(up(0(a))) -> TOP(0_flat(down(a)))) 329.45/150.61 (TOP(up(0(b))) -> TOP(0_flat(down(b))),TOP(up(0(b))) -> TOP(0_flat(down(b)))) 329.45/150.61 (TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))),TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0))))) 329.45/150.61 (TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))),TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0))))) 329.45/150.61 (TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))),TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0))))) 329.45/150.61 (TOP(up(0(fresh_constant))) -> TOP(0_flat(down(fresh_constant))),TOP(up(0(fresh_constant))) -> TOP(0_flat(down(fresh_constant)))) 329.45/150.61 (TOP(up(1(a))) -> TOP(1_flat(down(a))),TOP(up(1(a))) -> TOP(1_flat(down(a)))) 329.45/150.61 (TOP(up(1(b))) -> TOP(1_flat(down(b))),TOP(up(1(b))) -> TOP(1_flat(down(b)))) 329.45/150.61 (TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))),TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0))))) 329.45/150.61 (TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))),TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0))))) 329.45/150.61 (TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))),TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0))))) 329.45/150.61 (TOP(up(1(fresh_constant))) -> TOP(1_flat(down(fresh_constant))),TOP(up(1(fresh_constant))) -> TOP(1_flat(down(fresh_constant)))) 329.45/150.61 (TOP(up(2(a))) -> TOP(2_flat(down(a))),TOP(up(2(a))) -> TOP(2_flat(down(a)))) 329.45/150.61 (TOP(up(2(b))) -> TOP(2_flat(down(b))),TOP(up(2(b))) -> TOP(2_flat(down(b)))) 329.45/150.61 (TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))),TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0))))) 329.45/150.61 (TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))),TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0))))) 329.45/150.61 (TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))),TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0))))) 329.45/150.61 (TOP(up(2(fresh_constant))) -> TOP(2_flat(down(fresh_constant))),TOP(up(2(fresh_constant))) -> TOP(2_flat(down(fresh_constant)))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (104) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(a)) -> TOP(up(f(a))) 329.45/150.61 TOP(up(f(f(x0)))) -> TOP(up(b)) 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(f(a))) -> TOP(f_flat(down(a))) 329.45/150.61 TOP(up(f(b))) -> TOP(f_flat(down(b))) 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(fresh_constant))) -> TOP(f_flat(down(fresh_constant))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(down(a))) 329.45/150.61 TOP(up(0(b))) -> TOP(0_flat(down(b))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(0(fresh_constant))) -> TOP(0_flat(down(fresh_constant))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(down(a))) 329.45/150.61 TOP(up(1(b))) -> TOP(1_flat(down(b))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(fresh_constant))) -> TOP(1_flat(down(fresh_constant))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(down(a))) 329.45/150.61 TOP(up(2(b))) -> TOP(2_flat(down(b))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(fresh_constant))) -> TOP(2_flat(down(fresh_constant))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (105) DependencyGraphProof (EQUIVALENT) 329.45/150.61 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 10 less nodes. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (106) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(f(a))) -> TOP(f_flat(down(a))) 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(down(a))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(down(a))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(down(a))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 down(f(f(x))) -> up(b) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(f(a)) -> f_flat(down(a)) 329.45/150.61 down(f(b)) -> f_flat(down(b)) 329.45/150.61 down(f(0(y6))) -> f_flat(down(0(y6))) 329.45/150.61 down(f(1(y7))) -> f_flat(down(1(y7))) 329.45/150.61 down(f(2(y8))) -> f_flat(down(2(y8))) 329.45/150.61 down(f(fresh_constant)) -> f_flat(down(fresh_constant)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (107) UsableRulesProof (EQUIVALENT) 329.45/150.61 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (108) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(f(a))) -> TOP(f_flat(down(a))) 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(down(a))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(down(a))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(down(a))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (109) TransformationProof (EQUIVALENT) 329.45/150.61 By rewriting [LPAR04] the rule TOP(up(f(a))) -> TOP(f_flat(down(a))) at position [0,0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(f(a))) -> TOP(f_flat(up(f(a)))),TOP(up(f(a))) -> TOP(f_flat(up(f(a))))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (110) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(down(a))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(down(a))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(down(a))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(a))) -> TOP(f_flat(up(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (111) TransformationProof (EQUIVALENT) 329.45/150.61 By rewriting [LPAR04] the rule TOP(up(2(a))) -> TOP(2_flat(down(a))) at position [0,0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(2(a))) -> TOP(2_flat(up(f(a)))),TOP(up(2(a))) -> TOP(2_flat(up(f(a))))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (112) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(down(a))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(down(a))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(a))) -> TOP(f_flat(up(f(a)))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(up(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (113) TransformationProof (EQUIVALENT) 329.45/150.61 By rewriting [LPAR04] the rule TOP(up(0(a))) -> TOP(0_flat(down(a))) at position [0,0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(0(a))) -> TOP(0_flat(up(f(a)))),TOP(up(0(a))) -> TOP(0_flat(up(f(a))))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (114) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(down(a))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(a))) -> TOP(f_flat(up(f(a)))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(up(f(a)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(up(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (115) TransformationProof (EQUIVALENT) 329.45/150.61 By rewriting [LPAR04] the rule TOP(up(1(a))) -> TOP(1_flat(down(a))) at position [0,0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(1(a))) -> TOP(1_flat(up(f(a)))),TOP(up(1(a))) -> TOP(1_flat(up(f(a))))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (116) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(a))) -> TOP(f_flat(up(f(a)))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(up(f(a)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(up(f(a)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(up(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (117) TransformationProof (EQUIVALENT) 329.45/150.61 By rewriting [LPAR04] the rule TOP(up(f(a))) -> TOP(f_flat(up(f(a)))) at position [0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(f(a))) -> TOP(up(f(f(a)))),TOP(up(f(a))) -> TOP(up(f(f(a))))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (118) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(up(f(a)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(up(f(a)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(up(f(a)))) 329.45/150.61 TOP(up(f(a))) -> TOP(up(f(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (119) DependencyGraphProof (EQUIVALENT) 329.45/150.61 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (120) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(a))) -> TOP(2_flat(up(f(a)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(up(f(a)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(up(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (121) TransformationProof (EQUIVALENT) 329.45/150.61 By rewriting [LPAR04] the rule TOP(up(2(a))) -> TOP(2_flat(up(f(a)))) at position [0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(2(a))) -> TOP(up(2(f(a)))),TOP(up(2(a))) -> TOP(up(2(f(a))))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (122) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(0(a))) -> TOP(0_flat(up(f(a)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(up(f(a)))) 329.45/150.61 TOP(up(2(a))) -> TOP(up(2(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (123) TransformationProof (EQUIVALENT) 329.45/150.61 By rewriting [LPAR04] the rule TOP(up(0(a))) -> TOP(0_flat(up(f(a)))) at position [0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(0(a))) -> TOP(up(0(f(a)))),TOP(up(0(a))) -> TOP(up(0(f(a))))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (124) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(a))) -> TOP(1_flat(up(f(a)))) 329.45/150.61 TOP(up(2(a))) -> TOP(up(2(f(a)))) 329.45/150.61 TOP(up(0(a))) -> TOP(up(0(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.61 329.45/150.61 We have to consider all minimal (P,Q,R)-chains. 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (125) TransformationProof (EQUIVALENT) 329.45/150.61 By rewriting [LPAR04] the rule TOP(up(1(a))) -> TOP(1_flat(up(f(a)))) at position [0] we obtained the following new rules [LPAR04]: 329.45/150.61 329.45/150.61 (TOP(up(1(a))) -> TOP(up(1(f(a)))),TOP(up(1(a))) -> TOP(up(1(f(a))))) 329.45/150.61 329.45/150.61 329.45/150.61 ---------------------------------------- 329.45/150.61 329.45/150.61 (126) 329.45/150.61 Obligation: 329.45/150.61 Q DP problem: 329.45/150.61 The TRS P consists of the following rules: 329.45/150.61 329.45/150.61 TOP(up(0(f(x0)))) -> TOP(up(1(x0))) 329.45/150.61 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.61 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.61 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.61 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.61 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.61 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.61 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.61 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.61 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.61 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.61 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.61 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.61 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.61 TOP(up(2(a))) -> TOP(up(2(f(a)))) 329.45/150.61 TOP(up(0(a))) -> TOP(up(0(f(a)))) 329.45/150.61 TOP(up(1(a))) -> TOP(up(1(f(a)))) 329.45/150.61 329.45/150.61 The TRS R consists of the following rules: 329.45/150.61 329.45/150.61 down(2(f(x))) -> up(f(0(x))) 329.45/150.61 down(2(a)) -> 2_flat(down(a)) 329.45/150.61 down(2(b)) -> 2_flat(down(b)) 329.45/150.61 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.61 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.61 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.61 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.61 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.61 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.61 down(1(f(x))) -> up(2(x)) 329.45/150.61 down(1(a)) -> 1_flat(down(a)) 329.45/150.61 down(1(b)) -> 1_flat(down(b)) 329.45/150.61 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.61 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.61 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.61 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.61 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.61 down(0(f(x))) -> up(1(x)) 329.45/150.61 down(0(a)) -> 0_flat(down(a)) 329.45/150.61 down(0(b)) -> 0_flat(down(b)) 329.45/150.61 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.61 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.61 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.61 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.61 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.61 down(a) -> up(f(a)) 329.45/150.61 329.45/150.61 The set Q consists of the following terms: 329.45/150.61 329.45/150.61 down(a) 329.45/150.61 down(f(f(x0))) 329.45/150.61 down(0(f(x0))) 329.45/150.61 down(1(f(x0))) 329.45/150.61 down(2(f(x0))) 329.45/150.61 down(f(a)) 329.45/150.61 down(f(b)) 329.45/150.61 down(f(0(x0))) 329.45/150.61 down(f(1(x0))) 329.45/150.61 down(f(2(x0))) 329.45/150.61 down(f(fresh_constant)) 329.45/150.61 down(0(a)) 329.45/150.61 down(0(b)) 329.45/150.61 down(0(0(x0))) 329.45/150.61 down(0(1(x0))) 329.45/150.61 down(0(2(x0))) 329.45/150.61 down(0(fresh_constant)) 329.45/150.61 down(1(a)) 329.45/150.61 down(1(b)) 329.45/150.61 down(1(0(x0))) 329.45/150.61 down(1(1(x0))) 329.45/150.61 down(1(2(x0))) 329.45/150.61 down(1(fresh_constant)) 329.45/150.61 down(2(a)) 329.45/150.61 down(2(b)) 329.45/150.61 down(2(0(x0))) 329.45/150.61 down(2(1(x0))) 329.45/150.61 down(2(2(x0))) 329.45/150.61 down(2(fresh_constant)) 329.45/150.61 f_flat(up(x0)) 329.45/150.61 0_flat(up(x0)) 329.45/150.61 1_flat(up(x0)) 329.45/150.61 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (127) TransformationProof (EQUIVALENT) 329.45/150.62 By forward instantiating [JAR06] the rule TOP(up(0(f(x0)))) -> TOP(up(1(x0))) we obtained the following new rules [LPAR04]: 329.45/150.62 329.45/150.62 (TOP(up(0(f(f(y_0))))) -> TOP(up(1(f(y_0)))),TOP(up(0(f(f(y_0))))) -> TOP(up(1(f(y_0))))) 329.45/150.62 (TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0)))),TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0))))) 329.45/150.62 (TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0)))),TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0))))) 329.45/150.62 (TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0)))),TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0))))) 329.45/150.62 (TOP(up(0(f(a)))) -> TOP(up(1(a))),TOP(up(0(f(a)))) -> TOP(up(1(a)))) 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (128) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(1(f(x0)))) -> TOP(up(2(x0))) 329.45/150.62 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(a))) -> TOP(up(2(f(a)))) 329.45/150.62 TOP(up(0(a))) -> TOP(up(0(f(a)))) 329.45/150.62 TOP(up(1(a))) -> TOP(up(1(f(a)))) 329.45/150.62 TOP(up(0(f(f(y_0))))) -> TOP(up(1(f(y_0)))) 329.45/150.62 TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0)))) 329.45/150.62 TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0)))) 329.45/150.62 TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0)))) 329.45/150.62 TOP(up(0(f(a)))) -> TOP(up(1(a))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (129) TransformationProof (EQUIVALENT) 329.45/150.62 By forward instantiating [JAR06] the rule TOP(up(1(f(x0)))) -> TOP(up(2(x0))) we obtained the following new rules [LPAR04]: 329.45/150.62 329.45/150.62 (TOP(up(1(f(f(y_0))))) -> TOP(up(2(f(y_0)))),TOP(up(1(f(f(y_0))))) -> TOP(up(2(f(y_0))))) 329.45/150.62 (TOP(up(1(f(0(y_0))))) -> TOP(up(2(0(y_0)))),TOP(up(1(f(0(y_0))))) -> TOP(up(2(0(y_0))))) 329.45/150.62 (TOP(up(1(f(1(y_0))))) -> TOP(up(2(1(y_0)))),TOP(up(1(f(1(y_0))))) -> TOP(up(2(1(y_0))))) 329.45/150.62 (TOP(up(1(f(2(y_0))))) -> TOP(up(2(2(y_0)))),TOP(up(1(f(2(y_0))))) -> TOP(up(2(2(y_0))))) 329.45/150.62 (TOP(up(1(f(a)))) -> TOP(up(2(a))),TOP(up(1(f(a)))) -> TOP(up(2(a)))) 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (130) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(a))) -> TOP(up(2(f(a)))) 329.45/150.62 TOP(up(0(a))) -> TOP(up(0(f(a)))) 329.45/150.62 TOP(up(1(a))) -> TOP(up(1(f(a)))) 329.45/150.62 TOP(up(0(f(f(y_0))))) -> TOP(up(1(f(y_0)))) 329.45/150.62 TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0)))) 329.45/150.62 TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0)))) 329.45/150.62 TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0)))) 329.45/150.62 TOP(up(0(f(a)))) -> TOP(up(1(a))) 329.45/150.62 TOP(up(1(f(f(y_0))))) -> TOP(up(2(f(y_0)))) 329.45/150.62 TOP(up(1(f(0(y_0))))) -> TOP(up(2(0(y_0)))) 329.45/150.62 TOP(up(1(f(1(y_0))))) -> TOP(up(2(1(y_0)))) 329.45/150.62 TOP(up(1(f(2(y_0))))) -> TOP(up(2(2(y_0)))) 329.45/150.62 TOP(up(1(f(a)))) -> TOP(up(2(a))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (131) QDPOrderProof (EQUIVALENT) 329.45/150.62 We use the reduction pair processor [LPAR04,JAR06]. 329.45/150.62 329.45/150.62 329.45/150.62 The following pairs can be oriented strictly and are deleted. 329.45/150.62 329.45/150.62 TOP(up(1(f(f(y_0))))) -> TOP(up(2(f(y_0)))) 329.45/150.62 TOP(up(1(f(0(y_0))))) -> TOP(up(2(0(y_0)))) 329.45/150.62 TOP(up(1(f(1(y_0))))) -> TOP(up(2(1(y_0)))) 329.45/150.62 TOP(up(1(f(2(y_0))))) -> TOP(up(2(2(y_0)))) 329.45/150.62 TOP(up(1(f(a)))) -> TOP(up(2(a))) 329.45/150.62 The remaining pairs can at least be oriented weakly. 329.45/150.62 Used ordering: Polynomial interpretation [POLO]: 329.45/150.62 329.45/150.62 POL(0(x_1)) = 1 329.45/150.62 POL(0_flat(x_1)) = 1 329.45/150.62 POL(1(x_1)) = 1 329.45/150.62 POL(1_flat(x_1)) = 1 329.45/150.62 POL(2(x_1)) = 0 329.45/150.62 POL(2_flat(x_1)) = 0 329.45/150.62 POL(TOP(x_1)) = x_1 329.45/150.62 POL(a) = 0 329.45/150.62 POL(b) = 0 329.45/150.62 POL(down(x_1)) = 0 329.45/150.62 POL(f(x_1)) = 0 329.45/150.62 POL(f_flat(x_1)) = 0 329.45/150.62 POL(fresh_constant) = 0 329.45/150.62 POL(up(x_1)) = x_1 329.45/150.62 329.45/150.62 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 329.45/150.62 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (132) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(a))) -> TOP(up(2(f(a)))) 329.45/150.62 TOP(up(0(a))) -> TOP(up(0(f(a)))) 329.45/150.62 TOP(up(1(a))) -> TOP(up(1(f(a)))) 329.45/150.62 TOP(up(0(f(f(y_0))))) -> TOP(up(1(f(y_0)))) 329.45/150.62 TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0)))) 329.45/150.62 TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0)))) 329.45/150.62 TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0)))) 329.45/150.62 TOP(up(0(f(a)))) -> TOP(up(1(a))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (133) DependencyGraphProof (EQUIVALENT) 329.45/150.62 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (134) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(a))) -> TOP(up(2(f(a)))) 329.45/150.62 TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0)))) 329.45/150.62 TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0)))) 329.45/150.62 TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (135) QDPOrderProof (EQUIVALENT) 329.45/150.62 We use the reduction pair processor [LPAR04,JAR06]. 329.45/150.62 329.45/150.62 329.45/150.62 The following pairs can be oriented strictly and are deleted. 329.45/150.62 329.45/150.62 TOP(up(2(f(x0)))) -> TOP(up(f(0(x0)))) 329.45/150.62 The remaining pairs can at least be oriented weakly. 329.45/150.62 Used ordering: Polynomial interpretation [POLO]: 329.45/150.62 329.45/150.62 POL(0(x_1)) = 0 329.45/150.62 POL(0_flat(x_1)) = 0 329.45/150.62 POL(1(x_1)) = 0 329.45/150.62 POL(1_flat(x_1)) = 0 329.45/150.62 POL(2(x_1)) = 1 329.45/150.62 POL(2_flat(x_1)) = 1 329.45/150.62 POL(TOP(x_1)) = x_1 329.45/150.62 POL(a) = 0 329.45/150.62 POL(b) = 0 329.45/150.62 POL(down(x_1)) = 0 329.45/150.62 POL(f(x_1)) = 0 329.45/150.62 POL(f_flat(x_1)) = 0 329.45/150.62 POL(fresh_constant) = 0 329.45/150.62 POL(up(x_1)) = x_1 329.45/150.62 329.45/150.62 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 329.45/150.62 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (136) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(a))) -> TOP(up(2(f(a)))) 329.45/150.62 TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0)))) 329.45/150.62 TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0)))) 329.45/150.62 TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (137) DependencyGraphProof (EQUIVALENT) 329.45/150.62 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (138) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0)))) 329.45/150.62 TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0)))) 329.45/150.62 TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (139) QDPOrderProof (EQUIVALENT) 329.45/150.62 We use the reduction pair processor [LPAR04,JAR06]. 329.45/150.62 329.45/150.62 329.45/150.62 The following pairs can be oriented strictly and are deleted. 329.45/150.62 329.45/150.62 TOP(up(0(f(0(y_0))))) -> TOP(up(1(0(y_0)))) 329.45/150.62 TOP(up(0(f(1(y_0))))) -> TOP(up(1(1(y_0)))) 329.45/150.62 TOP(up(0(f(2(y_0))))) -> TOP(up(1(2(y_0)))) 329.45/150.62 The remaining pairs can at least be oriented weakly. 329.45/150.62 Used ordering: Polynomial interpretation [POLO]: 329.45/150.62 329.45/150.62 POL(0(x_1)) = 1 329.45/150.62 POL(0_flat(x_1)) = 1 329.45/150.62 POL(1(x_1)) = 0 329.45/150.62 POL(1_flat(x_1)) = 0 329.45/150.62 POL(2(x_1)) = 0 329.45/150.62 POL(2_flat(x_1)) = 0 329.45/150.62 POL(TOP(x_1)) = x_1 329.45/150.62 POL(a) = 0 329.45/150.62 POL(b) = 0 329.45/150.62 POL(down(x_1)) = 0 329.45/150.62 POL(f(x_1)) = 0 329.45/150.62 POL(f_flat(x_1)) = 0 329.45/150.62 POL(fresh_constant) = 0 329.45/150.62 POL(up(x_1)) = x_1 329.45/150.62 329.45/150.62 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 329.45/150.62 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (140) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (141) SplitQDPProof (EQUIVALENT) 329.45/150.62 We show in the first subproof that some pairs and rules can be removed, afterwards, we continue with the remaining DP-Problem 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (142) 329.45/150.62 Complex Obligation (AND) 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (143) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(2(fresh_constant)) -> 2_flat(down(fresh_constant)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 down(1(fresh_constant)) -> 1_flat(down(fresh_constant)) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 down(0(fresh_constant)) -> 0_flat(down(fresh_constant)) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (144) SemLabProof (SOUND) 329.45/150.62 We found the following model for the rules of the TRSs R and P. 329.45/150.62 Interpretation over the domain with elements from 0 to 1. 329.45/150.62 2_flat: 0 329.45/150.62 a: 0 329.45/150.62 2: 0 329.45/150.62 TOP: 0 329.45/150.62 b: 0 329.45/150.62 down: 0 329.45/150.62 f: 0 329.45/150.62 0: 0 329.45/150.62 fresh_constant: 1 329.45/150.62 up: 0 329.45/150.62 1: 0 329.45/150.62 1_flat: 0 329.45/150.62 0_flat: 0 329.45/150.62 f_flat: 0 329.45/150.62 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (145) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP.0(up.0(f.0(0.0(x0)))) -> TOP.0(f_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(0.1(x0)))) -> TOP.0(f_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.0(x0)))) -> TOP.0(f_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.1(x0)))) -> TOP.0(f_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.0(x0)))) -> TOP.0(f_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.1(x0)))) -> TOP.0(f_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.0(x0)))) -> TOP.0(0_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.1(x0)))) -> TOP.0(0_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.0(x0)))) -> TOP.0(0_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.1(x0)))) -> TOP.0(0_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.0(x0)))) -> TOP.0(0_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.1(x0)))) -> TOP.0(0_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.0(x0)))) -> TOP.0(1_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.1(x0)))) -> TOP.0(1_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.0(x0)))) -> TOP.0(1_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.1(x0)))) -> TOP.0(1_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.0(x0)))) -> TOP.0(1_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.1(x0)))) -> TOP.0(1_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.0(x0)))) -> TOP.0(2_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.1(x0)))) -> TOP.0(2_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.0(x0)))) -> TOP.0(2_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.1(x0)))) -> TOP.0(2_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.0(x0)))) -> TOP.0(2_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.1(x0)))) -> TOP.0(2_flat.0(down.0(2.1(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down.0(2.0(f.0(x))) -> up.0(f.0(0.0(x))) 329.45/150.62 down.0(2.0(f.1(x))) -> up.0(f.0(0.1(x))) 329.45/150.62 down.0(2.0(a.)) -> 2_flat.0(down.0(a.)) 329.45/150.62 down.0(2.0(b.)) -> 2_flat.0(down.0(b.)) 329.45/150.62 down.0(2.0(0.0(y21))) -> 2_flat.0(down.0(0.0(y21))) 329.45/150.62 down.0(2.0(0.1(y21))) -> 2_flat.0(down.0(0.1(y21))) 329.45/150.62 down.0(2.0(1.0(y22))) -> 2_flat.0(down.0(1.0(y22))) 329.45/150.62 down.0(2.0(1.1(y22))) -> 2_flat.0(down.0(1.1(y22))) 329.45/150.62 down.0(2.0(2.0(y23))) -> 2_flat.0(down.0(2.0(y23))) 329.45/150.62 down.0(2.0(2.1(y23))) -> 2_flat.0(down.0(2.1(y23))) 329.45/150.62 down.0(2.1(fresh_constant.)) -> 2_flat.0(down.1(fresh_constant.)) 329.45/150.62 f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) 329.45/150.62 f_flat.0(up.1(x_1)) -> up.0(f.1(x_1)) 329.45/150.62 2_flat.0(up.0(x_1)) -> up.0(2.0(x_1)) 329.45/150.62 2_flat.0(up.1(x_1)) -> up.0(2.1(x_1)) 329.45/150.62 down.0(1.0(f.0(x))) -> up.0(2.0(x)) 329.45/150.62 down.0(1.0(f.1(x))) -> up.0(2.1(x)) 329.45/150.62 down.0(1.0(a.)) -> 1_flat.0(down.0(a.)) 329.45/150.62 down.0(1.0(b.)) -> 1_flat.0(down.0(b.)) 329.45/150.62 down.0(1.0(0.0(y16))) -> 1_flat.0(down.0(0.0(y16))) 329.45/150.62 down.0(1.0(0.1(y16))) -> 1_flat.0(down.0(0.1(y16))) 329.45/150.62 down.0(1.0(1.0(y17))) -> 1_flat.0(down.0(1.0(y17))) 329.45/150.62 down.0(1.0(1.1(y17))) -> 1_flat.0(down.0(1.1(y17))) 329.45/150.62 down.0(1.0(2.0(y18))) -> 1_flat.0(down.0(2.0(y18))) 329.45/150.62 down.0(1.0(2.1(y18))) -> 1_flat.0(down.0(2.1(y18))) 329.45/150.62 down.0(1.1(fresh_constant.)) -> 1_flat.0(down.1(fresh_constant.)) 329.45/150.62 1_flat.0(up.0(x_1)) -> up.0(1.0(x_1)) 329.45/150.62 1_flat.0(up.1(x_1)) -> up.0(1.1(x_1)) 329.45/150.62 down.0(0.0(f.0(x))) -> up.0(1.0(x)) 329.45/150.62 down.0(0.0(f.1(x))) -> up.0(1.1(x)) 329.45/150.62 down.0(0.0(a.)) -> 0_flat.0(down.0(a.)) 329.45/150.62 down.0(0.0(b.)) -> 0_flat.0(down.0(b.)) 329.45/150.62 down.0(0.0(0.0(y11))) -> 0_flat.0(down.0(0.0(y11))) 329.45/150.62 down.0(0.0(0.1(y11))) -> 0_flat.0(down.0(0.1(y11))) 329.45/150.62 down.0(0.0(1.0(y12))) -> 0_flat.0(down.0(1.0(y12))) 329.45/150.62 down.0(0.0(1.1(y12))) -> 0_flat.0(down.0(1.1(y12))) 329.45/150.62 down.0(0.0(2.0(y13))) -> 0_flat.0(down.0(2.0(y13))) 329.45/150.62 down.0(0.0(2.1(y13))) -> 0_flat.0(down.0(2.1(y13))) 329.45/150.62 down.0(0.1(fresh_constant.)) -> 0_flat.0(down.1(fresh_constant.)) 329.45/150.62 0_flat.0(up.0(x_1)) -> up.0(0.0(x_1)) 329.45/150.62 0_flat.0(up.1(x_1)) -> up.0(0.1(x_1)) 329.45/150.62 down.0(a.) -> up.0(f.0(a.)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down.0(a.) 329.45/150.62 down.0(f.0(f.0(x0))) 329.45/150.62 down.0(f.0(f.1(x0))) 329.45/150.62 down.0(0.0(f.0(x0))) 329.45/150.62 down.0(0.0(f.1(x0))) 329.45/150.62 down.0(1.0(f.0(x0))) 329.45/150.62 down.0(1.0(f.1(x0))) 329.45/150.62 down.0(2.0(f.0(x0))) 329.45/150.62 down.0(2.0(f.1(x0))) 329.45/150.62 down.0(f.0(a.)) 329.45/150.62 down.0(f.0(b.)) 329.45/150.62 down.0(f.0(0.0(x0))) 329.45/150.62 down.0(f.0(0.1(x0))) 329.45/150.62 down.0(f.0(1.0(x0))) 329.45/150.62 down.0(f.0(1.1(x0))) 329.45/150.62 down.0(f.0(2.0(x0))) 329.45/150.62 down.0(f.0(2.1(x0))) 329.45/150.62 down.0(f.1(fresh_constant.)) 329.45/150.62 down.0(0.0(a.)) 329.45/150.62 down.0(0.0(b.)) 329.45/150.62 down.0(0.0(0.0(x0))) 329.45/150.62 down.0(0.0(0.1(x0))) 329.45/150.62 down.0(0.0(1.0(x0))) 329.45/150.62 down.0(0.0(1.1(x0))) 329.45/150.62 down.0(0.0(2.0(x0))) 329.45/150.62 down.0(0.0(2.1(x0))) 329.45/150.62 down.0(0.1(fresh_constant.)) 329.45/150.62 down.0(1.0(a.)) 329.45/150.62 down.0(1.0(b.)) 329.45/150.62 down.0(1.0(0.0(x0))) 329.45/150.62 down.0(1.0(0.1(x0))) 329.45/150.62 down.0(1.0(1.0(x0))) 329.45/150.62 down.0(1.0(1.1(x0))) 329.45/150.62 down.0(1.0(2.0(x0))) 329.45/150.62 down.0(1.0(2.1(x0))) 329.45/150.62 down.0(1.1(fresh_constant.)) 329.45/150.62 down.0(2.0(a.)) 329.45/150.62 down.0(2.0(b.)) 329.45/150.62 down.0(2.0(0.0(x0))) 329.45/150.62 down.0(2.0(0.1(x0))) 329.45/150.62 down.0(2.0(1.0(x0))) 329.45/150.62 down.0(2.0(1.1(x0))) 329.45/150.62 down.0(2.0(2.0(x0))) 329.45/150.62 down.0(2.0(2.1(x0))) 329.45/150.62 down.0(2.1(fresh_constant.)) 329.45/150.62 f_flat.0(up.0(x0)) 329.45/150.62 f_flat.0(up.1(x0)) 329.45/150.62 0_flat.0(up.0(x0)) 329.45/150.62 0_flat.0(up.1(x0)) 329.45/150.62 1_flat.0(up.0(x0)) 329.45/150.62 1_flat.0(up.1(x0)) 329.45/150.62 2_flat.0(up.0(x0)) 329.45/150.62 2_flat.0(up.1(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (146) UsableRulesReductionPairsProof (EQUIVALENT) 329.45/150.62 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. 329.45/150.62 329.45/150.62 No dependency pairs are removed. 329.45/150.62 329.45/150.62 The following rules are removed from R: 329.45/150.62 329.45/150.62 down.0(2.0(f.1(x))) -> up.0(f.0(0.1(x))) 329.45/150.62 f_flat.0(up.1(x_1)) -> up.0(f.1(x_1)) 329.45/150.62 2_flat.0(up.1(x_1)) -> up.0(2.1(x_1)) 329.45/150.62 down.0(1.0(f.1(x))) -> up.0(2.1(x)) 329.45/150.62 1_flat.0(up.1(x_1)) -> up.0(1.1(x_1)) 329.45/150.62 down.0(0.0(f.1(x))) -> up.0(1.1(x)) 329.45/150.62 0_flat.0(up.1(x_1)) -> up.0(0.1(x_1)) 329.45/150.62 Used ordering: POLO with Polynomial interpretation [POLO]: 329.45/150.62 329.45/150.62 POL(0.0(x_1)) = 1 + x_1 329.45/150.62 POL(0.1(x_1)) = 1 + x_1 329.45/150.62 POL(0_flat.0(x_1)) = 1 + x_1 329.45/150.62 POL(1.0(x_1)) = 1 + x_1 329.45/150.62 POL(1.1(x_1)) = 1 + x_1 329.45/150.62 POL(1_flat.0(x_1)) = 1 + x_1 329.45/150.62 POL(2.0(x_1)) = 1 + x_1 329.45/150.62 POL(2.1(x_1)) = 1 + x_1 329.45/150.62 POL(2_flat.0(x_1)) = 1 + x_1 329.45/150.62 POL(TOP.0(x_1)) = x_1 329.45/150.62 POL(a.) = 0 329.45/150.62 POL(b.) = 0 329.45/150.62 POL(down.0(x_1)) = x_1 329.45/150.62 POL(down.1(x_1)) = x_1 329.45/150.62 POL(f.0(x_1)) = x_1 329.45/150.62 POL(f.1(x_1)) = 1 + x_1 329.45/150.62 POL(f_flat.0(x_1)) = x_1 329.45/150.62 POL(fresh_constant.) = 0 329.45/150.62 POL(up.0(x_1)) = x_1 329.45/150.62 POL(up.1(x_1)) = 1 + x_1 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (147) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP.0(up.0(f.0(0.0(x0)))) -> TOP.0(f_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(0.1(x0)))) -> TOP.0(f_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.0(x0)))) -> TOP.0(f_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.1(x0)))) -> TOP.0(f_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.0(x0)))) -> TOP.0(f_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.1(x0)))) -> TOP.0(f_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.0(x0)))) -> TOP.0(0_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.1(x0)))) -> TOP.0(0_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.0(x0)))) -> TOP.0(0_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.1(x0)))) -> TOP.0(0_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.0(x0)))) -> TOP.0(0_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.1(x0)))) -> TOP.0(0_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.0(x0)))) -> TOP.0(1_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.1(x0)))) -> TOP.0(1_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.0(x0)))) -> TOP.0(1_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.1(x0)))) -> TOP.0(1_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.0(x0)))) -> TOP.0(1_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.1(x0)))) -> TOP.0(1_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.0(x0)))) -> TOP.0(2_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.1(x0)))) -> TOP.0(2_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.0(x0)))) -> TOP.0(2_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.1(x0)))) -> TOP.0(2_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.0(x0)))) -> TOP.0(2_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.1(x0)))) -> TOP.0(2_flat.0(down.0(2.1(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down.0(2.1(fresh_constant.)) -> 2_flat.0(down.1(fresh_constant.)) 329.45/150.62 2_flat.0(up.0(x_1)) -> up.0(2.0(x_1)) 329.45/150.62 down.0(2.0(f.0(x))) -> up.0(f.0(0.0(x))) 329.45/150.62 down.0(2.0(a.)) -> 2_flat.0(down.0(a.)) 329.45/150.62 down.0(2.0(b.)) -> 2_flat.0(down.0(b.)) 329.45/150.62 down.0(2.0(0.0(y21))) -> 2_flat.0(down.0(0.0(y21))) 329.45/150.62 down.0(2.0(0.1(y21))) -> 2_flat.0(down.0(0.1(y21))) 329.45/150.62 down.0(2.0(1.0(y22))) -> 2_flat.0(down.0(1.0(y22))) 329.45/150.62 down.0(2.0(1.1(y22))) -> 2_flat.0(down.0(1.1(y22))) 329.45/150.62 down.0(2.0(2.0(y23))) -> 2_flat.0(down.0(2.0(y23))) 329.45/150.62 down.0(2.0(2.1(y23))) -> 2_flat.0(down.0(2.1(y23))) 329.45/150.62 down.0(1.1(fresh_constant.)) -> 1_flat.0(down.1(fresh_constant.)) 329.45/150.62 down.0(1.0(f.0(x))) -> up.0(2.0(x)) 329.45/150.62 down.0(1.0(a.)) -> 1_flat.0(down.0(a.)) 329.45/150.62 down.0(1.0(b.)) -> 1_flat.0(down.0(b.)) 329.45/150.62 down.0(1.0(0.0(y16))) -> 1_flat.0(down.0(0.0(y16))) 329.45/150.62 down.0(1.0(0.1(y16))) -> 1_flat.0(down.0(0.1(y16))) 329.45/150.62 down.0(1.0(1.0(y17))) -> 1_flat.0(down.0(1.0(y17))) 329.45/150.62 down.0(1.0(1.1(y17))) -> 1_flat.0(down.0(1.1(y17))) 329.45/150.62 down.0(1.0(2.0(y18))) -> 1_flat.0(down.0(2.0(y18))) 329.45/150.62 down.0(1.0(2.1(y18))) -> 1_flat.0(down.0(2.1(y18))) 329.45/150.62 1_flat.0(up.0(x_1)) -> up.0(1.0(x_1)) 329.45/150.62 down.0(0.1(fresh_constant.)) -> 0_flat.0(down.1(fresh_constant.)) 329.45/150.62 down.0(0.0(f.0(x))) -> up.0(1.0(x)) 329.45/150.62 down.0(0.0(a.)) -> 0_flat.0(down.0(a.)) 329.45/150.62 down.0(0.0(b.)) -> 0_flat.0(down.0(b.)) 329.45/150.62 down.0(0.0(0.0(y11))) -> 0_flat.0(down.0(0.0(y11))) 329.45/150.62 down.0(0.0(0.1(y11))) -> 0_flat.0(down.0(0.1(y11))) 329.45/150.62 down.0(0.0(1.0(y12))) -> 0_flat.0(down.0(1.0(y12))) 329.45/150.62 down.0(0.0(1.1(y12))) -> 0_flat.0(down.0(1.1(y12))) 329.45/150.62 down.0(0.0(2.0(y13))) -> 0_flat.0(down.0(2.0(y13))) 329.45/150.62 down.0(0.0(2.1(y13))) -> 0_flat.0(down.0(2.1(y13))) 329.45/150.62 0_flat.0(up.0(x_1)) -> up.0(0.0(x_1)) 329.45/150.62 down.0(a.) -> up.0(f.0(a.)) 329.45/150.62 f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down.0(a.) 329.45/150.62 down.0(f.0(f.0(x0))) 329.45/150.62 down.0(f.0(f.1(x0))) 329.45/150.62 down.0(0.0(f.0(x0))) 329.45/150.62 down.0(0.0(f.1(x0))) 329.45/150.62 down.0(1.0(f.0(x0))) 329.45/150.62 down.0(1.0(f.1(x0))) 329.45/150.62 down.0(2.0(f.0(x0))) 329.45/150.62 down.0(2.0(f.1(x0))) 329.45/150.62 down.0(f.0(a.)) 329.45/150.62 down.0(f.0(b.)) 329.45/150.62 down.0(f.0(0.0(x0))) 329.45/150.62 down.0(f.0(0.1(x0))) 329.45/150.62 down.0(f.0(1.0(x0))) 329.45/150.62 down.0(f.0(1.1(x0))) 329.45/150.62 down.0(f.0(2.0(x0))) 329.45/150.62 down.0(f.0(2.1(x0))) 329.45/150.62 down.0(f.1(fresh_constant.)) 329.45/150.62 down.0(0.0(a.)) 329.45/150.62 down.0(0.0(b.)) 329.45/150.62 down.0(0.0(0.0(x0))) 329.45/150.62 down.0(0.0(0.1(x0))) 329.45/150.62 down.0(0.0(1.0(x0))) 329.45/150.62 down.0(0.0(1.1(x0))) 329.45/150.62 down.0(0.0(2.0(x0))) 329.45/150.62 down.0(0.0(2.1(x0))) 329.45/150.62 down.0(0.1(fresh_constant.)) 329.45/150.62 down.0(1.0(a.)) 329.45/150.62 down.0(1.0(b.)) 329.45/150.62 down.0(1.0(0.0(x0))) 329.45/150.62 down.0(1.0(0.1(x0))) 329.45/150.62 down.0(1.0(1.0(x0))) 329.45/150.62 down.0(1.0(1.1(x0))) 329.45/150.62 down.0(1.0(2.0(x0))) 329.45/150.62 down.0(1.0(2.1(x0))) 329.45/150.62 down.0(1.1(fresh_constant.)) 329.45/150.62 down.0(2.0(a.)) 329.45/150.62 down.0(2.0(b.)) 329.45/150.62 down.0(2.0(0.0(x0))) 329.45/150.62 down.0(2.0(0.1(x0))) 329.45/150.62 down.0(2.0(1.0(x0))) 329.45/150.62 down.0(2.0(1.1(x0))) 329.45/150.62 down.0(2.0(2.0(x0))) 329.45/150.62 down.0(2.0(2.1(x0))) 329.45/150.62 down.0(2.1(fresh_constant.)) 329.45/150.62 f_flat.0(up.0(x0)) 329.45/150.62 f_flat.0(up.1(x0)) 329.45/150.62 0_flat.0(up.0(x0)) 329.45/150.62 0_flat.0(up.1(x0)) 329.45/150.62 1_flat.0(up.0(x0)) 329.45/150.62 1_flat.0(up.1(x0)) 329.45/150.62 2_flat.0(up.0(x0)) 329.45/150.62 2_flat.0(up.1(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (148) MRRProof (EQUIVALENT) 329.45/150.62 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. 329.45/150.62 329.45/150.62 329.45/150.62 Strictly oriented rules of the TRS R: 329.45/150.62 329.45/150.62 down.0(2.1(fresh_constant.)) -> 2_flat.0(down.1(fresh_constant.)) 329.45/150.62 down.0(1.1(fresh_constant.)) -> 1_flat.0(down.1(fresh_constant.)) 329.45/150.62 down.0(0.1(fresh_constant.)) -> 0_flat.0(down.1(fresh_constant.)) 329.45/150.62 329.45/150.62 Used ordering: Polynomial interpretation [POLO]: 329.45/150.62 329.45/150.62 POL(0.0(x_1)) = x_1 329.45/150.62 POL(0.1(x_1)) = 1 + x_1 329.45/150.62 POL(0_flat.0(x_1)) = x_1 329.45/150.62 POL(1.0(x_1)) = x_1 329.45/150.62 POL(1.1(x_1)) = 1 + x_1 329.45/150.62 POL(1_flat.0(x_1)) = x_1 329.45/150.62 POL(2.0(x_1)) = x_1 329.45/150.62 POL(2.1(x_1)) = 1 + x_1 329.45/150.62 POL(2_flat.0(x_1)) = x_1 329.45/150.62 POL(TOP.0(x_1)) = x_1 329.45/150.62 POL(a.) = 0 329.45/150.62 POL(b.) = 0 329.45/150.62 POL(down.0(x_1)) = x_1 329.45/150.62 POL(down.1(x_1)) = x_1 329.45/150.62 POL(f.0(x_1)) = x_1 329.45/150.62 POL(f_flat.0(x_1)) = x_1 329.45/150.62 POL(fresh_constant.) = 0 329.45/150.62 POL(up.0(x_1)) = x_1 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (149) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP.0(up.0(f.0(0.0(x0)))) -> TOP.0(f_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(0.1(x0)))) -> TOP.0(f_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.0(x0)))) -> TOP.0(f_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.1(x0)))) -> TOP.0(f_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.0(x0)))) -> TOP.0(f_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.1(x0)))) -> TOP.0(f_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.0(x0)))) -> TOP.0(0_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.1(x0)))) -> TOP.0(0_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.0(x0)))) -> TOP.0(0_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.1(x0)))) -> TOP.0(0_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.0(x0)))) -> TOP.0(0_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.1(x0)))) -> TOP.0(0_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.0(x0)))) -> TOP.0(1_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.1(x0)))) -> TOP.0(1_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.0(x0)))) -> TOP.0(1_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.1(x0)))) -> TOP.0(1_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.0(x0)))) -> TOP.0(1_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.1(x0)))) -> TOP.0(1_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.0(x0)))) -> TOP.0(2_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.1(x0)))) -> TOP.0(2_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.0(x0)))) -> TOP.0(2_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.1(x0)))) -> TOP.0(2_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.0(x0)))) -> TOP.0(2_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.1(x0)))) -> TOP.0(2_flat.0(down.0(2.1(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 2_flat.0(up.0(x_1)) -> up.0(2.0(x_1)) 329.45/150.62 down.0(2.0(f.0(x))) -> up.0(f.0(0.0(x))) 329.45/150.62 down.0(2.0(a.)) -> 2_flat.0(down.0(a.)) 329.45/150.62 down.0(2.0(b.)) -> 2_flat.0(down.0(b.)) 329.45/150.62 down.0(2.0(0.0(y21))) -> 2_flat.0(down.0(0.0(y21))) 329.45/150.62 down.0(2.0(0.1(y21))) -> 2_flat.0(down.0(0.1(y21))) 329.45/150.62 down.0(2.0(1.0(y22))) -> 2_flat.0(down.0(1.0(y22))) 329.45/150.62 down.0(2.0(1.1(y22))) -> 2_flat.0(down.0(1.1(y22))) 329.45/150.62 down.0(2.0(2.0(y23))) -> 2_flat.0(down.0(2.0(y23))) 329.45/150.62 down.0(2.0(2.1(y23))) -> 2_flat.0(down.0(2.1(y23))) 329.45/150.62 down.0(1.0(f.0(x))) -> up.0(2.0(x)) 329.45/150.62 down.0(1.0(a.)) -> 1_flat.0(down.0(a.)) 329.45/150.62 down.0(1.0(b.)) -> 1_flat.0(down.0(b.)) 329.45/150.62 down.0(1.0(0.0(y16))) -> 1_flat.0(down.0(0.0(y16))) 329.45/150.62 down.0(1.0(0.1(y16))) -> 1_flat.0(down.0(0.1(y16))) 329.45/150.62 down.0(1.0(1.0(y17))) -> 1_flat.0(down.0(1.0(y17))) 329.45/150.62 down.0(1.0(1.1(y17))) -> 1_flat.0(down.0(1.1(y17))) 329.45/150.62 down.0(1.0(2.0(y18))) -> 1_flat.0(down.0(2.0(y18))) 329.45/150.62 down.0(1.0(2.1(y18))) -> 1_flat.0(down.0(2.1(y18))) 329.45/150.62 1_flat.0(up.0(x_1)) -> up.0(1.0(x_1)) 329.45/150.62 down.0(0.0(f.0(x))) -> up.0(1.0(x)) 329.45/150.62 down.0(0.0(a.)) -> 0_flat.0(down.0(a.)) 329.45/150.62 down.0(0.0(b.)) -> 0_flat.0(down.0(b.)) 329.45/150.62 down.0(0.0(0.0(y11))) -> 0_flat.0(down.0(0.0(y11))) 329.45/150.62 down.0(0.0(0.1(y11))) -> 0_flat.0(down.0(0.1(y11))) 329.45/150.62 down.0(0.0(1.0(y12))) -> 0_flat.0(down.0(1.0(y12))) 329.45/150.62 down.0(0.0(1.1(y12))) -> 0_flat.0(down.0(1.1(y12))) 329.45/150.62 down.0(0.0(2.0(y13))) -> 0_flat.0(down.0(2.0(y13))) 329.45/150.62 down.0(0.0(2.1(y13))) -> 0_flat.0(down.0(2.1(y13))) 329.45/150.62 0_flat.0(up.0(x_1)) -> up.0(0.0(x_1)) 329.45/150.62 down.0(a.) -> up.0(f.0(a.)) 329.45/150.62 f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down.0(a.) 329.45/150.62 down.0(f.0(f.0(x0))) 329.45/150.62 down.0(f.0(f.1(x0))) 329.45/150.62 down.0(0.0(f.0(x0))) 329.45/150.62 down.0(0.0(f.1(x0))) 329.45/150.62 down.0(1.0(f.0(x0))) 329.45/150.62 down.0(1.0(f.1(x0))) 329.45/150.62 down.0(2.0(f.0(x0))) 329.45/150.62 down.0(2.0(f.1(x0))) 329.45/150.62 down.0(f.0(a.)) 329.45/150.62 down.0(f.0(b.)) 329.45/150.62 down.0(f.0(0.0(x0))) 329.45/150.62 down.0(f.0(0.1(x0))) 329.45/150.62 down.0(f.0(1.0(x0))) 329.45/150.62 down.0(f.0(1.1(x0))) 329.45/150.62 down.0(f.0(2.0(x0))) 329.45/150.62 down.0(f.0(2.1(x0))) 329.45/150.62 down.0(f.1(fresh_constant.)) 329.45/150.62 down.0(0.0(a.)) 329.45/150.62 down.0(0.0(b.)) 329.45/150.62 down.0(0.0(0.0(x0))) 329.45/150.62 down.0(0.0(0.1(x0))) 329.45/150.62 down.0(0.0(1.0(x0))) 329.45/150.62 down.0(0.0(1.1(x0))) 329.45/150.62 down.0(0.0(2.0(x0))) 329.45/150.62 down.0(0.0(2.1(x0))) 329.45/150.62 down.0(0.1(fresh_constant.)) 329.45/150.62 down.0(1.0(a.)) 329.45/150.62 down.0(1.0(b.)) 329.45/150.62 down.0(1.0(0.0(x0))) 329.45/150.62 down.0(1.0(0.1(x0))) 329.45/150.62 down.0(1.0(1.0(x0))) 329.45/150.62 down.0(1.0(1.1(x0))) 329.45/150.62 down.0(1.0(2.0(x0))) 329.45/150.62 down.0(1.0(2.1(x0))) 329.45/150.62 down.0(1.1(fresh_constant.)) 329.45/150.62 down.0(2.0(a.)) 329.45/150.62 down.0(2.0(b.)) 329.45/150.62 down.0(2.0(0.0(x0))) 329.45/150.62 down.0(2.0(0.1(x0))) 329.45/150.62 down.0(2.0(1.0(x0))) 329.45/150.62 down.0(2.0(1.1(x0))) 329.45/150.62 down.0(2.0(2.0(x0))) 329.45/150.62 down.0(2.0(2.1(x0))) 329.45/150.62 down.0(2.1(fresh_constant.)) 329.45/150.62 f_flat.0(up.0(x0)) 329.45/150.62 f_flat.0(up.1(x0)) 329.45/150.62 0_flat.0(up.0(x0)) 329.45/150.62 0_flat.0(up.1(x0)) 329.45/150.62 1_flat.0(up.0(x0)) 329.45/150.62 1_flat.0(up.1(x0)) 329.45/150.62 2_flat.0(up.0(x0)) 329.45/150.62 2_flat.0(up.1(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (150) DependencyGraphProof (EQUIVALENT) 329.45/150.62 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 12 less nodes. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (151) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP.0(up.0(f.0(0.0(x0)))) -> TOP.0(f_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.0(x0)))) -> TOP.0(f_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.0(x0)))) -> TOP.0(f_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.0(x0)))) -> TOP.0(0_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.0(x0)))) -> TOP.0(0_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.0(x0)))) -> TOP.0(0_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.0(x0)))) -> TOP.0(1_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.0(x0)))) -> TOP.0(1_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.0(x0)))) -> TOP.0(1_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.0(x0)))) -> TOP.0(2_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.0(x0)))) -> TOP.0(2_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.0(x0)))) -> TOP.0(2_flat.0(down.0(2.0(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 2_flat.0(up.0(x_1)) -> up.0(2.0(x_1)) 329.45/150.62 down.0(2.0(f.0(x))) -> up.0(f.0(0.0(x))) 329.45/150.62 down.0(2.0(a.)) -> 2_flat.0(down.0(a.)) 329.45/150.62 down.0(2.0(b.)) -> 2_flat.0(down.0(b.)) 329.45/150.62 down.0(2.0(0.0(y21))) -> 2_flat.0(down.0(0.0(y21))) 329.45/150.62 down.0(2.0(0.1(y21))) -> 2_flat.0(down.0(0.1(y21))) 329.45/150.62 down.0(2.0(1.0(y22))) -> 2_flat.0(down.0(1.0(y22))) 329.45/150.62 down.0(2.0(1.1(y22))) -> 2_flat.0(down.0(1.1(y22))) 329.45/150.62 down.0(2.0(2.0(y23))) -> 2_flat.0(down.0(2.0(y23))) 329.45/150.62 down.0(2.0(2.1(y23))) -> 2_flat.0(down.0(2.1(y23))) 329.45/150.62 down.0(1.0(f.0(x))) -> up.0(2.0(x)) 329.45/150.62 down.0(1.0(a.)) -> 1_flat.0(down.0(a.)) 329.45/150.62 down.0(1.0(b.)) -> 1_flat.0(down.0(b.)) 329.45/150.62 down.0(1.0(0.0(y16))) -> 1_flat.0(down.0(0.0(y16))) 329.45/150.62 down.0(1.0(0.1(y16))) -> 1_flat.0(down.0(0.1(y16))) 329.45/150.62 down.0(1.0(1.0(y17))) -> 1_flat.0(down.0(1.0(y17))) 329.45/150.62 down.0(1.0(1.1(y17))) -> 1_flat.0(down.0(1.1(y17))) 329.45/150.62 down.0(1.0(2.0(y18))) -> 1_flat.0(down.0(2.0(y18))) 329.45/150.62 down.0(1.0(2.1(y18))) -> 1_flat.0(down.0(2.1(y18))) 329.45/150.62 1_flat.0(up.0(x_1)) -> up.0(1.0(x_1)) 329.45/150.62 down.0(0.0(f.0(x))) -> up.0(1.0(x)) 329.45/150.62 down.0(0.0(a.)) -> 0_flat.0(down.0(a.)) 329.45/150.62 down.0(0.0(b.)) -> 0_flat.0(down.0(b.)) 329.45/150.62 down.0(0.0(0.0(y11))) -> 0_flat.0(down.0(0.0(y11))) 329.45/150.62 down.0(0.0(0.1(y11))) -> 0_flat.0(down.0(0.1(y11))) 329.45/150.62 down.0(0.0(1.0(y12))) -> 0_flat.0(down.0(1.0(y12))) 329.45/150.62 down.0(0.0(1.1(y12))) -> 0_flat.0(down.0(1.1(y12))) 329.45/150.62 down.0(0.0(2.0(y13))) -> 0_flat.0(down.0(2.0(y13))) 329.45/150.62 down.0(0.0(2.1(y13))) -> 0_flat.0(down.0(2.1(y13))) 329.45/150.62 0_flat.0(up.0(x_1)) -> up.0(0.0(x_1)) 329.45/150.62 down.0(a.) -> up.0(f.0(a.)) 329.45/150.62 f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down.0(a.) 329.45/150.62 down.0(f.0(f.0(x0))) 329.45/150.62 down.0(f.0(f.1(x0))) 329.45/150.62 down.0(0.0(f.0(x0))) 329.45/150.62 down.0(0.0(f.1(x0))) 329.45/150.62 down.0(1.0(f.0(x0))) 329.45/150.62 down.0(1.0(f.1(x0))) 329.45/150.62 down.0(2.0(f.0(x0))) 329.45/150.62 down.0(2.0(f.1(x0))) 329.45/150.62 down.0(f.0(a.)) 329.45/150.62 down.0(f.0(b.)) 329.45/150.62 down.0(f.0(0.0(x0))) 329.45/150.62 down.0(f.0(0.1(x0))) 329.45/150.62 down.0(f.0(1.0(x0))) 329.45/150.62 down.0(f.0(1.1(x0))) 329.45/150.62 down.0(f.0(2.0(x0))) 329.45/150.62 down.0(f.0(2.1(x0))) 329.45/150.62 down.0(f.1(fresh_constant.)) 329.45/150.62 down.0(0.0(a.)) 329.45/150.62 down.0(0.0(b.)) 329.45/150.62 down.0(0.0(0.0(x0))) 329.45/150.62 down.0(0.0(0.1(x0))) 329.45/150.62 down.0(0.0(1.0(x0))) 329.45/150.62 down.0(0.0(1.1(x0))) 329.45/150.62 down.0(0.0(2.0(x0))) 329.45/150.62 down.0(0.0(2.1(x0))) 329.45/150.62 down.0(0.1(fresh_constant.)) 329.45/150.62 down.0(1.0(a.)) 329.45/150.62 down.0(1.0(b.)) 329.45/150.62 down.0(1.0(0.0(x0))) 329.45/150.62 down.0(1.0(0.1(x0))) 329.45/150.62 down.0(1.0(1.0(x0))) 329.45/150.62 down.0(1.0(1.1(x0))) 329.45/150.62 down.0(1.0(2.0(x0))) 329.45/150.62 down.0(1.0(2.1(x0))) 329.45/150.62 down.0(1.1(fresh_constant.)) 329.45/150.62 down.0(2.0(a.)) 329.45/150.62 down.0(2.0(b.)) 329.45/150.62 down.0(2.0(0.0(x0))) 329.45/150.62 down.0(2.0(0.1(x0))) 329.45/150.62 down.0(2.0(1.0(x0))) 329.45/150.62 down.0(2.0(1.1(x0))) 329.45/150.62 down.0(2.0(2.0(x0))) 329.45/150.62 down.0(2.0(2.1(x0))) 329.45/150.62 down.0(2.1(fresh_constant.)) 329.45/150.62 f_flat.0(up.0(x0)) 329.45/150.62 f_flat.0(up.1(x0)) 329.45/150.62 0_flat.0(up.0(x0)) 329.45/150.62 0_flat.0(up.1(x0)) 329.45/150.62 1_flat.0(up.0(x0)) 329.45/150.62 1_flat.0(up.1(x0)) 329.45/150.62 2_flat.0(up.0(x0)) 329.45/150.62 2_flat.0(up.1(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (152) PisEmptyProof (SOUND) 329.45/150.62 The TRS P is empty. Hence, there is no (P,Q,R) chain. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (153) 329.45/150.62 TRUE 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (154) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (155) QReductionProof (EQUIVALENT) 329.45/150.62 We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. 329.45/150.62 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (156) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (157) SplitQDPProof (EQUIVALENT) 329.45/150.62 We show in the first subproof that some pairs and rules can be removed, afterwards, we continue with the remaining DP-Problem 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (158) 329.45/150.62 Complex Obligation (AND) 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (159) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.62 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.62 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.62 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.62 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.62 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.62 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.62 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.62 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.62 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.62 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.62 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.62 down(2(f(x))) -> up(f(0(x))) 329.45/150.62 down(2(a)) -> 2_flat(down(a)) 329.45/150.62 down(2(b)) -> 2_flat(down(b)) 329.45/150.62 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.62 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.62 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.62 down(1(f(x))) -> up(2(x)) 329.45/150.62 down(1(a)) -> 1_flat(down(a)) 329.45/150.62 down(1(b)) -> 1_flat(down(b)) 329.45/150.62 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.62 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.62 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.62 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.62 down(0(f(x))) -> up(1(x)) 329.45/150.62 down(0(a)) -> 0_flat(down(a)) 329.45/150.62 down(0(b)) -> 0_flat(down(b)) 329.45/150.62 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.62 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.62 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.62 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.62 down(a) -> up(f(a)) 329.45/150.62 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down(a) 329.45/150.62 down(f(f(x0))) 329.45/150.62 down(0(f(x0))) 329.45/150.62 down(1(f(x0))) 329.45/150.62 down(2(f(x0))) 329.45/150.62 down(f(a)) 329.45/150.62 down(f(b)) 329.45/150.62 down(f(0(x0))) 329.45/150.62 down(f(1(x0))) 329.45/150.62 down(f(2(x0))) 329.45/150.62 down(f(fresh_constant)) 329.45/150.62 down(0(a)) 329.45/150.62 down(0(b)) 329.45/150.62 down(0(0(x0))) 329.45/150.62 down(0(1(x0))) 329.45/150.62 down(0(2(x0))) 329.45/150.62 down(0(fresh_constant)) 329.45/150.62 down(1(a)) 329.45/150.62 down(1(b)) 329.45/150.62 down(1(0(x0))) 329.45/150.62 down(1(1(x0))) 329.45/150.62 down(1(2(x0))) 329.45/150.62 down(1(fresh_constant)) 329.45/150.62 down(2(a)) 329.45/150.62 down(2(b)) 329.45/150.62 down(2(0(x0))) 329.45/150.62 down(2(1(x0))) 329.45/150.62 down(2(2(x0))) 329.45/150.62 down(2(fresh_constant)) 329.45/150.62 f_flat(up(x0)) 329.45/150.62 0_flat(up(x0)) 329.45/150.62 1_flat(up(x0)) 329.45/150.62 2_flat(up(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (160) SemLabProof (SOUND) 329.45/150.62 We found the following model for the rules of the TRSs R and P. 329.45/150.62 Interpretation over the domain with elements from 0 to 1. 329.45/150.62 2_flat: 0 329.45/150.62 a: 0 329.45/150.62 2: 0 329.45/150.62 TOP: 0 329.45/150.62 b: 1 329.45/150.62 down: 0 329.45/150.62 f: 0 329.45/150.62 fresh_constant: 0 329.45/150.62 0: 0 329.45/150.62 up: 0 329.45/150.62 1: 0 329.45/150.62 1_flat: 0 329.45/150.62 0_flat: 0 329.45/150.62 f_flat: 0 329.45/150.62 By semantic labelling [SEMLAB] we obtain the following labelled QDP problem. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (161) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP.0(up.0(f.0(0.0(x0)))) -> TOP.0(f_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(0.1(x0)))) -> TOP.0(f_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.0(x0)))) -> TOP.0(f_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.1(x0)))) -> TOP.0(f_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.0(x0)))) -> TOP.0(f_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.1(x0)))) -> TOP.0(f_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.0(x0)))) -> TOP.0(0_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.1(x0)))) -> TOP.0(0_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.0(x0)))) -> TOP.0(0_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.1(x0)))) -> TOP.0(0_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.0(x0)))) -> TOP.0(0_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.1(x0)))) -> TOP.0(0_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.0(x0)))) -> TOP.0(1_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.1(x0)))) -> TOP.0(1_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.0(x0)))) -> TOP.0(1_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.1(x0)))) -> TOP.0(1_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.0(x0)))) -> TOP.0(1_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.1(x0)))) -> TOP.0(1_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.0(x0)))) -> TOP.0(2_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.1(x0)))) -> TOP.0(2_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.0(x0)))) -> TOP.0(2_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.1(x0)))) -> TOP.0(2_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.0(x0)))) -> TOP.0(2_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.1(x0)))) -> TOP.0(2_flat.0(down.0(2.1(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 2_flat.0(up.0(x_1)) -> up.0(2.0(x_1)) 329.45/150.62 2_flat.0(up.1(x_1)) -> up.0(2.1(x_1)) 329.45/150.62 down.0(2.0(f.0(x))) -> up.0(f.0(0.0(x))) 329.45/150.62 down.0(2.0(f.1(x))) -> up.0(f.0(0.1(x))) 329.45/150.62 down.0(2.0(a.)) -> 2_flat.0(down.0(a.)) 329.45/150.62 down.0(2.1(b.)) -> 2_flat.0(down.1(b.)) 329.45/150.62 down.0(2.0(0.0(y21))) -> 2_flat.0(down.0(0.0(y21))) 329.45/150.62 down.0(2.0(0.1(y21))) -> 2_flat.0(down.0(0.1(y21))) 329.45/150.62 down.0(2.0(1.0(y22))) -> 2_flat.0(down.0(1.0(y22))) 329.45/150.62 down.0(2.0(1.1(y22))) -> 2_flat.0(down.0(1.1(y22))) 329.45/150.62 down.0(2.0(2.0(y23))) -> 2_flat.0(down.0(2.0(y23))) 329.45/150.62 down.0(2.0(2.1(y23))) -> 2_flat.0(down.0(2.1(y23))) 329.45/150.62 down.0(1.0(f.0(x))) -> up.0(2.0(x)) 329.45/150.62 down.0(1.0(f.1(x))) -> up.0(2.1(x)) 329.45/150.62 down.0(1.0(a.)) -> 1_flat.0(down.0(a.)) 329.45/150.62 down.0(1.1(b.)) -> 1_flat.0(down.1(b.)) 329.45/150.62 down.0(1.0(0.0(y16))) -> 1_flat.0(down.0(0.0(y16))) 329.45/150.62 down.0(1.0(0.1(y16))) -> 1_flat.0(down.0(0.1(y16))) 329.45/150.62 down.0(1.0(1.0(y17))) -> 1_flat.0(down.0(1.0(y17))) 329.45/150.62 down.0(1.0(1.1(y17))) -> 1_flat.0(down.0(1.1(y17))) 329.45/150.62 down.0(1.0(2.0(y18))) -> 1_flat.0(down.0(2.0(y18))) 329.45/150.62 down.0(1.0(2.1(y18))) -> 1_flat.0(down.0(2.1(y18))) 329.45/150.62 1_flat.0(up.0(x_1)) -> up.0(1.0(x_1)) 329.45/150.62 1_flat.0(up.1(x_1)) -> up.0(1.1(x_1)) 329.45/150.62 down.0(0.0(f.0(x))) -> up.0(1.0(x)) 329.45/150.62 down.0(0.0(f.1(x))) -> up.0(1.1(x)) 329.45/150.62 down.0(0.0(a.)) -> 0_flat.0(down.0(a.)) 329.45/150.62 down.0(0.1(b.)) -> 0_flat.0(down.1(b.)) 329.45/150.62 down.0(0.0(0.0(y11))) -> 0_flat.0(down.0(0.0(y11))) 329.45/150.62 down.0(0.0(0.1(y11))) -> 0_flat.0(down.0(0.1(y11))) 329.45/150.62 down.0(0.0(1.0(y12))) -> 0_flat.0(down.0(1.0(y12))) 329.45/150.62 down.0(0.0(1.1(y12))) -> 0_flat.0(down.0(1.1(y12))) 329.45/150.62 down.0(0.0(2.0(y13))) -> 0_flat.0(down.0(2.0(y13))) 329.45/150.62 down.0(0.0(2.1(y13))) -> 0_flat.0(down.0(2.1(y13))) 329.45/150.62 0_flat.0(up.0(x_1)) -> up.0(0.0(x_1)) 329.45/150.62 0_flat.0(up.1(x_1)) -> up.0(0.1(x_1)) 329.45/150.62 down.0(a.) -> up.0(f.0(a.)) 329.45/150.62 f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) 329.45/150.62 f_flat.0(up.1(x_1)) -> up.0(f.1(x_1)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down.0(a.) 329.45/150.62 down.0(f.0(f.0(x0))) 329.45/150.62 down.0(f.0(f.1(x0))) 329.45/150.62 down.0(0.0(f.0(x0))) 329.45/150.62 down.0(0.0(f.1(x0))) 329.45/150.62 down.0(1.0(f.0(x0))) 329.45/150.62 down.0(1.0(f.1(x0))) 329.45/150.62 down.0(2.0(f.0(x0))) 329.45/150.62 down.0(2.0(f.1(x0))) 329.45/150.62 down.0(f.0(a.)) 329.45/150.62 down.0(f.1(b.)) 329.45/150.62 down.0(f.0(0.0(x0))) 329.45/150.62 down.0(f.0(0.1(x0))) 329.45/150.62 down.0(f.0(1.0(x0))) 329.45/150.62 down.0(f.0(1.1(x0))) 329.45/150.62 down.0(f.0(2.0(x0))) 329.45/150.62 down.0(f.0(2.1(x0))) 329.45/150.62 down.0(f.0(fresh_constant.)) 329.45/150.62 down.0(0.0(a.)) 329.45/150.62 down.0(0.1(b.)) 329.45/150.62 down.0(0.0(0.0(x0))) 329.45/150.62 down.0(0.0(0.1(x0))) 329.45/150.62 down.0(0.0(1.0(x0))) 329.45/150.62 down.0(0.0(1.1(x0))) 329.45/150.62 down.0(0.0(2.0(x0))) 329.45/150.62 down.0(0.0(2.1(x0))) 329.45/150.62 down.0(0.0(fresh_constant.)) 329.45/150.62 down.0(1.0(a.)) 329.45/150.62 down.0(1.1(b.)) 329.45/150.62 down.0(1.0(0.0(x0))) 329.45/150.62 down.0(1.0(0.1(x0))) 329.45/150.62 down.0(1.0(1.0(x0))) 329.45/150.62 down.0(1.0(1.1(x0))) 329.45/150.62 down.0(1.0(2.0(x0))) 329.45/150.62 down.0(1.0(2.1(x0))) 329.45/150.62 down.0(1.0(fresh_constant.)) 329.45/150.62 down.0(2.0(a.)) 329.45/150.62 down.0(2.1(b.)) 329.45/150.62 down.0(2.0(0.0(x0))) 329.45/150.62 down.0(2.0(0.1(x0))) 329.45/150.62 down.0(2.0(1.0(x0))) 329.45/150.62 down.0(2.0(1.1(x0))) 329.45/150.62 down.0(2.0(2.0(x0))) 329.45/150.62 down.0(2.0(2.1(x0))) 329.45/150.62 down.0(2.0(fresh_constant.)) 329.45/150.62 f_flat.0(up.0(x0)) 329.45/150.62 f_flat.0(up.1(x0)) 329.45/150.62 0_flat.0(up.0(x0)) 329.45/150.62 0_flat.0(up.1(x0)) 329.45/150.62 1_flat.0(up.0(x0)) 329.45/150.62 1_flat.0(up.1(x0)) 329.45/150.62 2_flat.0(up.0(x0)) 329.45/150.62 2_flat.0(up.1(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (162) UsableRulesReductionPairsProof (EQUIVALENT) 329.45/150.62 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. 329.45/150.62 329.45/150.62 No dependency pairs are removed. 329.45/150.62 329.45/150.62 The following rules are removed from R: 329.45/150.62 329.45/150.62 2_flat.0(up.1(x_1)) -> up.0(2.1(x_1)) 329.45/150.62 down.0(2.0(f.1(x))) -> up.0(f.0(0.1(x))) 329.45/150.62 down.0(1.0(f.1(x))) -> up.0(2.1(x)) 329.45/150.62 1_flat.0(up.1(x_1)) -> up.0(1.1(x_1)) 329.45/150.62 down.0(0.0(f.1(x))) -> up.0(1.1(x)) 329.45/150.62 0_flat.0(up.1(x_1)) -> up.0(0.1(x_1)) 329.45/150.62 f_flat.0(up.1(x_1)) -> up.0(f.1(x_1)) 329.45/150.62 Used ordering: POLO with Polynomial interpretation [POLO]: 329.45/150.62 329.45/150.62 POL(0.0(x_1)) = 1 + x_1 329.45/150.62 POL(0.1(x_1)) = 1 + x_1 329.45/150.62 POL(0_flat.0(x_1)) = 1 + x_1 329.45/150.62 POL(1.0(x_1)) = 1 + x_1 329.45/150.62 POL(1.1(x_1)) = 1 + x_1 329.45/150.62 POL(1_flat.0(x_1)) = 1 + x_1 329.45/150.62 POL(2.0(x_1)) = 1 + x_1 329.45/150.62 POL(2.1(x_1)) = 1 + x_1 329.45/150.62 POL(2_flat.0(x_1)) = 1 + x_1 329.45/150.62 POL(TOP.0(x_1)) = x_1 329.45/150.62 POL(a.) = 0 329.45/150.62 POL(b.) = 0 329.45/150.62 POL(down.0(x_1)) = x_1 329.45/150.62 POL(down.1(x_1)) = x_1 329.45/150.62 POL(f.0(x_1)) = x_1 329.45/150.62 POL(f.1(x_1)) = 1 + x_1 329.45/150.62 POL(f_flat.0(x_1)) = x_1 329.45/150.62 POL(up.0(x_1)) = x_1 329.45/150.62 POL(up.1(x_1)) = 1 + x_1 329.45/150.62 329.45/150.62 329.45/150.62 ---------------------------------------- 329.45/150.62 329.45/150.62 (163) 329.45/150.62 Obligation: 329.45/150.62 Q DP problem: 329.45/150.62 The TRS P consists of the following rules: 329.45/150.62 329.45/150.62 TOP.0(up.0(f.0(0.0(x0)))) -> TOP.0(f_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(0.1(x0)))) -> TOP.0(f_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.0(x0)))) -> TOP.0(f_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(1.1(x0)))) -> TOP.0(f_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.0(x0)))) -> TOP.0(f_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(f.0(2.1(x0)))) -> TOP.0(f_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.0(x0)))) -> TOP.0(0_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(0.1(x0)))) -> TOP.0(0_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.0(x0)))) -> TOP.0(0_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(1.1(x0)))) -> TOP.0(0_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.0(x0)))) -> TOP.0(0_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(0.0(2.1(x0)))) -> TOP.0(0_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.0(x0)))) -> TOP.0(1_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(0.1(x0)))) -> TOP.0(1_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.0(x0)))) -> TOP.0(1_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(1.1(x0)))) -> TOP.0(1_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.0(x0)))) -> TOP.0(1_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(1.0(2.1(x0)))) -> TOP.0(1_flat.0(down.0(2.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.0(x0)))) -> TOP.0(2_flat.0(down.0(0.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(0.1(x0)))) -> TOP.0(2_flat.0(down.0(0.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.0(x0)))) -> TOP.0(2_flat.0(down.0(1.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(1.1(x0)))) -> TOP.0(2_flat.0(down.0(1.1(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.0(x0)))) -> TOP.0(2_flat.0(down.0(2.0(x0)))) 329.45/150.62 TOP.0(up.0(2.0(2.1(x0)))) -> TOP.0(2_flat.0(down.0(2.1(x0)))) 329.45/150.62 329.45/150.62 The TRS R consists of the following rules: 329.45/150.62 329.45/150.62 down.0(2.1(b.)) -> 2_flat.0(down.1(b.)) 329.45/150.62 2_flat.0(up.0(x_1)) -> up.0(2.0(x_1)) 329.45/150.62 down.0(2.0(f.0(x))) -> up.0(f.0(0.0(x))) 329.45/150.62 down.0(2.0(a.)) -> 2_flat.0(down.0(a.)) 329.45/150.62 down.0(2.0(0.0(y21))) -> 2_flat.0(down.0(0.0(y21))) 329.45/150.62 down.0(2.0(0.1(y21))) -> 2_flat.0(down.0(0.1(y21))) 329.45/150.62 down.0(2.0(1.0(y22))) -> 2_flat.0(down.0(1.0(y22))) 329.45/150.62 down.0(2.0(1.1(y22))) -> 2_flat.0(down.0(1.1(y22))) 329.45/150.62 down.0(2.0(2.0(y23))) -> 2_flat.0(down.0(2.0(y23))) 329.45/150.62 down.0(2.0(2.1(y23))) -> 2_flat.0(down.0(2.1(y23))) 329.45/150.62 down.0(1.1(b.)) -> 1_flat.0(down.1(b.)) 329.45/150.62 down.0(1.0(f.0(x))) -> up.0(2.0(x)) 329.45/150.62 down.0(1.0(a.)) -> 1_flat.0(down.0(a.)) 329.45/150.62 down.0(1.0(0.0(y16))) -> 1_flat.0(down.0(0.0(y16))) 329.45/150.62 down.0(1.0(0.1(y16))) -> 1_flat.0(down.0(0.1(y16))) 329.45/150.62 down.0(1.0(1.0(y17))) -> 1_flat.0(down.0(1.0(y17))) 329.45/150.62 down.0(1.0(1.1(y17))) -> 1_flat.0(down.0(1.1(y17))) 329.45/150.62 down.0(1.0(2.0(y18))) -> 1_flat.0(down.0(2.0(y18))) 329.45/150.62 down.0(1.0(2.1(y18))) -> 1_flat.0(down.0(2.1(y18))) 329.45/150.62 1_flat.0(up.0(x_1)) -> up.0(1.0(x_1)) 329.45/150.62 down.0(0.1(b.)) -> 0_flat.0(down.1(b.)) 329.45/150.62 down.0(0.0(f.0(x))) -> up.0(1.0(x)) 329.45/150.62 down.0(0.0(a.)) -> 0_flat.0(down.0(a.)) 329.45/150.62 down.0(0.0(0.0(y11))) -> 0_flat.0(down.0(0.0(y11))) 329.45/150.62 down.0(0.0(0.1(y11))) -> 0_flat.0(down.0(0.1(y11))) 329.45/150.62 down.0(0.0(1.0(y12))) -> 0_flat.0(down.0(1.0(y12))) 329.45/150.62 down.0(0.0(1.1(y12))) -> 0_flat.0(down.0(1.1(y12))) 329.45/150.62 down.0(0.0(2.0(y13))) -> 0_flat.0(down.0(2.0(y13))) 329.45/150.62 down.0(0.0(2.1(y13))) -> 0_flat.0(down.0(2.1(y13))) 329.45/150.62 0_flat.0(up.0(x_1)) -> up.0(0.0(x_1)) 329.45/150.62 down.0(a.) -> up.0(f.0(a.)) 329.45/150.62 f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) 329.45/150.62 329.45/150.62 The set Q consists of the following terms: 329.45/150.62 329.45/150.62 down.0(a.) 329.45/150.62 down.0(f.0(f.0(x0))) 329.45/150.62 down.0(f.0(f.1(x0))) 329.45/150.62 down.0(0.0(f.0(x0))) 329.45/150.62 down.0(0.0(f.1(x0))) 329.45/150.62 down.0(1.0(f.0(x0))) 329.45/150.62 down.0(1.0(f.1(x0))) 329.45/150.62 down.0(2.0(f.0(x0))) 329.45/150.62 down.0(2.0(f.1(x0))) 329.45/150.62 down.0(f.0(a.)) 329.45/150.62 down.0(f.1(b.)) 329.45/150.62 down.0(f.0(0.0(x0))) 329.45/150.62 down.0(f.0(0.1(x0))) 329.45/150.62 down.0(f.0(1.0(x0))) 329.45/150.62 down.0(f.0(1.1(x0))) 329.45/150.62 down.0(f.0(2.0(x0))) 329.45/150.62 down.0(f.0(2.1(x0))) 329.45/150.62 down.0(f.0(fresh_constant.)) 329.45/150.62 down.0(0.0(a.)) 329.45/150.62 down.0(0.1(b.)) 329.45/150.62 down.0(0.0(0.0(x0))) 329.45/150.62 down.0(0.0(0.1(x0))) 329.45/150.62 down.0(0.0(1.0(x0))) 329.45/150.62 down.0(0.0(1.1(x0))) 329.45/150.62 down.0(0.0(2.0(x0))) 329.45/150.62 down.0(0.0(2.1(x0))) 329.45/150.62 down.0(0.0(fresh_constant.)) 329.45/150.62 down.0(1.0(a.)) 329.45/150.62 down.0(1.1(b.)) 329.45/150.62 down.0(1.0(0.0(x0))) 329.45/150.62 down.0(1.0(0.1(x0))) 329.45/150.62 down.0(1.0(1.0(x0))) 329.45/150.62 down.0(1.0(1.1(x0))) 329.45/150.62 down.0(1.0(2.0(x0))) 329.45/150.62 down.0(1.0(2.1(x0))) 329.45/150.62 down.0(1.0(fresh_constant.)) 329.45/150.62 down.0(2.0(a.)) 329.45/150.62 down.0(2.1(b.)) 329.45/150.62 down.0(2.0(0.0(x0))) 329.45/150.62 down.0(2.0(0.1(x0))) 329.45/150.62 down.0(2.0(1.0(x0))) 329.45/150.62 down.0(2.0(1.1(x0))) 329.45/150.62 down.0(2.0(2.0(x0))) 329.45/150.62 down.0(2.0(2.1(x0))) 329.45/150.62 down.0(2.0(fresh_constant.)) 329.45/150.62 f_flat.0(up.0(x0)) 329.45/150.62 f_flat.0(up.1(x0)) 329.45/150.62 0_flat.0(up.0(x0)) 329.45/150.62 0_flat.0(up.1(x0)) 329.45/150.62 1_flat.0(up.0(x0)) 329.45/150.62 1_flat.0(up.1(x0)) 329.45/150.62 2_flat.0(up.0(x0)) 329.45/150.62 2_flat.0(up.1(x0)) 329.45/150.62 329.45/150.62 We have to consider all minimal (P,Q,R)-chains. 329.45/150.62 ---------------------------------------- 329.45/150.63 329.45/150.63 (164) MRRProof (EQUIVALENT) 329.45/150.63 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. 329.45/150.63 329.45/150.63 329.45/150.63 Strictly oriented rules of the TRS R: 329.45/150.63 329.45/150.63 down.0(2.1(b.)) -> 2_flat.0(down.1(b.)) 329.45/150.63 down.0(1.1(b.)) -> 1_flat.0(down.1(b.)) 329.45/150.63 down.0(0.1(b.)) -> 0_flat.0(down.1(b.)) 329.45/150.63 329.45/150.63 Used ordering: Polynomial interpretation [POLO]: 329.45/150.63 329.45/150.63 POL(0.0(x_1)) = x_1 329.45/150.63 POL(0.1(x_1)) = 1 + x_1 329.45/150.63 POL(0_flat.0(x_1)) = x_1 329.45/150.63 POL(1.0(x_1)) = x_1 329.45/150.63 POL(1.1(x_1)) = 1 + x_1 329.45/150.63 POL(1_flat.0(x_1)) = x_1 329.45/150.63 POL(2.0(x_1)) = x_1 329.45/150.63 POL(2.1(x_1)) = 1 + x_1 329.45/150.63 POL(2_flat.0(x_1)) = x_1 329.45/150.63 POL(TOP.0(x_1)) = x_1 329.45/150.63 POL(a.) = 0 329.45/150.63 POL(b.) = 0 329.45/150.63 POL(down.0(x_1)) = x_1 329.45/150.63 POL(down.1(x_1)) = x_1 329.45/150.63 POL(f.0(x_1)) = x_1 329.45/150.63 POL(f_flat.0(x_1)) = x_1 329.45/150.63 POL(up.0(x_1)) = x_1 329.45/150.63 329.45/150.63 329.45/150.63 ---------------------------------------- 329.45/150.63 329.45/150.63 (165) 329.45/150.63 Obligation: 329.45/150.63 Q DP problem: 329.45/150.63 The TRS P consists of the following rules: 329.45/150.63 329.45/150.63 TOP.0(up.0(f.0(0.0(x0)))) -> TOP.0(f_flat.0(down.0(0.0(x0)))) 329.45/150.63 TOP.0(up.0(f.0(0.1(x0)))) -> TOP.0(f_flat.0(down.0(0.1(x0)))) 329.45/150.63 TOP.0(up.0(f.0(1.0(x0)))) -> TOP.0(f_flat.0(down.0(1.0(x0)))) 329.45/150.63 TOP.0(up.0(f.0(1.1(x0)))) -> TOP.0(f_flat.0(down.0(1.1(x0)))) 329.45/150.63 TOP.0(up.0(f.0(2.0(x0)))) -> TOP.0(f_flat.0(down.0(2.0(x0)))) 329.45/150.63 TOP.0(up.0(f.0(2.1(x0)))) -> TOP.0(f_flat.0(down.0(2.1(x0)))) 329.45/150.63 TOP.0(up.0(0.0(0.0(x0)))) -> TOP.0(0_flat.0(down.0(0.0(x0)))) 329.45/150.63 TOP.0(up.0(0.0(0.1(x0)))) -> TOP.0(0_flat.0(down.0(0.1(x0)))) 329.45/150.63 TOP.0(up.0(0.0(1.0(x0)))) -> TOP.0(0_flat.0(down.0(1.0(x0)))) 329.45/150.63 TOP.0(up.0(0.0(1.1(x0)))) -> TOP.0(0_flat.0(down.0(1.1(x0)))) 329.45/150.63 TOP.0(up.0(0.0(2.0(x0)))) -> TOP.0(0_flat.0(down.0(2.0(x0)))) 329.45/150.63 TOP.0(up.0(0.0(2.1(x0)))) -> TOP.0(0_flat.0(down.0(2.1(x0)))) 329.45/150.63 TOP.0(up.0(1.0(0.0(x0)))) -> TOP.0(1_flat.0(down.0(0.0(x0)))) 329.45/150.63 TOP.0(up.0(1.0(0.1(x0)))) -> TOP.0(1_flat.0(down.0(0.1(x0)))) 329.45/150.63 TOP.0(up.0(1.0(1.0(x0)))) -> TOP.0(1_flat.0(down.0(1.0(x0)))) 329.45/150.63 TOP.0(up.0(1.0(1.1(x0)))) -> TOP.0(1_flat.0(down.0(1.1(x0)))) 329.45/150.63 TOP.0(up.0(1.0(2.0(x0)))) -> TOP.0(1_flat.0(down.0(2.0(x0)))) 329.45/150.63 TOP.0(up.0(1.0(2.1(x0)))) -> TOP.0(1_flat.0(down.0(2.1(x0)))) 329.45/150.63 TOP.0(up.0(2.0(0.0(x0)))) -> TOP.0(2_flat.0(down.0(0.0(x0)))) 329.45/150.63 TOP.0(up.0(2.0(0.1(x0)))) -> TOP.0(2_flat.0(down.0(0.1(x0)))) 329.45/150.63 TOP.0(up.0(2.0(1.0(x0)))) -> TOP.0(2_flat.0(down.0(1.0(x0)))) 329.45/150.63 TOP.0(up.0(2.0(1.1(x0)))) -> TOP.0(2_flat.0(down.0(1.1(x0)))) 329.45/150.63 TOP.0(up.0(2.0(2.0(x0)))) -> TOP.0(2_flat.0(down.0(2.0(x0)))) 329.45/150.63 TOP.0(up.0(2.0(2.1(x0)))) -> TOP.0(2_flat.0(down.0(2.1(x0)))) 329.45/150.63 329.45/150.63 The TRS R consists of the following rules: 329.45/150.63 329.45/150.63 2_flat.0(up.0(x_1)) -> up.0(2.0(x_1)) 329.45/150.63 down.0(2.0(f.0(x))) -> up.0(f.0(0.0(x))) 329.45/150.63 down.0(2.0(a.)) -> 2_flat.0(down.0(a.)) 329.45/150.63 down.0(2.0(0.0(y21))) -> 2_flat.0(down.0(0.0(y21))) 329.45/150.63 down.0(2.0(0.1(y21))) -> 2_flat.0(down.0(0.1(y21))) 329.45/150.63 down.0(2.0(1.0(y22))) -> 2_flat.0(down.0(1.0(y22))) 329.45/150.63 down.0(2.0(1.1(y22))) -> 2_flat.0(down.0(1.1(y22))) 329.45/150.63 down.0(2.0(2.0(y23))) -> 2_flat.0(down.0(2.0(y23))) 329.45/150.63 down.0(2.0(2.1(y23))) -> 2_flat.0(down.0(2.1(y23))) 329.45/150.63 down.0(1.0(f.0(x))) -> up.0(2.0(x)) 329.45/150.63 down.0(1.0(a.)) -> 1_flat.0(down.0(a.)) 329.45/150.63 down.0(1.0(0.0(y16))) -> 1_flat.0(down.0(0.0(y16))) 329.45/150.63 down.0(1.0(0.1(y16))) -> 1_flat.0(down.0(0.1(y16))) 329.45/150.63 down.0(1.0(1.0(y17))) -> 1_flat.0(down.0(1.0(y17))) 329.45/150.63 down.0(1.0(1.1(y17))) -> 1_flat.0(down.0(1.1(y17))) 329.45/150.63 down.0(1.0(2.0(y18))) -> 1_flat.0(down.0(2.0(y18))) 329.45/150.63 down.0(1.0(2.1(y18))) -> 1_flat.0(down.0(2.1(y18))) 329.45/150.63 1_flat.0(up.0(x_1)) -> up.0(1.0(x_1)) 329.45/150.63 down.0(0.0(f.0(x))) -> up.0(1.0(x)) 329.45/150.63 down.0(0.0(a.)) -> 0_flat.0(down.0(a.)) 329.45/150.63 down.0(0.0(0.0(y11))) -> 0_flat.0(down.0(0.0(y11))) 329.45/150.63 down.0(0.0(0.1(y11))) -> 0_flat.0(down.0(0.1(y11))) 329.45/150.63 down.0(0.0(1.0(y12))) -> 0_flat.0(down.0(1.0(y12))) 329.45/150.63 down.0(0.0(1.1(y12))) -> 0_flat.0(down.0(1.1(y12))) 329.45/150.63 down.0(0.0(2.0(y13))) -> 0_flat.0(down.0(2.0(y13))) 329.45/150.63 down.0(0.0(2.1(y13))) -> 0_flat.0(down.0(2.1(y13))) 329.45/150.63 0_flat.0(up.0(x_1)) -> up.0(0.0(x_1)) 329.45/150.63 down.0(a.) -> up.0(f.0(a.)) 329.45/150.63 f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) 329.45/150.63 329.45/150.63 The set Q consists of the following terms: 329.45/150.63 329.45/150.63 down.0(a.) 329.45/150.63 down.0(f.0(f.0(x0))) 329.45/150.63 down.0(f.0(f.1(x0))) 329.45/150.63 down.0(0.0(f.0(x0))) 329.45/150.63 down.0(0.0(f.1(x0))) 329.45/150.63 down.0(1.0(f.0(x0))) 329.45/150.63 down.0(1.0(f.1(x0))) 329.45/150.63 down.0(2.0(f.0(x0))) 329.45/150.63 down.0(2.0(f.1(x0))) 329.45/150.63 down.0(f.0(a.)) 329.45/150.63 down.0(f.1(b.)) 329.45/150.63 down.0(f.0(0.0(x0))) 329.45/150.63 down.0(f.0(0.1(x0))) 329.45/150.63 down.0(f.0(1.0(x0))) 329.45/150.63 down.0(f.0(1.1(x0))) 329.45/150.63 down.0(f.0(2.0(x0))) 329.45/150.63 down.0(f.0(2.1(x0))) 329.45/150.63 down.0(f.0(fresh_constant.)) 329.45/150.63 down.0(0.0(a.)) 329.45/150.63 down.0(0.1(b.)) 329.45/150.63 down.0(0.0(0.0(x0))) 329.45/150.63 down.0(0.0(0.1(x0))) 329.45/150.63 down.0(0.0(1.0(x0))) 329.45/150.63 down.0(0.0(1.1(x0))) 329.45/150.63 down.0(0.0(2.0(x0))) 329.45/150.63 down.0(0.0(2.1(x0))) 329.45/150.63 down.0(0.0(fresh_constant.)) 329.45/150.63 down.0(1.0(a.)) 329.45/150.63 down.0(1.1(b.)) 329.45/150.63 down.0(1.0(0.0(x0))) 329.45/150.63 down.0(1.0(0.1(x0))) 329.45/150.63 down.0(1.0(1.0(x0))) 329.45/150.63 down.0(1.0(1.1(x0))) 329.45/150.63 down.0(1.0(2.0(x0))) 329.45/150.63 down.0(1.0(2.1(x0))) 329.45/150.63 down.0(1.0(fresh_constant.)) 329.45/150.63 down.0(2.0(a.)) 329.45/150.63 down.0(2.1(b.)) 329.45/150.63 down.0(2.0(0.0(x0))) 329.45/150.63 down.0(2.0(0.1(x0))) 329.45/150.63 down.0(2.0(1.0(x0))) 329.45/150.63 down.0(2.0(1.1(x0))) 329.45/150.63 down.0(2.0(2.0(x0))) 329.45/150.63 down.0(2.0(2.1(x0))) 329.45/150.63 down.0(2.0(fresh_constant.)) 329.45/150.63 f_flat.0(up.0(x0)) 329.45/150.63 f_flat.0(up.1(x0)) 329.45/150.63 0_flat.0(up.0(x0)) 329.45/150.63 0_flat.0(up.1(x0)) 329.45/150.63 1_flat.0(up.0(x0)) 329.45/150.63 1_flat.0(up.1(x0)) 329.45/150.63 2_flat.0(up.0(x0)) 329.45/150.63 2_flat.0(up.1(x0)) 329.45/150.63 329.45/150.63 We have to consider all minimal (P,Q,R)-chains. 329.45/150.63 ---------------------------------------- 329.45/150.63 329.45/150.63 (166) DependencyGraphProof (EQUIVALENT) 329.45/150.63 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 12 less nodes. 329.45/150.63 ---------------------------------------- 329.45/150.63 329.45/150.63 (167) 329.45/150.63 Obligation: 329.45/150.63 Q DP problem: 329.45/150.63 The TRS P consists of the following rules: 329.45/150.63 329.45/150.63 TOP.0(up.0(f.0(0.0(x0)))) -> TOP.0(f_flat.0(down.0(0.0(x0)))) 329.45/150.63 TOP.0(up.0(f.0(1.0(x0)))) -> TOP.0(f_flat.0(down.0(1.0(x0)))) 329.45/150.63 TOP.0(up.0(f.0(2.0(x0)))) -> TOP.0(f_flat.0(down.0(2.0(x0)))) 329.45/150.63 TOP.0(up.0(0.0(0.0(x0)))) -> TOP.0(0_flat.0(down.0(0.0(x0)))) 329.45/150.63 TOP.0(up.0(0.0(1.0(x0)))) -> TOP.0(0_flat.0(down.0(1.0(x0)))) 329.45/150.63 TOP.0(up.0(0.0(2.0(x0)))) -> TOP.0(0_flat.0(down.0(2.0(x0)))) 329.45/150.63 TOP.0(up.0(1.0(0.0(x0)))) -> TOP.0(1_flat.0(down.0(0.0(x0)))) 329.45/150.63 TOP.0(up.0(1.0(1.0(x0)))) -> TOP.0(1_flat.0(down.0(1.0(x0)))) 329.45/150.63 TOP.0(up.0(1.0(2.0(x0)))) -> TOP.0(1_flat.0(down.0(2.0(x0)))) 329.45/150.63 TOP.0(up.0(2.0(0.0(x0)))) -> TOP.0(2_flat.0(down.0(0.0(x0)))) 329.45/150.63 TOP.0(up.0(2.0(1.0(x0)))) -> TOP.0(2_flat.0(down.0(1.0(x0)))) 329.45/150.63 TOP.0(up.0(2.0(2.0(x0)))) -> TOP.0(2_flat.0(down.0(2.0(x0)))) 329.45/150.63 329.45/150.63 The TRS R consists of the following rules: 329.45/150.63 329.45/150.63 2_flat.0(up.0(x_1)) -> up.0(2.0(x_1)) 329.45/150.63 down.0(2.0(f.0(x))) -> up.0(f.0(0.0(x))) 329.45/150.63 down.0(2.0(a.)) -> 2_flat.0(down.0(a.)) 329.45/150.63 down.0(2.0(0.0(y21))) -> 2_flat.0(down.0(0.0(y21))) 329.45/150.63 down.0(2.0(0.1(y21))) -> 2_flat.0(down.0(0.1(y21))) 329.45/150.63 down.0(2.0(1.0(y22))) -> 2_flat.0(down.0(1.0(y22))) 329.45/150.63 down.0(2.0(1.1(y22))) -> 2_flat.0(down.0(1.1(y22))) 329.45/150.63 down.0(2.0(2.0(y23))) -> 2_flat.0(down.0(2.0(y23))) 329.45/150.63 down.0(2.0(2.1(y23))) -> 2_flat.0(down.0(2.1(y23))) 329.45/150.63 down.0(1.0(f.0(x))) -> up.0(2.0(x)) 329.45/150.63 down.0(1.0(a.)) -> 1_flat.0(down.0(a.)) 329.45/150.63 down.0(1.0(0.0(y16))) -> 1_flat.0(down.0(0.0(y16))) 329.45/150.63 down.0(1.0(0.1(y16))) -> 1_flat.0(down.0(0.1(y16))) 329.45/150.63 down.0(1.0(1.0(y17))) -> 1_flat.0(down.0(1.0(y17))) 329.45/150.63 down.0(1.0(1.1(y17))) -> 1_flat.0(down.0(1.1(y17))) 329.45/150.63 down.0(1.0(2.0(y18))) -> 1_flat.0(down.0(2.0(y18))) 329.45/150.63 down.0(1.0(2.1(y18))) -> 1_flat.0(down.0(2.1(y18))) 329.45/150.63 1_flat.0(up.0(x_1)) -> up.0(1.0(x_1)) 329.45/150.63 down.0(0.0(f.0(x))) -> up.0(1.0(x)) 329.45/150.63 down.0(0.0(a.)) -> 0_flat.0(down.0(a.)) 329.45/150.63 down.0(0.0(0.0(y11))) -> 0_flat.0(down.0(0.0(y11))) 329.45/150.63 down.0(0.0(0.1(y11))) -> 0_flat.0(down.0(0.1(y11))) 329.45/150.63 down.0(0.0(1.0(y12))) -> 0_flat.0(down.0(1.0(y12))) 329.45/150.63 down.0(0.0(1.1(y12))) -> 0_flat.0(down.0(1.1(y12))) 329.45/150.63 down.0(0.0(2.0(y13))) -> 0_flat.0(down.0(2.0(y13))) 329.45/150.63 down.0(0.0(2.1(y13))) -> 0_flat.0(down.0(2.1(y13))) 329.45/150.63 0_flat.0(up.0(x_1)) -> up.0(0.0(x_1)) 329.45/150.63 down.0(a.) -> up.0(f.0(a.)) 329.45/150.63 f_flat.0(up.0(x_1)) -> up.0(f.0(x_1)) 329.45/150.63 329.45/150.63 The set Q consists of the following terms: 329.45/150.63 329.45/150.63 down.0(a.) 329.45/150.63 down.0(f.0(f.0(x0))) 329.45/150.63 down.0(f.0(f.1(x0))) 329.45/150.63 down.0(0.0(f.0(x0))) 329.45/150.63 down.0(0.0(f.1(x0))) 329.45/150.63 down.0(1.0(f.0(x0))) 329.45/150.63 down.0(1.0(f.1(x0))) 329.45/150.63 down.0(2.0(f.0(x0))) 329.45/150.63 down.0(2.0(f.1(x0))) 329.45/150.63 down.0(f.0(a.)) 329.45/150.63 down.0(f.1(b.)) 329.45/150.63 down.0(f.0(0.0(x0))) 329.45/150.63 down.0(f.0(0.1(x0))) 329.45/150.63 down.0(f.0(1.0(x0))) 329.45/150.63 down.0(f.0(1.1(x0))) 329.45/150.63 down.0(f.0(2.0(x0))) 329.45/150.63 down.0(f.0(2.1(x0))) 329.45/150.63 down.0(f.0(fresh_constant.)) 329.45/150.63 down.0(0.0(a.)) 329.45/150.63 down.0(0.1(b.)) 329.45/150.63 down.0(0.0(0.0(x0))) 329.45/150.63 down.0(0.0(0.1(x0))) 329.45/150.63 down.0(0.0(1.0(x0))) 329.45/150.63 down.0(0.0(1.1(x0))) 329.45/150.63 down.0(0.0(2.0(x0))) 329.45/150.63 down.0(0.0(2.1(x0))) 329.45/150.63 down.0(0.0(fresh_constant.)) 329.45/150.63 down.0(1.0(a.)) 329.45/150.63 down.0(1.1(b.)) 329.45/150.63 down.0(1.0(0.0(x0))) 329.45/150.63 down.0(1.0(0.1(x0))) 329.45/150.63 down.0(1.0(1.0(x0))) 329.45/150.63 down.0(1.0(1.1(x0))) 329.45/150.63 down.0(1.0(2.0(x0))) 329.45/150.63 down.0(1.0(2.1(x0))) 329.45/150.63 down.0(1.0(fresh_constant.)) 329.45/150.63 down.0(2.0(a.)) 329.45/150.63 down.0(2.1(b.)) 329.45/150.63 down.0(2.0(0.0(x0))) 329.45/150.63 down.0(2.0(0.1(x0))) 329.45/150.63 down.0(2.0(1.0(x0))) 329.45/150.63 down.0(2.0(1.1(x0))) 329.45/150.63 down.0(2.0(2.0(x0))) 329.45/150.63 down.0(2.0(2.1(x0))) 329.45/150.63 down.0(2.0(fresh_constant.)) 329.45/150.63 f_flat.0(up.0(x0)) 329.45/150.63 f_flat.0(up.1(x0)) 329.45/150.63 0_flat.0(up.0(x0)) 329.45/150.63 0_flat.0(up.1(x0)) 329.45/150.63 1_flat.0(up.0(x0)) 329.45/150.63 1_flat.0(up.1(x0)) 329.45/150.63 2_flat.0(up.0(x0)) 329.45/150.63 2_flat.0(up.1(x0)) 329.45/150.63 329.45/150.63 We have to consider all minimal (P,Q,R)-chains. 329.45/150.63 ---------------------------------------- 329.45/150.63 329.45/150.63 (168) PisEmptyProof (SOUND) 329.45/150.63 The TRS P is empty. Hence, there is no (P,Q,R) chain. 329.45/150.63 ---------------------------------------- 329.45/150.63 329.45/150.63 (169) 329.45/150.63 TRUE 329.45/150.63 329.45/150.63 ---------------------------------------- 329.45/150.63 329.45/150.63 (170) 329.45/150.63 Obligation: 329.45/150.63 Q DP problem: 329.45/150.63 The TRS P consists of the following rules: 329.45/150.63 329.45/150.63 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.63 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.63 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.63 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.63 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.63 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.63 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.63 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.63 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.63 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.63 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.63 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.63 329.45/150.63 The TRS R consists of the following rules: 329.45/150.63 329.45/150.63 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.63 down(2(f(x))) -> up(f(0(x))) 329.45/150.63 down(2(a)) -> 2_flat(down(a)) 329.45/150.63 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.63 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.63 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.63 down(1(f(x))) -> up(2(x)) 329.45/150.63 down(1(a)) -> 1_flat(down(a)) 329.45/150.63 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.63 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.63 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.63 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.63 down(0(f(x))) -> up(1(x)) 329.45/150.63 down(0(a)) -> 0_flat(down(a)) 329.45/150.63 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.63 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.63 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.63 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.63 down(a) -> up(f(a)) 329.45/150.63 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.63 329.45/150.63 The set Q consists of the following terms: 329.45/150.63 329.45/150.63 down(a) 329.45/150.63 down(f(f(x0))) 329.45/150.63 down(0(f(x0))) 329.45/150.63 down(1(f(x0))) 329.45/150.63 down(2(f(x0))) 329.45/150.63 down(f(a)) 329.45/150.63 down(f(b)) 329.45/150.63 down(f(0(x0))) 329.45/150.63 down(f(1(x0))) 329.45/150.63 down(f(2(x0))) 329.45/150.63 down(f(fresh_constant)) 329.45/150.63 down(0(a)) 329.45/150.63 down(0(b)) 329.45/150.63 down(0(0(x0))) 329.45/150.63 down(0(1(x0))) 329.45/150.63 down(0(2(x0))) 329.45/150.63 down(0(fresh_constant)) 329.45/150.63 down(1(a)) 329.45/150.63 down(1(b)) 329.45/150.63 down(1(0(x0))) 329.45/150.63 down(1(1(x0))) 329.45/150.63 down(1(2(x0))) 329.45/150.63 down(1(fresh_constant)) 329.45/150.63 down(2(a)) 329.45/150.63 down(2(b)) 329.45/150.63 down(2(0(x0))) 329.45/150.63 down(2(1(x0))) 329.45/150.63 down(2(2(x0))) 329.45/150.63 down(2(fresh_constant)) 329.45/150.63 f_flat(up(x0)) 329.45/150.63 0_flat(up(x0)) 329.45/150.63 1_flat(up(x0)) 329.45/150.63 2_flat(up(x0)) 329.45/150.63 329.45/150.63 We have to consider all minimal (P,Q,R)-chains. 329.45/150.63 ---------------------------------------- 329.45/150.63 329.45/150.63 (171) QReductionProof (EQUIVALENT) 329.45/150.63 We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. 329.45/150.63 329.45/150.63 down(f(b)) 329.45/150.63 down(f(fresh_constant)) 329.45/150.63 down(0(b)) 329.45/150.63 down(0(fresh_constant)) 329.45/150.63 down(1(b)) 329.45/150.63 down(1(fresh_constant)) 329.45/150.63 down(2(b)) 329.45/150.63 down(2(fresh_constant)) 329.45/150.63 329.45/150.63 329.45/150.63 ---------------------------------------- 329.45/150.63 329.45/150.63 (172) 329.45/150.63 Obligation: 329.45/150.63 Q DP problem: 329.45/150.63 The TRS P consists of the following rules: 329.45/150.63 329.45/150.63 TOP(up(f(0(x0)))) -> TOP(f_flat(down(0(x0)))) 329.45/150.63 TOP(up(f(1(x0)))) -> TOP(f_flat(down(1(x0)))) 329.45/150.63 TOP(up(f(2(x0)))) -> TOP(f_flat(down(2(x0)))) 329.45/150.63 TOP(up(0(0(x0)))) -> TOP(0_flat(down(0(x0)))) 329.45/150.63 TOP(up(0(1(x0)))) -> TOP(0_flat(down(1(x0)))) 329.45/150.63 TOP(up(0(2(x0)))) -> TOP(0_flat(down(2(x0)))) 329.45/150.63 TOP(up(1(0(x0)))) -> TOP(1_flat(down(0(x0)))) 329.45/150.63 TOP(up(1(1(x0)))) -> TOP(1_flat(down(1(x0)))) 329.45/150.63 TOP(up(1(2(x0)))) -> TOP(1_flat(down(2(x0)))) 329.45/150.63 TOP(up(2(0(x0)))) -> TOP(2_flat(down(0(x0)))) 329.45/150.63 TOP(up(2(1(x0)))) -> TOP(2_flat(down(1(x0)))) 329.45/150.63 TOP(up(2(2(x0)))) -> TOP(2_flat(down(2(x0)))) 329.45/150.63 329.45/150.63 The TRS R consists of the following rules: 329.45/150.63 329.45/150.63 2_flat(up(x_1)) -> up(2(x_1)) 329.45/150.63 down(2(f(x))) -> up(f(0(x))) 329.45/150.63 down(2(a)) -> 2_flat(down(a)) 329.45/150.63 down(2(0(y21))) -> 2_flat(down(0(y21))) 329.45/150.63 down(2(1(y22))) -> 2_flat(down(1(y22))) 329.45/150.63 down(2(2(y23))) -> 2_flat(down(2(y23))) 329.45/150.63 down(1(f(x))) -> up(2(x)) 329.45/150.63 down(1(a)) -> 1_flat(down(a)) 329.45/150.63 down(1(0(y16))) -> 1_flat(down(0(y16))) 329.45/150.63 down(1(1(y17))) -> 1_flat(down(1(y17))) 329.45/150.63 down(1(2(y18))) -> 1_flat(down(2(y18))) 329.45/150.63 1_flat(up(x_1)) -> up(1(x_1)) 329.45/150.63 down(0(f(x))) -> up(1(x)) 329.45/150.63 down(0(a)) -> 0_flat(down(a)) 329.45/150.63 down(0(0(y11))) -> 0_flat(down(0(y11))) 329.45/150.63 down(0(1(y12))) -> 0_flat(down(1(y12))) 329.45/150.63 down(0(2(y13))) -> 0_flat(down(2(y13))) 329.45/150.63 0_flat(up(x_1)) -> up(0(x_1)) 329.45/150.63 down(a) -> up(f(a)) 329.45/150.63 f_flat(up(x_1)) -> up(f(x_1)) 329.45/150.63 329.45/150.63 The set Q consists of the following terms: 329.45/150.63 329.45/150.63 down(a) 329.45/150.63 down(f(f(x0))) 329.45/150.63 down(0(f(x0))) 329.45/150.63 down(1(f(x0))) 329.45/150.63 down(2(f(x0))) 329.45/150.63 down(f(a)) 329.45/150.63 down(f(0(x0))) 329.45/150.63 down(f(1(x0))) 329.45/150.63 down(f(2(x0))) 329.45/150.63 down(0(a)) 329.45/150.63 down(0(0(x0))) 329.45/150.63 down(0(1(x0))) 329.45/150.63 down(0(2(x0))) 329.45/150.63 down(1(a)) 329.45/150.63 down(1(0(x0))) 329.45/150.63 down(1(1(x0))) 329.45/150.63 down(1(2(x0))) 329.45/150.63 down(2(a)) 329.45/150.63 down(2(0(x0))) 329.45/150.63 down(2(1(x0))) 329.45/150.63 down(2(2(x0))) 329.45/150.63 f_flat(up(x0)) 329.45/150.63 0_flat(up(x0)) 329.45/150.63 1_flat(up(x0)) 329.45/150.63 2_flat(up(x0)) 329.45/150.63 329.45/150.63 We have to consider all (P,Q,R)-chains. 329.67/150.69 EOF