KILLED proof of input_lcdMHs7EUY.trs # AProVE Commit ID: 5b976082cb74a395683ed8cc7acf94bd611ab29f fuhs 20230524 unpublished The Runtime Complexity (parallel-innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). (0) CpxRelTRS (1) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 223 ms] (2) CpxRelTRS (3) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxRelTRS (5) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (6) CpxTRS (7) CpxTrsToCdtProof [BOTH BOUNDS(ID, ID), 26 ms] (8) CdtProblem (9) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxRelTRS (11) RelTrsToDecreasingLoopProblemProof [LOWER BOUND(ID), 0 ms] (12) TRS for Loop Detection (13) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (14) CpxRelTRS (15) TypeInferenceProof [BOTH BOUNDS(ID, ID), 4 ms] (16) typed CpxTrs (17) OrderProof [LOWER BOUND(ID), 64 ms] (18) typed CpxTrs (19) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (20) CpxWeightedTrs (21) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CpxTypedWeightedTrs (23) CompletionProof [UPPER BOUND(ID), 314 ms] (24) CpxTypedWeightedCompleteTrs (25) CompletionProof [UPPER BOUND(ID), 405 ms] (26) CpxTypedWeightedCompleteTrs (27) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 7 ms] (28) CpxRNTS (29) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (30) CdtProblem (31) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (32) CdtProblem (33) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 3 ms] (34) CdtProblem (35) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CdtProblem (37) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (38) CdtProblem (39) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (40) CdtProblem (41) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 13 ms] (42) CdtProblem (43) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CpxRelTRS (45) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (46) CpxTRS (47) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CpxWeightedTrs (49) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CpxTypedWeightedTrs (51) CompletionProof [UPPER BOUND(ID), 0 ms] (52) CpxTypedWeightedCompleteTrs (53) CompletionProof [UPPER BOUND(ID), 9011 ms] (54) CpxTypedWeightedCompleteTrs (55) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 13 ms] (56) CpxRNTS (57) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 299 ms] (58) CdtProblem (59) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 146 ms] (62) CdtProblem (63) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 120 ms] (64) CdtProblem (65) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 113 ms] (66) CdtProblem (67) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 141 ms] (70) CdtProblem (71) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 69 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 2 ms] (90) CdtProblem (91) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 12 ms] (100) CdtProblem (101) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (102) CdtProblem (103) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 8 ms] (108) CdtProblem (109) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 27 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 35 ms] (114) CdtProblem (115) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 8 ms] (116) CdtProblem (117) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 4 ms] (118) CdtProblem (119) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 19 ms] (120) CdtProblem (121) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 14 ms] (124) CdtProblem (125) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (126) CdtProblem (127) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 15 ms] (128) CdtProblem (129) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 48 ms] (130) CdtProblem (131) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 23 ms] (132) CdtProblem (133) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (136) CdtProblem ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #equal(@x, @y) -> #eq(@x, @y) appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) appendreverse#1(nil, @sofar) -> @sofar bfs(@queue, @futurequeue, @x) -> bfs#1(@queue, @futurequeue, @x) bfs#1(::(@t, @ts), @futurequeue, @x) -> bfs#3(@t, @futurequeue, @ts, @x) bfs#1(nil, @futurequeue, @x) -> bfs#2(@futurequeue, @x) bfs#2(::(@t, @ts), @x) -> bfs(reverse(::(@t, @ts)), nil, @x) bfs#2(nil, @x) -> leaf bfs#3(leaf, @futurequeue, @ts, @x) -> bfs(@ts, @futurequeue, @x) bfs#3(node(@y, @t1, @t2), @futurequeue, @ts, @x) -> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) bfs#4(#false, @futurequeue, @t1, @t2, @ts, @x, @y) -> bfs(@ts, ::(@t2, ::(@t1, @futurequeue)), @x) bfs#4(#true, @futurequeue, @t1, @t2, @ts, @x, @y) -> node(@y, @t1, @t2) bfs2(@t, @x) -> bfs2#1(dobfs(@t, @x), @x) bfs2#1(@t', @x) -> dobfs(@t', @x) dfs(@queue, @x) -> dfs#1(@queue, @x) dfs#1(::(@t, @ts), @x) -> dfs#2(@t, @t, @ts, @x) dfs#1(nil, @x) -> leaf dfs#2(leaf, @t, @ts, @x) -> dfs(@ts, @x) dfs#2(node(@a, @t1, @t2), @t, @ts, @x) -> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) dfs#3(#false, @t, @t1, @t2, @ts, @x) -> dfs(::(@t1, ::(@t2, @ts)), @x) dfs#3(#true, @t, @t1, @t2, @ts, @x) -> @t dobfs(@t, @x) -> bfs(::(@t, nil), nil, @x) dodfs(@t, @x) -> dfs(::(@t, nil), @x) reverse(@xs) -> appendreverse(@xs, nil) The (relative) TRS S consists of the following rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(@y)) -> #false #eq(#0, #pos(@y)) -> #false #eq(#0, #s(@y)) -> #false #eq(#neg(@x), #0) -> #false #eq(#neg(@x), #neg(@y)) -> #eq(@x, @y) #eq(#neg(@x), #pos(@y)) -> #false #eq(#pos(@x), #0) -> #false #eq(#pos(@x), #neg(@y)) -> #false #eq(#pos(@x), #pos(@y)) -> #eq(@x, @y) #eq(#s(@x), #0) -> #false #eq(#s(@x), #s(@y)) -> #eq(@x, @y) #eq(::(@x_1, @x_2), ::(@y_1, @y_2)) -> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) #eq(::(@x_1, @x_2), leaf) -> #false #eq(::(@x_1, @x_2), nil) -> #false #eq(::(@x_1, @x_2), node(@y_1, @y_2, @y_3)) -> #false #eq(leaf, ::(@y_1, @y_2)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(@y_1, @y_2, @y_3)) -> #false #eq(nil, ::(@y_1, @y_2)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(@y_1, @y_2, @y_3)) -> #false #eq(node(@x_1, @x_2, @x_3), ::(@y_1, @y_2)) -> #false #eq(node(@x_1, @x_2, @x_3), leaf) -> #false #eq(node(@x_1, @x_2, @x_3), nil) -> #false #eq(node(@x_1, @x_2, @x_3), node(@y_1, @y_2, @y_3)) -> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #equal(@x, @y) -> #eq(@x, @y) appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) appendreverse#1(nil, @sofar) -> @sofar bfs(@queue, @futurequeue, @x) -> bfs#1(@queue, @futurequeue, @x) bfs#1(::(@t, @ts), @futurequeue, @x) -> bfs#3(@t, @futurequeue, @ts, @x) bfs#1(nil, @futurequeue, @x) -> bfs#2(@futurequeue, @x) bfs#2(::(@t, @ts), @x) -> bfs(reverse(::(@t, @ts)), nil, @x) bfs#2(nil, @x) -> leaf bfs#3(leaf, @futurequeue, @ts, @x) -> bfs(@ts, @futurequeue, @x) bfs#3(node(@y, @t1, @t2), @futurequeue, @ts, @x) -> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) bfs#4(#false, @futurequeue, @t1, @t2, @ts, @x, @y) -> bfs(@ts, ::(@t2, ::(@t1, @futurequeue)), @x) bfs#4(#true, @futurequeue, @t1, @t2, @ts, @x, @y) -> node(@y, @t1, @t2) bfs2(@t, @x) -> bfs2#1(dobfs(@t, @x), @x) bfs2#1(@t', @x) -> dobfs(@t', @x) dfs(@queue, @x) -> dfs#1(@queue, @x) dfs#1(::(@t, @ts), @x) -> dfs#2(@t, @t, @ts, @x) dfs#1(nil, @x) -> leaf dfs#2(leaf, @t, @ts, @x) -> dfs(@ts, @x) dfs#2(node(@a, @t1, @t2), @t, @ts, @x) -> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) dfs#3(#false, @t, @t1, @t2, @ts, @x) -> dfs(::(@t1, ::(@t2, @ts)), @x) dfs#3(#true, @t, @t1, @t2, @ts, @x) -> @t dobfs(@t, @x) -> bfs(::(@t, nil), nil, @x) dodfs(@t, @x) -> dfs(::(@t, nil), @x) reverse(@xs) -> appendreverse(@xs, nil) The (relative) TRS S consists of the following rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(@y)) -> #false #eq(#0, #pos(@y)) -> #false #eq(#0, #s(@y)) -> #false #eq(#neg(@x), #0) -> #false #eq(#neg(@x), #neg(@y)) -> #eq(@x, @y) #eq(#neg(@x), #pos(@y)) -> #false #eq(#pos(@x), #0) -> #false #eq(#pos(@x), #neg(@y)) -> #false #eq(#pos(@x), #pos(@y)) -> #eq(@x, @y) #eq(#s(@x), #0) -> #false #eq(#s(@x), #s(@y)) -> #eq(@x, @y) #eq(::(@x_1, @x_2), ::(@y_1, @y_2)) -> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) #eq(::(@x_1, @x_2), leaf) -> #false #eq(::(@x_1, @x_2), nil) -> #false #eq(::(@x_1, @x_2), node(@y_1, @y_2, @y_3)) -> #false #eq(leaf, ::(@y_1, @y_2)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(@y_1, @y_2, @y_3)) -> #false #eq(nil, ::(@y_1, @y_2)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(@y_1, @y_2, @y_3)) -> #false #eq(node(@x_1, @x_2, @x_3), ::(@y_1, @y_2)) -> #false #eq(node(@x_1, @x_2, @x_3), leaf) -> #false #eq(node(@x_1, @x_2, @x_3), nil) -> #false #eq(node(@x_1, @x_2, @x_3), node(@y_1, @y_2, @y_3)) -> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (4) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #equal(@x, @y) -> #eq(@x, @y) appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) appendreverse#1(nil, @sofar) -> @sofar bfs(@queue, @futurequeue, @x) -> bfs#1(@queue, @futurequeue, @x) bfs#1(::(@t, @ts), @futurequeue, @x) -> bfs#3(@t, @futurequeue, @ts, @x) bfs#1(nil, @futurequeue, @x) -> bfs#2(@futurequeue, @x) bfs#2(::(@t, @ts), @x) -> bfs(reverse(::(@t, @ts)), nil, @x) bfs#2(nil, @x) -> leaf bfs#3(leaf, @futurequeue, @ts, @x) -> bfs(@ts, @futurequeue, @x) bfs#3(node(@y, @t1, @t2), @futurequeue, @ts, @x) -> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) bfs#4(#false, @futurequeue, @t1, @t2, @ts, @x, @y) -> bfs(@ts, ::(@t2, ::(@t1, @futurequeue)), @x) bfs#4(#true, @futurequeue, @t1, @t2, @ts, @x, @y) -> node(@y, @t1, @t2) bfs2(@t, @x) -> bfs2#1(dobfs(@t, @x), @x) bfs2#1(@t', @x) -> dobfs(@t', @x) dfs(@queue, @x) -> dfs#1(@queue, @x) dfs#1(::(@t, @ts), @x) -> dfs#2(@t, @t, @ts, @x) dfs#1(nil, @x) -> leaf dfs#2(leaf, @t, @ts, @x) -> dfs(@ts, @x) dfs#2(node(@a, @t1, @t2), @t, @ts, @x) -> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) dfs#3(#false, @t, @t1, @t2, @ts, @x) -> dfs(::(@t1, ::(@t2, @ts)), @x) dfs#3(#true, @t, @t1, @t2, @ts, @x) -> @t dobfs(@t, @x) -> bfs(::(@t, nil), nil, @x) dodfs(@t, @x) -> dfs(::(@t, nil), @x) reverse(@xs) -> appendreverse(@xs, nil) The (relative) TRS S consists of the following rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(@y)) -> #false #eq(#0, #pos(@y)) -> #false #eq(#0, #s(@y)) -> #false #eq(#neg(@x), #0) -> #false #eq(#neg(@x), #neg(@y)) -> #eq(@x, @y) #eq(#neg(@x), #pos(@y)) -> #false #eq(#pos(@x), #0) -> #false #eq(#pos(@x), #neg(@y)) -> #false #eq(#pos(@x), #pos(@y)) -> #eq(@x, @y) #eq(#s(@x), #0) -> #false #eq(#s(@x), #s(@y)) -> #eq(@x, @y) #eq(::(@x_1, @x_2), ::(@y_1, @y_2)) -> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) #eq(::(@x_1, @x_2), leaf) -> #false #eq(::(@x_1, @x_2), nil) -> #false #eq(::(@x_1, @x_2), node(@y_1, @y_2, @y_3)) -> #false #eq(leaf, ::(@y_1, @y_2)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(@y_1, @y_2, @y_3)) -> #false #eq(nil, ::(@y_1, @y_2)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(@y_1, @y_2, @y_3)) -> #false #eq(node(@x_1, @x_2, @x_3), ::(@y_1, @y_2)) -> #false #eq(node(@x_1, @x_2, @x_3), leaf) -> #false #eq(node(@x_1, @x_2, @x_3), nil) -> #false #eq(node(@x_1, @x_2, @x_3), node(@y_1, @y_2, @y_3)) -> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #equal(@x, @y) -> #eq(@x, @y) appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) appendreverse#1(nil, @sofar) -> @sofar bfs(@queue, @futurequeue, @x) -> bfs#1(@queue, @futurequeue, @x) bfs#1(::(@t, @ts), @futurequeue, @x) -> bfs#3(@t, @futurequeue, @ts, @x) bfs#1(nil, @futurequeue, @x) -> bfs#2(@futurequeue, @x) bfs#2(::(@t, @ts), @x) -> bfs(reverse(::(@t, @ts)), nil, @x) bfs#2(nil, @x) -> leaf bfs#3(leaf, @futurequeue, @ts, @x) -> bfs(@ts, @futurequeue, @x) bfs#3(node(@y, @t1, @t2), @futurequeue, @ts, @x) -> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) bfs#4(#false, @futurequeue, @t1, @t2, @ts, @x, @y) -> bfs(@ts, ::(@t2, ::(@t1, @futurequeue)), @x) bfs#4(#true, @futurequeue, @t1, @t2, @ts, @x, @y) -> node(@y, @t1, @t2) bfs2(@t, @x) -> bfs2#1(dobfs(@t, @x), @x) bfs2#1(@t', @x) -> dobfs(@t', @x) dfs(@queue, @x) -> dfs#1(@queue, @x) dfs#1(::(@t, @ts), @x) -> dfs#2(@t, @t, @ts, @x) dfs#1(nil, @x) -> leaf dfs#2(leaf, @t, @ts, @x) -> dfs(@ts, @x) dfs#2(node(@a, @t1, @t2), @t, @ts, @x) -> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) dfs#3(#false, @t, @t1, @t2, @ts, @x) -> dfs(::(@t1, ::(@t2, @ts)), @x) dfs#3(#true, @t, @t1, @t2, @ts, @x) -> @t dobfs(@t, @x) -> bfs(::(@t, nil), nil, @x) dodfs(@t, @x) -> dfs(::(@t, nil), @x) reverse(@xs) -> appendreverse(@xs, nil) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(@y)) -> #false #eq(#0, #pos(@y)) -> #false #eq(#0, #s(@y)) -> #false #eq(#neg(@x), #0) -> #false #eq(#neg(@x), #neg(@y)) -> #eq(@x, @y) #eq(#neg(@x), #pos(@y)) -> #false #eq(#pos(@x), #0) -> #false #eq(#pos(@x), #neg(@y)) -> #false #eq(#pos(@x), #pos(@y)) -> #eq(@x, @y) #eq(#s(@x), #0) -> #false #eq(#s(@x), #s(@y)) -> #eq(@x, @y) #eq(::(@x_1, @x_2), ::(@y_1, @y_2)) -> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) #eq(::(@x_1, @x_2), leaf) -> #false #eq(::(@x_1, @x_2), nil) -> #false #eq(::(@x_1, @x_2), node(@y_1, @y_2, @y_3)) -> #false #eq(leaf, ::(@y_1, @y_2)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(@y_1, @y_2, @y_3)) -> #false #eq(nil, ::(@y_1, @y_2)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(@y_1, @y_2, @y_3)) -> #false #eq(node(@x_1, @x_2, @x_3), ::(@y_1, @y_2)) -> #false #eq(node(@x_1, @x_2, @x_3), leaf) -> #false #eq(node(@x_1, @x_2, @x_3), nil) -> #false #eq(node(@x_1, @x_2, @x_3), node(@y_1, @y_2, @y_3)) -> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (7) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (8) Obligation: Complexity Dependency Tuples Problem Rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Tuples: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #EQ(#0, #0) -> c4 #EQ(#0, #neg(z0)) -> c5 #EQ(#0, #pos(z0)) -> c6 #EQ(#0, #s(z0)) -> c7 #EQ(#neg(z0), #0) -> c8 #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(#pos(z0), #0) -> c11 #EQ(#pos(z0), #neg(z1)) -> c12 #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #0) -> c14 #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z1, z3)) #EQ(::(z0, z1), leaf) -> c18 #EQ(::(z0, z1), nil) -> c19 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 #EQ(leaf, ::(z0, z1)) -> c21 #EQ(leaf, leaf) -> c22 #EQ(leaf, nil) -> c23 #EQ(leaf, node(z0, z1, z2)) -> c24 #EQ(nil, ::(z0, z1)) -> c25 #EQ(nil, leaf) -> c26 #EQ(nil, nil) -> c27 #EQ(nil, node(z0, z1, z2)) -> c28 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(node(z0, z1, z2), leaf) -> c30 #EQ(node(z0, z1, z2), nil) -> c31 #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z2, z5)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples:none Defined Rule Symbols: #equal_2, appendreverse_2, appendreverse#1_2, bfs_3, bfs#1_3, bfs#2_2, bfs#3_4, bfs#4_7, bfs2_2, bfs2#1_2, dfs_2, dfs#1_2, dfs#2_4, dfs#3_6, dobfs_2, dodfs_2, reverse_1, #and_2, #eq_2 Defined Pair Symbols: #AND_2, #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2_2, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, DODFS_2, REVERSE_1 Compound Symbols: c, c1, c2, c3, c4, c5, c6, c7, c8, c9_1, c10, c11, c12, c13_1, c14, c15_1, c16_2, c17_2, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32_2, c33_3, c34_3, c35_1, c36_1, c37_1, c38, c39_1, c40_1, c41_1, c42_2, c43, c44_1, c45_2, c46_1, c47, c48_2, c49_1, c50_1, c51_1, c52, c53_1, c54_2, c55_1, c56, c57_1, c58_1, c59_1 ---------------------------------------- (9) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) The (relative) TRS S consists of the following rules: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #EQ(#0, #0) -> c4 #EQ(#0, #neg(z0)) -> c5 #EQ(#0, #pos(z0)) -> c6 #EQ(#0, #s(z0)) -> c7 #EQ(#neg(z0), #0) -> c8 #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(#pos(z0), #0) -> c11 #EQ(#pos(z0), #neg(z1)) -> c12 #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #0) -> c14 #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z1, z3)) #EQ(::(z0, z1), leaf) -> c18 #EQ(::(z0, z1), nil) -> c19 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 #EQ(leaf, ::(z0, z1)) -> c21 #EQ(leaf, leaf) -> c22 #EQ(leaf, nil) -> c23 #EQ(leaf, node(z0, z1, z2)) -> c24 #EQ(nil, ::(z0, z1)) -> c25 #EQ(nil, leaf) -> c26 #EQ(nil, nil) -> c27 #EQ(nil, node(z0, z1, z2)) -> c28 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(node(z0, z1, z2), leaf) -> c30 #EQ(node(z0, z1, z2), nil) -> c31 #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z2, z5)) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Rewrite Strategy: INNERMOST ---------------------------------------- (11) RelTrsToDecreasingLoopProblemProof (LOWER BOUND(ID)) Transformed a relative TRS into a decreasing-loop problem. ---------------------------------------- (12) Obligation: Analyzing the following TRS for decreasing loops: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) The (relative) TRS S consists of the following rules: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #EQ(#0, #0) -> c4 #EQ(#0, #neg(z0)) -> c5 #EQ(#0, #pos(z0)) -> c6 #EQ(#0, #s(z0)) -> c7 #EQ(#neg(z0), #0) -> c8 #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(#pos(z0), #0) -> c11 #EQ(#pos(z0), #neg(z1)) -> c12 #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #0) -> c14 #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z1, z3)) #EQ(::(z0, z1), leaf) -> c18 #EQ(::(z0, z1), nil) -> c19 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 #EQ(leaf, ::(z0, z1)) -> c21 #EQ(leaf, leaf) -> c22 #EQ(leaf, nil) -> c23 #EQ(leaf, node(z0, z1, z2)) -> c24 #EQ(nil, ::(z0, z1)) -> c25 #EQ(nil, leaf) -> c26 #EQ(nil, nil) -> c27 #EQ(nil, node(z0, z1, z2)) -> c28 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(node(z0, z1, z2), leaf) -> c30 #EQ(node(z0, z1, z2), nil) -> c31 #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z2, z5)) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Rewrite Strategy: INNERMOST ---------------------------------------- (13) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (14) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) The (relative) TRS S consists of the following rules: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #EQ(#0, #0) -> c4 #EQ(#0, #neg(z0)) -> c5 #EQ(#0, #pos(z0)) -> c6 #EQ(#0, #s(z0)) -> c7 #EQ(#neg(z0), #0) -> c8 #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(#pos(z0), #0) -> c11 #EQ(#pos(z0), #neg(z1)) -> c12 #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #0) -> c14 #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z1, z3)) #EQ(::(z0, z1), leaf) -> c18 #EQ(::(z0, z1), nil) -> c19 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 #EQ(leaf, ::(z0, z1)) -> c21 #EQ(leaf, leaf) -> c22 #EQ(leaf, nil) -> c23 #EQ(leaf, node(z0, z1, z2)) -> c24 #EQ(nil, ::(z0, z1)) -> c25 #EQ(nil, leaf) -> c26 #EQ(nil, nil) -> c27 #EQ(nil, node(z0, z1, z2)) -> c28 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(node(z0, z1, z2), leaf) -> c30 #EQ(node(z0, z1, z2), nil) -> c31 #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z2, z5)) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Rewrite Strategy: INNERMOST ---------------------------------------- (15) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (16) Obligation: Innermost TRS: Rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #EQ(#0, #0) -> c4 #EQ(#0, #neg(z0)) -> c5 #EQ(#0, #pos(z0)) -> c6 #EQ(#0, #s(z0)) -> c7 #EQ(#neg(z0), #0) -> c8 #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(#pos(z0), #0) -> c11 #EQ(#pos(z0), #neg(z1)) -> c12 #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #0) -> c14 #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z1, z3)) #EQ(::(z0, z1), leaf) -> c18 #EQ(::(z0, z1), nil) -> c19 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 #EQ(leaf, ::(z0, z1)) -> c21 #EQ(leaf, leaf) -> c22 #EQ(leaf, nil) -> c23 #EQ(leaf, node(z0, z1, z2)) -> c24 #EQ(nil, ::(z0, z1)) -> c25 #EQ(nil, leaf) -> c26 #EQ(nil, nil) -> c27 #EQ(nil, node(z0, z1, z2)) -> c28 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(node(z0, z1, z2), leaf) -> c30 #EQ(node(z0, z1, z2), nil) -> c31 #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z2, z5)) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Types: #EQUAL :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c35 c35 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c35 #EQ :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 APPENDREVERSE :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c36 c36 :: c37:c38 -> c36 APPENDREVERSE#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c37:c38 :: :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c37 :: c36 -> c37:c38 nil :: :::nil:leaf:node:#0:#neg:#pos:#s c38 :: c37:c38 BFS :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c39 c39 :: c40:c41 -> c39 BFS#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c40:c41 c40 :: c44:c45 -> c40:c41 BFS#3 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c44:c45 c41 :: c42:c43 -> c40:c41 BFS#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c42:c43 c42 :: c39 -> c59 -> c42:c43 reverse :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s REVERSE :: :::nil:leaf:node:#0:#neg:#pos:#s -> c59 c43 :: c42:c43 leaf :: :::nil:leaf:node:#0:#neg:#pos:#s c44 :: c39 -> c44:c45 node :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c45 :: c46:c47 -> c35 -> c44:c45 BFS#4 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c46:c47 #equal :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> #false:#true #false :: #false:#true c46 :: c39 -> c46:c47 #true :: #false:#true c47 :: c46:c47 BFS2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c48 c48 :: c49 -> c57 -> c48 BFS2#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c49 dobfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s DOBFS :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c57 c49 :: c57 -> c49 DFS :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c50 c50 :: c51:c52 -> c50 DFS#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c51:c52 c51 :: c53:c54 -> c51:c52 DFS#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c53:c54 c52 :: c51:c52 c53 :: c50 -> c53:c54 c54 :: c55:c56 -> c35 -> c53:c54 DFS#3 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c55:c56 c55 :: c50 -> c55:c56 c56 :: c55:c56 c57 :: c39 -> c57 DODFS :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c58 c58 :: c50 -> c58 c59 :: c36 -> c59 #AND :: #false:#true -> #false:#true -> c:c1:c2:c3 c :: c:c1:c2:c3 c1 :: c:c1:c2:c3 c2 :: c:c1:c2:c3 c3 :: c:c1:c2:c3 #0 :: :::nil:leaf:node:#0:#neg:#pos:#s c4 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #neg :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c5 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #pos :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c6 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #s :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c7 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c8 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c9 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c10 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c11 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c12 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c13 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c14 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c15 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c16 :: c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #eq :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> #false:#true c17 :: c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c18 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c19 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c20 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c21 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c22 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c23 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c24 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c25 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c26 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c27 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c28 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c29 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c30 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c31 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c32 :: c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #and :: #false:#true -> #false:#true -> #false:#true c33 :: c:c1:c2:c3 -> c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c34 :: c:c1:c2:c3 -> c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 appendreverse :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s appendreverse#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#3 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#4 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs2#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#3 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dodfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s hole_c351_60 :: c35 hole_:::nil:leaf:node:#0:#neg:#pos:#s2_60 :: :::nil:leaf:node:#0:#neg:#pos:#s hole_c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c343_60 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 hole_c364_60 :: c36 hole_c37:c385_60 :: c37:c38 hole_c396_60 :: c39 hole_c40:c417_60 :: c40:c41 hole_c44:c458_60 :: c44:c45 hole_c42:c439_60 :: c42:c43 hole_c5910_60 :: c59 hole_c46:c4711_60 :: c46:c47 hole_#false:#true12_60 :: #false:#true hole_c4813_60 :: c48 hole_c4914_60 :: c49 hole_c5715_60 :: c57 hole_c5016_60 :: c50 hole_c51:c5217_60 :: c51:c52 hole_c53:c5418_60 :: c53:c54 hole_c55:c5619_60 :: c55:c56 hole_c5820_60 :: c58 hole_c:c1:c2:c321_60 :: c:c1:c2:c3 gen_:::nil:leaf:node:#0:#neg:#pos:#s22_60 :: Nat -> :::nil:leaf:node:#0:#neg:#pos:#s gen_c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c3423_60 :: Nat -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 ---------------------------------------- (17) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: #EQ, APPENDREVERSE, APPENDREVERSE#1, BFS, BFS#1, BFS#2, DFS, DFS#1, #eq, appendreverse, appendreverse#1, bfs, bfs#1, bfs#2, dfs, dfs#1 They will be analysed ascendingly in the following order: #eq < #EQ APPENDREVERSE = APPENDREVERSE#1 BFS = BFS#1 BFS = BFS#2 BFS#1 = BFS#2 DFS = DFS#1 appendreverse = appendreverse#1 bfs = bfs#1 bfs = bfs#2 bfs#1 = bfs#2 dfs = dfs#1 ---------------------------------------- (18) Obligation: Innermost TRS: Rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #EQ(#0, #0) -> c4 #EQ(#0, #neg(z0)) -> c5 #EQ(#0, #pos(z0)) -> c6 #EQ(#0, #s(z0)) -> c7 #EQ(#neg(z0), #0) -> c8 #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(#pos(z0), #0) -> c11 #EQ(#pos(z0), #neg(z1)) -> c12 #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #0) -> c14 #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z1, z3)) #EQ(::(z0, z1), leaf) -> c18 #EQ(::(z0, z1), nil) -> c19 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 #EQ(leaf, ::(z0, z1)) -> c21 #EQ(leaf, leaf) -> c22 #EQ(leaf, nil) -> c23 #EQ(leaf, node(z0, z1, z2)) -> c24 #EQ(nil, ::(z0, z1)) -> c25 #EQ(nil, leaf) -> c26 #EQ(nil, nil) -> c27 #EQ(nil, node(z0, z1, z2)) -> c28 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(node(z0, z1, z2), leaf) -> c30 #EQ(node(z0, z1, z2), nil) -> c31 #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z2, z5)) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Types: #EQUAL :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c35 c35 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c35 #EQ :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 APPENDREVERSE :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c36 c36 :: c37:c38 -> c36 APPENDREVERSE#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c37:c38 :: :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c37 :: c36 -> c37:c38 nil :: :::nil:leaf:node:#0:#neg:#pos:#s c38 :: c37:c38 BFS :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c39 c39 :: c40:c41 -> c39 BFS#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c40:c41 c40 :: c44:c45 -> c40:c41 BFS#3 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c44:c45 c41 :: c42:c43 -> c40:c41 BFS#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c42:c43 c42 :: c39 -> c59 -> c42:c43 reverse :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s REVERSE :: :::nil:leaf:node:#0:#neg:#pos:#s -> c59 c43 :: c42:c43 leaf :: :::nil:leaf:node:#0:#neg:#pos:#s c44 :: c39 -> c44:c45 node :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c45 :: c46:c47 -> c35 -> c44:c45 BFS#4 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c46:c47 #equal :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> #false:#true #false :: #false:#true c46 :: c39 -> c46:c47 #true :: #false:#true c47 :: c46:c47 BFS2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c48 c48 :: c49 -> c57 -> c48 BFS2#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c49 dobfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s DOBFS :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c57 c49 :: c57 -> c49 DFS :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c50 c50 :: c51:c52 -> c50 DFS#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c51:c52 c51 :: c53:c54 -> c51:c52 DFS#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c53:c54 c52 :: c51:c52 c53 :: c50 -> c53:c54 c54 :: c55:c56 -> c35 -> c53:c54 DFS#3 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c55:c56 c55 :: c50 -> c55:c56 c56 :: c55:c56 c57 :: c39 -> c57 DODFS :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> c58 c58 :: c50 -> c58 c59 :: c36 -> c59 #AND :: #false:#true -> #false:#true -> c:c1:c2:c3 c :: c:c1:c2:c3 c1 :: c:c1:c2:c3 c2 :: c:c1:c2:c3 c3 :: c:c1:c2:c3 #0 :: :::nil:leaf:node:#0:#neg:#pos:#s c4 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #neg :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c5 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #pos :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c6 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #s :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s c7 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c8 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c9 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c10 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c11 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c12 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c13 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c14 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c15 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c16 :: c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #eq :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> #false:#true c17 :: c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c18 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c19 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c20 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c21 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c22 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c23 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c24 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c25 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c26 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c27 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c28 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c29 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c30 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c31 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c32 :: c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 #and :: #false:#true -> #false:#true -> #false:#true c33 :: c:c1:c2:c3 -> c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 c34 :: c:c1:c2:c3 -> c:c1:c2:c3 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 appendreverse :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s appendreverse#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#3 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#4 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs2#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#3 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dodfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s hole_c351_60 :: c35 hole_:::nil:leaf:node:#0:#neg:#pos:#s2_60 :: :::nil:leaf:node:#0:#neg:#pos:#s hole_c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c343_60 :: c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 hole_c364_60 :: c36 hole_c37:c385_60 :: c37:c38 hole_c396_60 :: c39 hole_c40:c417_60 :: c40:c41 hole_c44:c458_60 :: c44:c45 hole_c42:c439_60 :: c42:c43 hole_c5910_60 :: c59 hole_c46:c4711_60 :: c46:c47 hole_#false:#true12_60 :: #false:#true hole_c4813_60 :: c48 hole_c4914_60 :: c49 hole_c5715_60 :: c57 hole_c5016_60 :: c50 hole_c51:c5217_60 :: c51:c52 hole_c53:c5418_60 :: c53:c54 hole_c55:c5619_60 :: c55:c56 hole_c5820_60 :: c58 hole_c:c1:c2:c321_60 :: c:c1:c2:c3 gen_:::nil:leaf:node:#0:#neg:#pos:#s22_60 :: Nat -> :::nil:leaf:node:#0:#neg:#pos:#s gen_c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c3423_60 :: Nat -> c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c34 Generator Equations: gen_:::nil:leaf:node:#0:#neg:#pos:#s22_60(0) <=> nil gen_:::nil:leaf:node:#0:#neg:#pos:#s22_60(+(x, 1)) <=> ::(nil, gen_:::nil:leaf:node:#0:#neg:#pos:#s22_60(x)) gen_c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c3423_60(0) <=> c4 gen_c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c3423_60(+(x, 1)) <=> c9(gen_c4:c5:c6:c7:c8:c9:c10:c11:c12:c13:c14:c15:c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27:c28:c29:c30:c31:c32:c33:c3423_60(x)) The following defined symbols remain to be analysed: #eq, #EQ, APPENDREVERSE, APPENDREVERSE#1, BFS, BFS#1, BFS#2, DFS, DFS#1, appendreverse, appendreverse#1, bfs, bfs#1, bfs#2, dfs, dfs#1 They will be analysed ascendingly in the following order: #eq < #EQ APPENDREVERSE = APPENDREVERSE#1 BFS = BFS#1 BFS = BFS#2 BFS#1 = BFS#2 DFS = DFS#1 appendreverse = appendreverse#1 bfs = bfs#1 bfs = bfs#2 bfs#1 = bfs#2 dfs = dfs#1 ---------------------------------------- (19) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (20) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #equal(@x, @y) -> #eq(@x, @y) [1] appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) [1] appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) [1] appendreverse#1(nil, @sofar) -> @sofar [1] bfs(@queue, @futurequeue, @x) -> bfs#1(@queue, @futurequeue, @x) [1] bfs#1(::(@t, @ts), @futurequeue, @x) -> bfs#3(@t, @futurequeue, @ts, @x) [1] bfs#1(nil, @futurequeue, @x) -> bfs#2(@futurequeue, @x) [1] bfs#2(::(@t, @ts), @x) -> bfs(reverse(::(@t, @ts)), nil, @x) [1] bfs#2(nil, @x) -> leaf [1] bfs#3(leaf, @futurequeue, @ts, @x) -> bfs(@ts, @futurequeue, @x) [1] bfs#3(node(@y, @t1, @t2), @futurequeue, @ts, @x) -> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) [1] bfs#4(#false, @futurequeue, @t1, @t2, @ts, @x, @y) -> bfs(@ts, ::(@t2, ::(@t1, @futurequeue)), @x) [1] bfs#4(#true, @futurequeue, @t1, @t2, @ts, @x, @y) -> node(@y, @t1, @t2) [1] bfs2(@t, @x) -> bfs2#1(dobfs(@t, @x), @x) [1] bfs2#1(@t', @x) -> dobfs(@t', @x) [1] dfs(@queue, @x) -> dfs#1(@queue, @x) [1] dfs#1(::(@t, @ts), @x) -> dfs#2(@t, @t, @ts, @x) [1] dfs#1(nil, @x) -> leaf [1] dfs#2(leaf, @t, @ts, @x) -> dfs(@ts, @x) [1] dfs#2(node(@a, @t1, @t2), @t, @ts, @x) -> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) [1] dfs#3(#false, @t, @t1, @t2, @ts, @x) -> dfs(::(@t1, ::(@t2, @ts)), @x) [1] dfs#3(#true, @t, @t1, @t2, @ts, @x) -> @t [1] dobfs(@t, @x) -> bfs(::(@t, nil), nil, @x) [1] dodfs(@t, @x) -> dfs(::(@t, nil), @x) [1] reverse(@xs) -> appendreverse(@xs, nil) [1] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(@y)) -> #false [0] #eq(#0, #pos(@y)) -> #false [0] #eq(#0, #s(@y)) -> #false [0] #eq(#neg(@x), #0) -> #false [0] #eq(#neg(@x), #neg(@y)) -> #eq(@x, @y) [0] #eq(#neg(@x), #pos(@y)) -> #false [0] #eq(#pos(@x), #0) -> #false [0] #eq(#pos(@x), #neg(@y)) -> #false [0] #eq(#pos(@x), #pos(@y)) -> #eq(@x, @y) [0] #eq(#s(@x), #0) -> #false [0] #eq(#s(@x), #s(@y)) -> #eq(@x, @y) [0] #eq(::(@x_1, @x_2), ::(@y_1, @y_2)) -> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) [0] #eq(::(@x_1, @x_2), leaf) -> #false [0] #eq(::(@x_1, @x_2), nil) -> #false [0] #eq(::(@x_1, @x_2), node(@y_1, @y_2, @y_3)) -> #false [0] #eq(leaf, ::(@y_1, @y_2)) -> #false [0] #eq(leaf, leaf) -> #true [0] #eq(leaf, nil) -> #false [0] #eq(leaf, node(@y_1, @y_2, @y_3)) -> #false [0] #eq(nil, ::(@y_1, @y_2)) -> #false [0] #eq(nil, leaf) -> #false [0] #eq(nil, nil) -> #true [0] #eq(nil, node(@y_1, @y_2, @y_3)) -> #false [0] #eq(node(@x_1, @x_2, @x_3), ::(@y_1, @y_2)) -> #false [0] #eq(node(@x_1, @x_2, @x_3), leaf) -> #false [0] #eq(node(@x_1, @x_2, @x_3), nil) -> #false [0] #eq(node(@x_1, @x_2, @x_3), node(@y_1, @y_2, @y_3)) -> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) [0] Rewrite Strategy: INNERMOST ---------------------------------------- (21) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (22) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #equal(@x, @y) -> #eq(@x, @y) [1] appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) [1] appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) [1] appendreverse#1(nil, @sofar) -> @sofar [1] bfs(@queue, @futurequeue, @x) -> bfs#1(@queue, @futurequeue, @x) [1] bfs#1(::(@t, @ts), @futurequeue, @x) -> bfs#3(@t, @futurequeue, @ts, @x) [1] bfs#1(nil, @futurequeue, @x) -> bfs#2(@futurequeue, @x) [1] bfs#2(::(@t, @ts), @x) -> bfs(reverse(::(@t, @ts)), nil, @x) [1] bfs#2(nil, @x) -> leaf [1] bfs#3(leaf, @futurequeue, @ts, @x) -> bfs(@ts, @futurequeue, @x) [1] bfs#3(node(@y, @t1, @t2), @futurequeue, @ts, @x) -> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) [1] bfs#4(#false, @futurequeue, @t1, @t2, @ts, @x, @y) -> bfs(@ts, ::(@t2, ::(@t1, @futurequeue)), @x) [1] bfs#4(#true, @futurequeue, @t1, @t2, @ts, @x, @y) -> node(@y, @t1, @t2) [1] bfs2(@t, @x) -> bfs2#1(dobfs(@t, @x), @x) [1] bfs2#1(@t', @x) -> dobfs(@t', @x) [1] dfs(@queue, @x) -> dfs#1(@queue, @x) [1] dfs#1(::(@t, @ts), @x) -> dfs#2(@t, @t, @ts, @x) [1] dfs#1(nil, @x) -> leaf [1] dfs#2(leaf, @t, @ts, @x) -> dfs(@ts, @x) [1] dfs#2(node(@a, @t1, @t2), @t, @ts, @x) -> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) [1] dfs#3(#false, @t, @t1, @t2, @ts, @x) -> dfs(::(@t1, ::(@t2, @ts)), @x) [1] dfs#3(#true, @t, @t1, @t2, @ts, @x) -> @t [1] dobfs(@t, @x) -> bfs(::(@t, nil), nil, @x) [1] dodfs(@t, @x) -> dfs(::(@t, nil), @x) [1] reverse(@xs) -> appendreverse(@xs, nil) [1] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(@y)) -> #false [0] #eq(#0, #pos(@y)) -> #false [0] #eq(#0, #s(@y)) -> #false [0] #eq(#neg(@x), #0) -> #false [0] #eq(#neg(@x), #neg(@y)) -> #eq(@x, @y) [0] #eq(#neg(@x), #pos(@y)) -> #false [0] #eq(#pos(@x), #0) -> #false [0] #eq(#pos(@x), #neg(@y)) -> #false [0] #eq(#pos(@x), #pos(@y)) -> #eq(@x, @y) [0] #eq(#s(@x), #0) -> #false [0] #eq(#s(@x), #s(@y)) -> #eq(@x, @y) [0] #eq(::(@x_1, @x_2), ::(@y_1, @y_2)) -> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) [0] #eq(::(@x_1, @x_2), leaf) -> #false [0] #eq(::(@x_1, @x_2), nil) -> #false [0] #eq(::(@x_1, @x_2), node(@y_1, @y_2, @y_3)) -> #false [0] #eq(leaf, ::(@y_1, @y_2)) -> #false [0] #eq(leaf, leaf) -> #true [0] #eq(leaf, nil) -> #false [0] #eq(leaf, node(@y_1, @y_2, @y_3)) -> #false [0] #eq(nil, ::(@y_1, @y_2)) -> #false [0] #eq(nil, leaf) -> #false [0] #eq(nil, nil) -> #true [0] #eq(nil, node(@y_1, @y_2, @y_3)) -> #false [0] #eq(node(@x_1, @x_2, @x_3), ::(@y_1, @y_2)) -> #false [0] #eq(node(@x_1, @x_2, @x_3), leaf) -> #false [0] #eq(node(@x_1, @x_2, @x_3), nil) -> #false [0] #eq(node(@x_1, @x_2, @x_3), node(@y_1, @y_2, @y_3)) -> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) [0] The TRS has the following type information: #equal :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> #false:#true #eq :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> #false:#true appendreverse :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s appendreverse#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s :: :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s nil :: :::nil:leaf:node:#0:#neg:#pos:#s bfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#3 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s reverse :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s leaf :: :::nil:leaf:node:#0:#neg:#pos:#s node :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs#4 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s #false :: #false:#true #true :: #false:#true bfs2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s bfs2#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dobfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dfs#3 :: #false:#true -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s dodfs :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s #and :: #false:#true -> #false:#true -> #false:#true #0 :: :::nil:leaf:node:#0:#neg:#pos:#s #neg :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s #pos :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s #s :: :::nil:leaf:node:#0:#neg:#pos:#s -> :::nil:leaf:node:#0:#neg:#pos:#s Rewrite Strategy: INNERMOST ---------------------------------------- (23) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: bfs2_2 bfs2#1_2 dfs_2 dfs#1_2 dfs#2_4 dfs#3_6 dodfs_2 (c) The following functions are completely defined: #equal_2 reverse_1 dobfs_2 bfs_3 bfs#1_3 bfs#2_2 appendreverse_2 bfs#3_4 appendreverse#1_2 bfs#4_7 #and_2 #eq_2 Due to the following rules being added: #and(v0, v1) -> null_#and [0] #eq(v0, v1) -> null_#eq [0] bfs#1(v0, v1, v2) -> null_bfs#1 [0] bfs#2(v0, v1) -> null_bfs#2 [0] bfs#3(v0, v1, v2, v3) -> null_bfs#3 [0] appendreverse#1(v0, v1) -> null_appendreverse#1 [0] bfs#4(v0, v1, v2, v3, v4, v5, v6) -> null_bfs#4 [0] And the following fresh constants: null_#and, null_#eq, null_bfs#1, null_bfs#2, null_bfs#3, null_appendreverse#1, null_bfs#4 ---------------------------------------- (24) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #equal(@x, @y) -> #eq(@x, @y) [1] appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) [1] appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) [1] appendreverse#1(nil, @sofar) -> @sofar [1] bfs(@queue, @futurequeue, @x) -> bfs#1(@queue, @futurequeue, @x) [1] bfs#1(::(@t, @ts), @futurequeue, @x) -> bfs#3(@t, @futurequeue, @ts, @x) [1] bfs#1(nil, @futurequeue, @x) -> bfs#2(@futurequeue, @x) [1] bfs#2(::(@t, @ts), @x) -> bfs(reverse(::(@t, @ts)), nil, @x) [1] bfs#2(nil, @x) -> leaf [1] bfs#3(leaf, @futurequeue, @ts, @x) -> bfs(@ts, @futurequeue, @x) [1] bfs#3(node(@y, @t1, @t2), @futurequeue, @ts, @x) -> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) [1] bfs#4(#false, @futurequeue, @t1, @t2, @ts, @x, @y) -> bfs(@ts, ::(@t2, ::(@t1, @futurequeue)), @x) [1] bfs#4(#true, @futurequeue, @t1, @t2, @ts, @x, @y) -> node(@y, @t1, @t2) [1] bfs2(@t, @x) -> bfs2#1(dobfs(@t, @x), @x) [1] bfs2#1(@t', @x) -> dobfs(@t', @x) [1] dfs(@queue, @x) -> dfs#1(@queue, @x) [1] dfs#1(::(@t, @ts), @x) -> dfs#2(@t, @t, @ts, @x) [1] dfs#1(nil, @x) -> leaf [1] dfs#2(leaf, @t, @ts, @x) -> dfs(@ts, @x) [1] dfs#2(node(@a, @t1, @t2), @t, @ts, @x) -> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) [1] dfs#3(#false, @t, @t1, @t2, @ts, @x) -> dfs(::(@t1, ::(@t2, @ts)), @x) [1] dfs#3(#true, @t, @t1, @t2, @ts, @x) -> @t [1] dobfs(@t, @x) -> bfs(::(@t, nil), nil, @x) [1] dodfs(@t, @x) -> dfs(::(@t, nil), @x) [1] reverse(@xs) -> appendreverse(@xs, nil) [1] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(@y)) -> #false [0] #eq(#0, #pos(@y)) -> #false [0] #eq(#0, #s(@y)) -> #false [0] #eq(#neg(@x), #0) -> #false [0] #eq(#neg(@x), #neg(@y)) -> #eq(@x, @y) [0] #eq(#neg(@x), #pos(@y)) -> #false [0] #eq(#pos(@x), #0) -> #false [0] #eq(#pos(@x), #neg(@y)) -> #false [0] #eq(#pos(@x), #pos(@y)) -> #eq(@x, @y) [0] #eq(#s(@x), #0) -> #false [0] #eq(#s(@x), #s(@y)) -> #eq(@x, @y) [0] #eq(::(@x_1, @x_2), ::(@y_1, @y_2)) -> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) [0] #eq(::(@x_1, @x_2), leaf) -> #false [0] #eq(::(@x_1, @x_2), nil) -> #false [0] #eq(::(@x_1, @x_2), node(@y_1, @y_2, @y_3)) -> #false [0] #eq(leaf, ::(@y_1, @y_2)) -> #false [0] #eq(leaf, leaf) -> #true [0] #eq(leaf, nil) -> #false [0] #eq(leaf, node(@y_1, @y_2, @y_3)) -> #false [0] #eq(nil, ::(@y_1, @y_2)) -> #false [0] #eq(nil, leaf) -> #false [0] #eq(nil, nil) -> #true [0] #eq(nil, node(@y_1, @y_2, @y_3)) -> #false [0] #eq(node(@x_1, @x_2, @x_3), ::(@y_1, @y_2)) -> #false [0] #eq(node(@x_1, @x_2, @x_3), leaf) -> #false [0] #eq(node(@x_1, @x_2, @x_3), nil) -> #false [0] #eq(node(@x_1, @x_2, @x_3), node(@y_1, @y_2, @y_3)) -> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) [0] #and(v0, v1) -> null_#and [0] #eq(v0, v1) -> null_#eq [0] bfs#1(v0, v1, v2) -> null_bfs#1 [0] bfs#2(v0, v1) -> null_bfs#2 [0] bfs#3(v0, v1, v2, v3) -> null_bfs#3 [0] appendreverse#1(v0, v1) -> null_appendreverse#1 [0] bfs#4(v0, v1, v2, v3, v4, v5, v6) -> null_bfs#4 [0] The TRS has the following type information: #equal :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> #false:#true:null_#and:null_#eq #eq :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> #false:#true:null_#and:null_#eq appendreverse :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 appendreverse#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 :: :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 nil :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 bfs :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 bfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 bfs#3 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 bfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 reverse :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 leaf :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 node :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 bfs#4 :: #false:#true:null_#and:null_#eq -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 #false :: #false:#true:null_#and:null_#eq #true :: #false:#true:null_#and:null_#eq bfs2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 bfs2#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 dobfs :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 dfs :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 dfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 dfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 dfs#3 :: #false:#true:null_#and:null_#eq -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 dodfs :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 #and :: #false:#true:null_#and:null_#eq -> #false:#true:null_#and:null_#eq -> #false:#true:null_#and:null_#eq #0 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 #neg :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 #pos :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 #s :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 null_#and :: #false:#true:null_#and:null_#eq null_#eq :: #false:#true:null_#and:null_#eq null_bfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 null_bfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 null_bfs#3 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 null_appendreverse#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 null_bfs#4 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_bfs#1:null_bfs#2:null_bfs#3:null_appendreverse#1:null_bfs#4 Rewrite Strategy: INNERMOST ---------------------------------------- (25) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: #and(v0, v1) -> null_#and [0] #eq(v0, v1) -> null_#eq [0] appendreverse#1(v0, v1) -> null_appendreverse#1 [0] bfs#1(v0, v1, v2) -> null_bfs#1 [0] bfs#2(v0, v1) -> null_bfs#2 [0] bfs#3(v0, v1, v2, v3) -> null_bfs#3 [0] bfs#4(v0, v1, v2, v3, v4, v5, v6) -> null_bfs#4 [0] dfs#1(v0, v1) -> null_dfs#1 [0] dfs#2(v0, v1, v2, v3) -> null_dfs#2 [0] dfs#3(v0, v1, v2, v3, v4, v5) -> null_dfs#3 [0] And the following fresh constants: null_#and, null_#eq, null_appendreverse#1, null_bfs#1, null_bfs#2, null_bfs#3, null_bfs#4, null_dfs#1, null_dfs#2, null_dfs#3 ---------------------------------------- (26) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #equal(@x, @y) -> #eq(@x, @y) [1] appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) [1] appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) [1] appendreverse#1(nil, @sofar) -> @sofar [1] bfs(@queue, @futurequeue, @x) -> bfs#1(@queue, @futurequeue, @x) [1] bfs#1(::(@t, @ts), @futurequeue, @x) -> bfs#3(@t, @futurequeue, @ts, @x) [1] bfs#1(nil, @futurequeue, @x) -> bfs#2(@futurequeue, @x) [1] bfs#2(::(@t, @ts), @x) -> bfs(reverse(::(@t, @ts)), nil, @x) [1] bfs#2(nil, @x) -> leaf [1] bfs#3(leaf, @futurequeue, @ts, @x) -> bfs(@ts, @futurequeue, @x) [1] bfs#3(node(@y, @t1, @t2), @futurequeue, @ts, @x) -> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) [1] bfs#4(#false, @futurequeue, @t1, @t2, @ts, @x, @y) -> bfs(@ts, ::(@t2, ::(@t1, @futurequeue)), @x) [1] bfs#4(#true, @futurequeue, @t1, @t2, @ts, @x, @y) -> node(@y, @t1, @t2) [1] bfs2(@t, @x) -> bfs2#1(dobfs(@t, @x), @x) [1] bfs2#1(@t', @x) -> dobfs(@t', @x) [1] dfs(@queue, @x) -> dfs#1(@queue, @x) [1] dfs#1(::(@t, @ts), @x) -> dfs#2(@t, @t, @ts, @x) [1] dfs#1(nil, @x) -> leaf [1] dfs#2(leaf, @t, @ts, @x) -> dfs(@ts, @x) [1] dfs#2(node(@a, @t1, @t2), @t, @ts, @x) -> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) [1] dfs#3(#false, @t, @t1, @t2, @ts, @x) -> dfs(::(@t1, ::(@t2, @ts)), @x) [1] dfs#3(#true, @t, @t1, @t2, @ts, @x) -> @t [1] dobfs(@t, @x) -> bfs(::(@t, nil), nil, @x) [1] dodfs(@t, @x) -> dfs(::(@t, nil), @x) [1] reverse(@xs) -> appendreverse(@xs, nil) [1] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(@y)) -> #false [0] #eq(#0, #pos(@y)) -> #false [0] #eq(#0, #s(@y)) -> #false [0] #eq(#neg(@x), #0) -> #false [0] #eq(#neg(@x), #neg(@y)) -> #eq(@x, @y) [0] #eq(#neg(@x), #pos(@y)) -> #false [0] #eq(#pos(@x), #0) -> #false [0] #eq(#pos(@x), #neg(@y)) -> #false [0] #eq(#pos(@x), #pos(@y)) -> #eq(@x, @y) [0] #eq(#s(@x), #0) -> #false [0] #eq(#s(@x), #s(@y)) -> #eq(@x, @y) [0] #eq(::(@x_1, @x_2), ::(@y_1, @y_2)) -> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) [0] #eq(::(@x_1, @x_2), leaf) -> #false [0] #eq(::(@x_1, @x_2), nil) -> #false [0] #eq(::(@x_1, @x_2), node(@y_1, @y_2, @y_3)) -> #false [0] #eq(leaf, ::(@y_1, @y_2)) -> #false [0] #eq(leaf, leaf) -> #true [0] #eq(leaf, nil) -> #false [0] #eq(leaf, node(@y_1, @y_2, @y_3)) -> #false [0] #eq(nil, ::(@y_1, @y_2)) -> #false [0] #eq(nil, leaf) -> #false [0] #eq(nil, nil) -> #true [0] #eq(nil, node(@y_1, @y_2, @y_3)) -> #false [0] #eq(node(@x_1, @x_2, @x_3), ::(@y_1, @y_2)) -> #false [0] #eq(node(@x_1, @x_2, @x_3), leaf) -> #false [0] #eq(node(@x_1, @x_2, @x_3), nil) -> #false [0] #eq(node(@x_1, @x_2, @x_3), node(@y_1, @y_2, @y_3)) -> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) [0] #and(v0, v1) -> null_#and [0] #eq(v0, v1) -> null_#eq [0] appendreverse#1(v0, v1) -> null_appendreverse#1 [0] bfs#1(v0, v1, v2) -> null_bfs#1 [0] bfs#2(v0, v1) -> null_bfs#2 [0] bfs#3(v0, v1, v2, v3) -> null_bfs#3 [0] bfs#4(v0, v1, v2, v3, v4, v5, v6) -> null_bfs#4 [0] dfs#1(v0, v1) -> null_dfs#1 [0] dfs#2(v0, v1, v2, v3) -> null_dfs#2 [0] dfs#3(v0, v1, v2, v3, v4, v5) -> null_dfs#3 [0] The TRS has the following type information: #equal :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> #false:#true:null_#and:null_#eq #eq :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> #false:#true:null_#and:null_#eq appendreverse :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 appendreverse#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 :: :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 nil :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 bfs :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 bfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 bfs#3 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 bfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 reverse :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 leaf :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 node :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 bfs#4 :: #false:#true:null_#and:null_#eq -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 #false :: #false:#true:null_#and:null_#eq #true :: #false:#true:null_#and:null_#eq bfs2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 bfs2#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 dobfs :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 dfs :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 dfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 dfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 dfs#3 :: #false:#true:null_#and:null_#eq -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 dodfs :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 #and :: #false:#true:null_#and:null_#eq -> #false:#true:null_#and:null_#eq -> #false:#true:null_#and:null_#eq #0 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 #neg :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 #pos :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 #s :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 -> :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 null_#and :: #false:#true:null_#and:null_#eq null_#eq :: #false:#true:null_#and:null_#eq null_appendreverse#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 null_bfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 null_bfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 null_bfs#3 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 null_bfs#4 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 null_dfs#1 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 null_dfs#2 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 null_dfs#3 :: :::nil:leaf:node:#0:#neg:#pos:#s:null_appendreverse#1:null_bfs#1:null_bfs#2:null_bfs#3:null_bfs#4:null_dfs#1:null_dfs#2:null_dfs#3 Rewrite Strategy: INNERMOST ---------------------------------------- (27) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: nil => 2 leaf => 1 #false => 1 #true => 2 #0 => 0 null_#and => 0 null_#eq => 0 null_appendreverse#1 => 0 null_bfs#1 => 0 null_bfs#2 => 0 null_bfs#3 => 0 null_bfs#4 => 0 null_dfs#1 => 0 null_dfs#2 => 0 null_dfs#3 => 0 ---------------------------------------- (28) Obligation: Complexity RNTS consisting of the following rules: #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #eq(z, z') -{ 0 }-> 1 :|: z = 0, z' = 1 + @y, @y >= 0 #eq(z, z') -{ 0 }-> 1 :|: @x >= 0, z = 1 + @x, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: @x >= 0, z = 1 + @x, z' = 1 + @y, @y >= 0 #eq(z, z') -{ 0 }-> 1 :|: @x_1 >= 0, z = 1 + @x_1 + @x_2, @x_2 >= 0, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: @x_1 >= 0, z' = 2, z = 1 + @x_1 + @x_2, @x_2 >= 0 #eq(z, z') -{ 0 }-> 1 :|: @y_3 >= 0, z' = 1 + @y_1 + @y_2 + @y_3, @x_1 >= 0, z = 1 + @x_1 + @x_2, @y_1 >= 0, @x_2 >= 0, @y_2 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z = 1, @y_1 >= 0, @y_2 >= 0, z' = 1 + @y_1 + @y_2 #eq(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #eq(z, z') -{ 0 }-> 1 :|: @y_3 >= 0, z' = 1 + @y_1 + @y_2 + @y_3, z = 1, @y_1 >= 0, @y_2 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z = 2, @y_1 >= 0, @y_2 >= 0, z' = 1 + @y_1 + @y_2 #eq(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z = 2, @y_3 >= 0, z' = 1 + @y_1 + @y_2 + @y_3, @y_1 >= 0, @y_2 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z = 1 + @x_1 + @x_2 + @x_3, @x_1 >= 0, @y_1 >= 0, @x_2 >= 0, @y_2 >= 0, z' = 1 + @y_1 + @y_2, @x_3 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z = 1 + @x_1 + @x_2 + @x_3, @x_1 >= 0, @x_2 >= 0, z' = 1, @x_3 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z = 1 + @x_1 + @x_2 + @x_3, @x_1 >= 0, z' = 2, @x_2 >= 0, @x_3 >= 0 #eq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #eq(z, z') -{ 0 }-> #eq(@x, @y) :|: @x >= 0, z = 1 + @x, z' = 1 + @y, @y >= 0 #eq(z, z') -{ 0 }-> #and(#eq(@x_1, @y_1), #eq(@x_2, @y_2)) :|: @x_1 >= 0, z = 1 + @x_1 + @x_2, @y_1 >= 0, @x_2 >= 0, @y_2 >= 0, z' = 1 + @y_1 + @y_2 #eq(z, z') -{ 0 }-> #and(#eq(@x_1, @y_1), #and(#eq(@x_2, @y_2), #eq(@x_3, @y_3))) :|: @y_3 >= 0, z' = 1 + @y_1 + @y_2 + @y_3, z = 1 + @x_1 + @x_2 + @x_3, @x_1 >= 0, @y_1 >= 0, @x_2 >= 0, @y_2 >= 0, @x_3 >= 0 #equal(z, z') -{ 1 }-> #eq(@x, @y) :|: z = @x, @x >= 0, z' = @y, @y >= 0 appendreverse(z, z') -{ 1 }-> appendreverse#1(@toreverse, @sofar) :|: z = @toreverse, @toreverse >= 0, @sofar >= 0, z' = @sofar appendreverse#1(z, z') -{ 1 }-> @sofar :|: z = 2, @sofar >= 0, z' = @sofar appendreverse#1(z, z') -{ 1 }-> appendreverse(@as, 1 + @a + @sofar) :|: @a >= 0, z = 1 + @a + @as, @sofar >= 0, @as >= 0, z' = @sofar appendreverse#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 bfs(z, z', z'') -{ 1 }-> bfs#1(@queue, @futurequeue, @x) :|: @queue >= 0, @x >= 0, @futurequeue >= 0, z = @queue, z'' = @x, z' = @futurequeue bfs#1(z, z', z'') -{ 1 }-> bfs#3(@t, @futurequeue, @ts, @x) :|: @ts >= 0, @t >= 0, @x >= 0, z = 1 + @t + @ts, @futurequeue >= 0, z'' = @x, z' = @futurequeue bfs#1(z, z', z'') -{ 1 }-> bfs#2(@futurequeue, @x) :|: z = 2, @x >= 0, @futurequeue >= 0, z'' = @x, z' = @futurequeue bfs#1(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 bfs#2(z, z') -{ 1 }-> bfs(reverse(1 + @t + @ts), 2, @x) :|: @ts >= 0, @t >= 0, @x >= 0, z = 1 + @t + @ts, z' = @x bfs#2(z, z') -{ 1 }-> 1 :|: z = 2, @x >= 0, z' = @x bfs#2(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 bfs#3(z, z', z'', z1) -{ 1 }-> bfs#4(#equal(@x, @y), @futurequeue, @t1, @t2, @ts, @x, @y) :|: z1 = @x, @ts >= 0, @x >= 0, @t1 >= 0, @t2 >= 0, @futurequeue >= 0, z = 1 + @y + @t1 + @t2, @y >= 0, z' = @futurequeue, z'' = @ts bfs#3(z, z', z'', z1) -{ 1 }-> bfs(@ts, @futurequeue, @x) :|: z1 = @x, @ts >= 0, @x >= 0, z = 1, @futurequeue >= 0, z' = @futurequeue, z'' = @ts bfs#3(z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 bfs#4(z, z', z'', z1, z2, z3, z4) -{ 1 }-> bfs(@ts, 1 + @t2 + (1 + @t1 + @futurequeue), @x) :|: z4 = @y, @ts >= 0, z = 1, @t2 >= 0, @x >= 0, z2 = @ts, @t1 >= 0, z'' = @t1, z1 = @t2, z3 = @x, @futurequeue >= 0, @y >= 0, z' = @futurequeue bfs#4(z, z', z'', z1, z2, z3, z4) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, v6 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0, z3 = v5, v4 >= 0, z4 = v6 bfs#4(z, z', z'', z1, z2, z3, z4) -{ 1 }-> 1 + @y + @t1 + @t2 :|: z4 = @y, @ts >= 0, @t2 >= 0, z = 2, @x >= 0, z2 = @ts, @t1 >= 0, z'' = @t1, z1 = @t2, z3 = @x, @futurequeue >= 0, @y >= 0, z' = @futurequeue bfs2(z, z') -{ 1 }-> bfs2#1(dobfs(@t, @x), @x) :|: z = @t, @t >= 0, @x >= 0, z' = @x bfs2#1(z, z') -{ 1 }-> dobfs(@t', @x) :|: @x >= 0, z = @t', z' = @x, @t' >= 0 dfs(z, z') -{ 1 }-> dfs#1(@queue, @x) :|: @queue >= 0, @x >= 0, z = @queue, z' = @x dfs#1(z, z') -{ 1 }-> dfs#2(@t, @t, @ts, @x) :|: @ts >= 0, @t >= 0, @x >= 0, z = 1 + @t + @ts, z' = @x dfs#1(z, z') -{ 1 }-> 1 :|: z = 2, @x >= 0, z' = @x dfs#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 dfs#2(z, z', z'', z1) -{ 1 }-> dfs#3(#equal(@a, @x), @t, @t1, @t2, @ts, @x) :|: z1 = @x, @ts >= 0, @t >= 0, @a >= 0, @x >= 0, z = 1 + @a + @t1 + @t2, @t1 >= 0, z' = @t, @t2 >= 0, z'' = @ts dfs#2(z, z', z'', z1) -{ 1 }-> dfs(@ts, @x) :|: z1 = @x, @ts >= 0, @t >= 0, @x >= 0, z = 1, z' = @t, z'' = @ts dfs#2(z, z', z'', z1) -{ 0 }-> 0 :|: z1 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 dfs#3(z, z', z'', z1, z2, z3) -{ 1 }-> @t :|: z = 2, @ts >= 0, @t >= 0, @x >= 0, z2 = @ts, @t1 >= 0, z' = @t, z'' = @t1, @t2 >= 0, z1 = @t2, z3 = @x dfs#3(z, z', z'', z1, z2, z3) -{ 1 }-> dfs(1 + @t1 + (1 + @t2 + @ts), @x) :|: @ts >= 0, @t >= 0, @x >= 0, z = 1, z2 = @ts, @t1 >= 0, z' = @t, z'' = @t1, @t2 >= 0, z1 = @t2, z3 = @x dfs#3(z, z', z'', z1, z2, z3) -{ 0 }-> 0 :|: z1 = v3, z3 = v5, v0 >= 0, v4 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z2 = v4, v2 >= 0, v3 >= 0 dobfs(z, z') -{ 1 }-> bfs(1 + @t + 2, 2, @x) :|: z = @t, @t >= 0, @x >= 0, z' = @x dodfs(z, z') -{ 1 }-> dfs(1 + @t + 2, @x) :|: z = @t, @t >= 0, @x >= 0, z' = @x reverse(z) -{ 1 }-> appendreverse(@xs, 2) :|: z = @xs, @xs >= 0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (29) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (30) Obligation: Complexity Dependency Tuples Problem Rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Tuples: #AND(#false, #false) -> c #AND(#false, #true) -> c1 #AND(#true, #false) -> c2 #AND(#true, #true) -> c3 #EQ(#0, #0) -> c4 #EQ(#0, #neg(z0)) -> c5 #EQ(#0, #pos(z0)) -> c6 #EQ(#0, #s(z0)) -> c7 #EQ(#neg(z0), #0) -> c8 #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(#pos(z0), #0) -> c11 #EQ(#pos(z0), #neg(z1)) -> c12 #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #0) -> c14 #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z1, z3)) #EQ(::(z0, z1), leaf) -> c18 #EQ(::(z0, z1), nil) -> c19 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 #EQ(leaf, ::(z0, z1)) -> c21 #EQ(leaf, leaf) -> c22 #EQ(leaf, nil) -> c23 #EQ(leaf, node(z0, z1, z2)) -> c24 #EQ(nil, ::(z0, z1)) -> c25 #EQ(nil, leaf) -> c26 #EQ(nil, nil) -> c27 #EQ(nil, node(z0, z1, z2)) -> c28 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(node(z0, z1, z2), leaf) -> c30 #EQ(node(z0, z1, z2), nil) -> c31 #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z2, z5)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) APPENDREVERSE#1(nil, z0) -> c38 BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#2(nil, z0) -> c43 BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#1(nil, z0) -> c52 DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples:none Defined Rule Symbols: #equal_2, appendreverse_2, appendreverse#1_2, bfs_3, bfs#1_3, bfs#2_2, bfs#3_4, bfs#4_7, bfs2_2, bfs2#1_2, dfs_2, dfs#1_2, dfs#2_4, dfs#3_6, dobfs_2, dodfs_2, reverse_1, #and_2, #eq_2 Defined Pair Symbols: #AND_2, #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2_2, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, DODFS_2, REVERSE_1 Compound Symbols: c, c1, c2, c3, c4, c5, c6, c7, c8, c9_1, c10, c11, c12, c13_1, c14, c15_1, c16_2, c17_2, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32_2, c33_3, c34_3, c35_1, c36_1, c37_1, c38, c39_1, c40_1, c41_1, c42_2, c43, c44_1, c45_2, c46_1, c47, c48_2, c49_1, c50_1, c51_1, c52, c53_1, c54_2, c55_1, c56, c57_1, c58_1, c59_1 ---------------------------------------- (31) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) Removed 32 trailing nodes: #AND(#true, #true) -> c3 #EQ(leaf, nil) -> c23 #EQ(#0, #s(z0)) -> c7 #EQ(#s(z0), #0) -> c14 #EQ(#0, #pos(z0)) -> c6 #EQ(nil, nil) -> c27 #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 #EQ(::(z0, z1), nil) -> c19 #EQ(#0, #neg(z0)) -> c5 #EQ(nil, node(z0, z1, z2)) -> c28 APPENDREVERSE#1(nil, z0) -> c38 #EQ(#0, #0) -> c4 #EQ(#pos(z0), #0) -> c11 #EQ(node(z0, z1, z2), nil) -> c31 BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 #EQ(nil, ::(z0, z1)) -> c25 #EQ(#pos(z0), #neg(z1)) -> c12 BFS#2(nil, z0) -> c43 #EQ(leaf, leaf) -> c22 #EQ(#neg(z0), #0) -> c8 #EQ(leaf, node(z0, z1, z2)) -> c24 DFS#3(#true, z0, z1, z2, z3, z4) -> c56 #AND(#false, #false) -> c #EQ(node(z0, z1, z2), leaf) -> c30 #EQ(nil, leaf) -> c26 #EQ(::(z0, z1), leaf) -> c18 DFS#1(nil, z0) -> c52 #AND(#false, #true) -> c1 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(leaf, ::(z0, z1)) -> c21 #AND(#true, #false) -> c2 ---------------------------------------- (32) Obligation: Complexity Dependency Tuples Problem Rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#AND(#eq(z0, z2), #eq(z1, z3)), #EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#AND(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #AND(#eq(z1, z4), #eq(z2, z5)), #EQ(z2, z5)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples:none Defined Rule Symbols: #equal_2, appendreverse_2, appendreverse#1_2, bfs_3, bfs#1_3, bfs#2_2, bfs#3_4, bfs#4_7, bfs2_2, bfs2#1_2, dfs_2, dfs#1_2, dfs#2_4, dfs#3_6, dobfs_2, dodfs_2, reverse_1, #and_2, #eq_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2_2, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1 Compound Symbols: c9_1, c13_1, c15_1, c16_2, c17_2, c32_2, c33_3, c34_3, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c48_2, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1 ---------------------------------------- (33) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2(z0, z1) -> c48(BFS2#1(dobfs(z0, z1), z1), DOBFS(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples:none Defined Rule Symbols: #equal_2, appendreverse_2, appendreverse#1_2, bfs_3, bfs#1_3, bfs#2_2, bfs#3_4, bfs#4_7, bfs2_2, bfs2#1_2, dfs_2, dfs#1_2, dfs#2_4, dfs#3_6, dobfs_2, dodfs_2, reverse_1, #and_2, #eq_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2_2, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c48_2, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1 ---------------------------------------- (35) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2(z0, z1) -> c(DOBFS(z0, z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2(z0, z1) -> c(DOBFS(z0, z1)) K tuples:none Defined Rule Symbols: #equal_2, appendreverse_2, appendreverse#1_2, bfs_3, bfs#1_3, bfs#2_2, bfs#3_4, bfs#4_7, bfs2_2, bfs2#1_2, dfs_2, dfs#1_2, dfs#2_4, dfs#3_6, dobfs_2, dodfs_2, reverse_1, #and_2, #eq_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (37) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: BFS2(z0, z1) -> c(DOBFS(z0, z1)) ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) K tuples:none Defined Rule Symbols: #equal_2, appendreverse_2, appendreverse#1_2, bfs_3, bfs#1_3, bfs#2_2, bfs#3_4, bfs#4_7, bfs2_2, bfs2#1_2, dfs_2, dfs#1_2, dfs#2_4, dfs#3_6, dobfs_2, dodfs_2, reverse_1, #and_2, #eq_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (39) CdtKnowledgeProof (BOTH BOUNDS(ID, ID)) The following tuples could be moved from S to K by knowledge propagation: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #equal(z0, z1) -> #eq(z0, z1) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) dodfs(z0, z1) -> dfs(::(z0, nil), z1) reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) Defined Rule Symbols: #equal_2, appendreverse_2, appendreverse#1_2, bfs_3, bfs#1_3, bfs#2_2, bfs#3_4, bfs#4_7, bfs2_2, bfs2#1_2, dfs_2, dfs#1_2, dfs#2_4, dfs#3_6, dobfs_2, dodfs_2, reverse_1, #and_2, #eq_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (41) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: bfs2(z0, z1) -> bfs2#1(dobfs(z0, z1), z1) bfs2#1(z0, z1) -> dobfs(z0, z1) dfs(z0, z1) -> dfs#1(z0, z1) dfs#1(::(z0, z1), z2) -> dfs#2(z0, z0, z1, z2) dfs#1(nil, z0) -> leaf dfs#2(leaf, z0, z1, z2) -> dfs(z1, z2) dfs#2(node(z0, z1, z2), z3, z4, z5) -> dfs#3(#equal(z0, z5), z3, z1, z2, z4, z5) dfs#3(#false, z0, z1, z2, z3, z4) -> dfs(::(z1, ::(z2, z3)), z4) dfs#3(#true, z0, z1, z2, z3, z4) -> z0 dodfs(z0, z1) -> dfs(::(z0, nil), z1) ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (43) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (44) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) The (relative) TRS S consists of the following rules: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Rewrite Strategy: INNERMOST ---------------------------------------- (45) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (46) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (47) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (48) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) [1] APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) [1] APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) [1] BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) [1] BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) [1] BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) [1] BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) [1] BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) [1] BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) [1] BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) [1] DFS(z0, z1) -> c50(DFS#1(z0, z1)) [1] DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) [1] DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) [1] DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) [1] DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) [1] REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) [1] #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) [0] #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) [0] #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) [0] BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) [0] DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) [0] #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) [0] #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) [0] BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) [0] reverse(z0) -> appendreverse(z0, nil) [0] appendreverse(z0, z1) -> appendreverse#1(z0, z1) [0] appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) [0] appendreverse#1(nil, z0) -> z0 [0] #equal(z0, z1) -> #eq(z0, z1) [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(z0)) -> #false [0] #eq(#0, #pos(z0)) -> #false [0] #eq(#0, #s(z0)) -> #false [0] #eq(#neg(z0), #0) -> #false [0] #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) [0] #eq(#neg(z0), #pos(z1)) -> #false [0] #eq(#pos(z0), #0) -> #false [0] #eq(#pos(z0), #neg(z1)) -> #false [0] #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) [0] #eq(#s(z0), #0) -> #false [0] #eq(#s(z0), #s(z1)) -> #eq(z0, z1) [0] #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) [0] #eq(::(z0, z1), leaf) -> #false [0] #eq(::(z0, z1), nil) -> #false [0] #eq(::(z0, z1), node(z2, z3, z4)) -> #false [0] #eq(leaf, ::(z0, z1)) -> #false [0] #eq(leaf, leaf) -> #true [0] #eq(leaf, nil) -> #false [0] #eq(leaf, node(z0, z1, z2)) -> #false [0] #eq(nil, ::(z0, z1)) -> #false [0] #eq(nil, leaf) -> #false [0] #eq(nil, nil) -> #true [0] #eq(nil, node(z0, z1, z2)) -> #false [0] #eq(node(z0, z1, z2), ::(z3, z4)) -> #false [0] #eq(node(z0, z1, z2), leaf) -> #false [0] #eq(node(z0, z1, z2), nil) -> #false [0] #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) [0] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) [0] bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) [0] bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) [0] bfs#1(nil, z0, z1) -> bfs#2(z0, z1) [0] bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) [0] bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) [0] bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) [0] bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) [0] bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) [0] bfs#2(nil, z0) -> leaf [0] Rewrite Strategy: INNERMOST ---------------------------------------- (49) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (50) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) [1] APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) [1] APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) [1] BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) [1] BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) [1] BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) [1] BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) [1] BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) [1] BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) [1] BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) [1] DFS(z0, z1) -> c50(DFS#1(z0, z1)) [1] DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) [1] DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) [1] DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) [1] DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) [1] REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) [1] #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) [0] #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) [0] #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) [0] BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) [0] DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) [0] #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) [0] #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) [0] BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) [0] reverse(z0) -> appendreverse(z0, nil) [0] appendreverse(z0, z1) -> appendreverse#1(z0, z1) [0] appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) [0] appendreverse#1(nil, z0) -> z0 [0] #equal(z0, z1) -> #eq(z0, z1) [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(z0)) -> #false [0] #eq(#0, #pos(z0)) -> #false [0] #eq(#0, #s(z0)) -> #false [0] #eq(#neg(z0), #0) -> #false [0] #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) [0] #eq(#neg(z0), #pos(z1)) -> #false [0] #eq(#pos(z0), #0) -> #false [0] #eq(#pos(z0), #neg(z1)) -> #false [0] #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) [0] #eq(#s(z0), #0) -> #false [0] #eq(#s(z0), #s(z1)) -> #eq(z0, z1) [0] #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) [0] #eq(::(z0, z1), leaf) -> #false [0] #eq(::(z0, z1), nil) -> #false [0] #eq(::(z0, z1), node(z2, z3, z4)) -> #false [0] #eq(leaf, ::(z0, z1)) -> #false [0] #eq(leaf, leaf) -> #true [0] #eq(leaf, nil) -> #false [0] #eq(leaf, node(z0, z1, z2)) -> #false [0] #eq(nil, ::(z0, z1)) -> #false [0] #eq(nil, leaf) -> #false [0] #eq(nil, nil) -> #true [0] #eq(nil, node(z0, z1, z2)) -> #false [0] #eq(node(z0, z1, z2), ::(z3, z4)) -> #false [0] #eq(node(z0, z1, z2), leaf) -> #false [0] #eq(node(z0, z1, z2), nil) -> #false [0] #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) [0] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) [0] bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) [0] bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) [0] bfs#1(nil, z0, z1) -> bfs#2(z0, z1) [0] bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) [0] bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) [0] bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) [0] bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) [0] bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) [0] bfs#2(nil, z0) -> leaf [0] The TRS has the following type information: #EQUAL :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c35 c35 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c35 #EQ :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c9:c13:c15:c16:c17:c32:c33:c34 APPENDREVERSE :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c36 c36 :: c37 -> c36 APPENDREVERSE#1 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c37 :: :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 c37 :: c36 -> c37 BFS :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c39 c39 :: c40:c41 -> c39 BFS#1 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c40:c41 c40 :: c44:c45 -> c40:c41 BFS#3 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c44:c45 nil :: :::nil:leaf:node:#neg:#pos:#s:#0 c41 :: c42 -> c40:c41 BFS#2 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c42 c42 :: c39 -> c59 -> c42 reverse :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 REVERSE :: :::nil:leaf:node:#neg:#pos:#s:#0 -> c59 leaf :: :::nil:leaf:node:#neg:#pos:#s:#0 c44 :: c39 -> c44:c45 node :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 c45 :: c46 -> c35 -> c44:c45 BFS#4 :: #false:#true -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c46 #equal :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> #false:#true #false :: #false:#true c46 :: c39 -> c46 DFS :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c50 c50 :: c51 -> c50 DFS#1 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c51 c51 :: c53:c54 -> c51 DFS#2 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c53:c54 c53 :: c50 -> c53:c54 c54 :: c55 -> c35 -> c53:c54 DFS#3 :: #false:#true -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c55 c55 :: c50 -> c55 c59 :: c36 -> c59 #neg :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 c9 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c9:c13:c15:c16:c17:c32:c33:c34 #pos :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 c13 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c9:c13:c15:c16:c17:c32:c33:c34 #s :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 c15 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c9:c13:c15:c16:c17:c32:c33:c34 BFS2#1 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c49 c49 :: c57 -> c49 DOBFS :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c57 c57 :: c39 -> c57 c16 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c9:c13:c15:c16:c17:c32:c33:c34 c17 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c9:c13:c15:c16:c17:c32:c33:c34 c32 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c9:c13:c15:c16:c17:c32:c33:c34 c33 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c9:c13:c15:c16:c17:c32:c33:c34 c34 :: c9:c13:c15:c16:c17:c32:c33:c34 -> c9:c13:c15:c16:c17:c32:c33:c34 BFS2 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> c c :: c49 -> c dobfs :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 appendreverse :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 appendreverse#1 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 #eq :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> #false:#true #0 :: :::nil:leaf:node:#neg:#pos:#s:#0 #true :: #false:#true #and :: #false:#true -> #false:#true -> #false:#true bfs :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 bfs#1 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 bfs#3 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 bfs#2 :: :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 bfs#4 :: #false:#true -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 -> :::nil:leaf:node:#neg:#pos:#s:#0 Rewrite Strategy: INNERMOST ---------------------------------------- (51) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: #EQUAL_2 APPENDREVERSE_2 APPENDREVERSE#1_2 BFS_3 BFS#1_3 BFS#2_2 BFS#3_4 BFS#4_7 DFS_2 DFS#1_2 DFS#2_4 DFS#3_6 REVERSE_1 (c) The following functions are completely defined: #EQ_2 BFS2#1_2 DOBFS_2 BFS2_2 reverse_1 appendreverse_2 appendreverse#1_2 #equal_2 #eq_2 #and_2 dobfs_2 bfs_3 bfs#1_3 bfs#3_4 bfs#4_7 bfs#2_2 Due to the following rules being added: #EQ(v0, v1) -> const1 [0] BFS2#1(v0, v1) -> const14 [0] DOBFS(v0, v1) -> const15 [0] BFS2(v0, v1) -> const16 [0] reverse(v0) -> null_reverse [0] appendreverse(v0, v1) -> null_appendreverse [0] appendreverse#1(v0, v1) -> null_appendreverse#1 [0] #equal(v0, v1) -> null_#equal [0] #eq(v0, v1) -> null_#eq [0] #and(v0, v1) -> null_#and [0] dobfs(v0, v1) -> null_dobfs [0] bfs(v0, v1, v2) -> null_bfs [0] bfs#1(v0, v1, v2) -> null_bfs#1 [0] bfs#3(v0, v1, v2, v3) -> null_bfs#3 [0] bfs#4(v0, v1, v2, v3, v4, v5, v6) -> null_bfs#4 [0] bfs#2(v0, v1) -> null_bfs#2 [0] And the following fresh constants: const1, const14, const15, const16, null_reverse, null_appendreverse, null_appendreverse#1, null_#equal, null_#eq, null_#and, null_dobfs, null_bfs, null_bfs#1, null_bfs#3, null_bfs#4, null_bfs#2, const, const2, const3, const4, const5, const6, const7, const8, const9, const10, const11, const12, const13 ---------------------------------------- (52) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) [1] APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) [1] APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) [1] BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) [1] BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) [1] BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) [1] BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) [1] BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) [1] BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) [1] BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) [1] DFS(z0, z1) -> c50(DFS#1(z0, z1)) [1] DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) [1] DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) [1] DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) [1] DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) [1] REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) [1] #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) [0] #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) [0] #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) [0] BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) [0] DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) [0] #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) [0] #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) [0] BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) [0] reverse(z0) -> appendreverse(z0, nil) [0] appendreverse(z0, z1) -> appendreverse#1(z0, z1) [0] appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) [0] appendreverse#1(nil, z0) -> z0 [0] #equal(z0, z1) -> #eq(z0, z1) [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(z0)) -> #false [0] #eq(#0, #pos(z0)) -> #false [0] #eq(#0, #s(z0)) -> #false [0] #eq(#neg(z0), #0) -> #false [0] #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) [0] #eq(#neg(z0), #pos(z1)) -> #false [0] #eq(#pos(z0), #0) -> #false [0] #eq(#pos(z0), #neg(z1)) -> #false [0] #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) [0] #eq(#s(z0), #0) -> #false [0] #eq(#s(z0), #s(z1)) -> #eq(z0, z1) [0] #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) [0] #eq(::(z0, z1), leaf) -> #false [0] #eq(::(z0, z1), nil) -> #false [0] #eq(::(z0, z1), node(z2, z3, z4)) -> #false [0] #eq(leaf, ::(z0, z1)) -> #false [0] #eq(leaf, leaf) -> #true [0] #eq(leaf, nil) -> #false [0] #eq(leaf, node(z0, z1, z2)) -> #false [0] #eq(nil, ::(z0, z1)) -> #false [0] #eq(nil, leaf) -> #false [0] #eq(nil, nil) -> #true [0] #eq(nil, node(z0, z1, z2)) -> #false [0] #eq(node(z0, z1, z2), ::(z3, z4)) -> #false [0] #eq(node(z0, z1, z2), leaf) -> #false [0] #eq(node(z0, z1, z2), nil) -> #false [0] #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) [0] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) [0] bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) [0] bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) [0] bfs#1(nil, z0, z1) -> bfs#2(z0, z1) [0] bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) [0] bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) [0] bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) [0] bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) [0] bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) [0] bfs#2(nil, z0) -> leaf [0] #EQ(v0, v1) -> const1 [0] BFS2#1(v0, v1) -> const14 [0] DOBFS(v0, v1) -> const15 [0] BFS2(v0, v1) -> const16 [0] reverse(v0) -> null_reverse [0] appendreverse(v0, v1) -> null_appendreverse [0] appendreverse#1(v0, v1) -> null_appendreverse#1 [0] #equal(v0, v1) -> null_#equal [0] #eq(v0, v1) -> null_#eq [0] #and(v0, v1) -> null_#and [0] dobfs(v0, v1) -> null_dobfs [0] bfs(v0, v1, v2) -> null_bfs [0] bfs#1(v0, v1, v2) -> null_bfs#1 [0] bfs#3(v0, v1, v2, v3) -> null_bfs#3 [0] bfs#4(v0, v1, v2, v3, v4, v5, v6) -> null_bfs#4 [0] bfs#2(v0, v1) -> null_bfs#2 [0] The TRS has the following type information: #EQUAL :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c35 c35 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c35 #EQ :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 APPENDREVERSE :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c36 c36 :: c37 -> c36 APPENDREVERSE#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c37 :: :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c37 :: c36 -> c37 BFS :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c39 c39 :: c40:c41 -> c39 BFS#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c40:c41 c40 :: c44:c45 -> c40:c41 BFS#3 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c44:c45 nil :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c41 :: c42 -> c40:c41 BFS#2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c42 c42 :: c39 -> c59 -> c42 reverse :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 REVERSE :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c59 leaf :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c44 :: c39 -> c44:c45 node :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c45 :: c46 -> c35 -> c44:c45 BFS#4 :: #false:#true:null_#equal:null_#eq:null_#and -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c46 #equal :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> #false:#true:null_#equal:null_#eq:null_#and #false :: #false:#true:null_#equal:null_#eq:null_#and c46 :: c39 -> c46 DFS :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c50 c50 :: c51 -> c50 DFS#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c51 c51 :: c53:c54 -> c51 DFS#2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c53:c54 c53 :: c50 -> c53:c54 c54 :: c55 -> c35 -> c53:c54 DFS#3 :: #false:#true:null_#equal:null_#eq:null_#and -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c55 c55 :: c50 -> c55 c59 :: c36 -> c59 #neg :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c9 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 #pos :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c13 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 #s :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c15 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 BFS2#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c49:const14 c49 :: c57:const15 -> c49:const14 DOBFS :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c57:const15 c57 :: c39 -> c57:const15 c16 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 c17 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 c32 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 c33 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 c34 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 -> c9:c13:c15:c16:c17:c32:c33:c34:const1 BFS2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c:const16 c :: c49:const14 -> c:const16 dobfs :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 appendreverse :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 appendreverse#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 #eq :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> #false:#true:null_#equal:null_#eq:null_#and #0 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 #true :: #false:#true:null_#equal:null_#eq:null_#and #and :: #false:#true:null_#equal:null_#eq:null_#and -> #false:#true:null_#equal:null_#eq:null_#and -> #false:#true:null_#equal:null_#eq:null_#and bfs :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 bfs#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 bfs#3 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 bfs#2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 bfs#4 :: #false:#true:null_#equal:null_#eq:null_#and -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 const1 :: c9:c13:c15:c16:c17:c32:c33:c34:const1 const14 :: c49:const14 const15 :: c57:const15 const16 :: c:const16 null_reverse :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_appendreverse :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_appendreverse#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_#equal :: #false:#true:null_#equal:null_#eq:null_#and null_#eq :: #false:#true:null_#equal:null_#eq:null_#and null_#and :: #false:#true:null_#equal:null_#eq:null_#and null_dobfs :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs#3 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs#4 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs#2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 const :: c35 const2 :: c36 const3 :: c37 const4 :: c39 const5 :: c40:c41 const6 :: c44:c45 const7 :: c42 const8 :: c59 const9 :: c46 const10 :: c50 const11 :: c51 const12 :: c53:c54 const13 :: c55 Rewrite Strategy: INNERMOST ---------------------------------------- (53) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: #EQ(v0, v1) -> null_#EQ [0] BFS2#1(v0, v1) -> null_BFS2#1 [0] DOBFS(v0, v1) -> null_DOBFS [0] BFS2(v0, v1) -> null_BFS2 [0] reverse(v0) -> null_reverse [0] appendreverse(v0, v1) -> null_appendreverse [0] appendreverse#1(v0, v1) -> null_appendreverse#1 [0] #equal(v0, v1) -> null_#equal [0] #eq(v0, v1) -> null_#eq [0] #and(v0, v1) -> null_#and [0] dobfs(v0, v1) -> null_dobfs [0] bfs(v0, v1, v2) -> null_bfs [0] bfs#1(v0, v1, v2) -> null_bfs#1 [0] bfs#3(v0, v1, v2, v3) -> null_bfs#3 [0] bfs#4(v0, v1, v2, v3, v4, v5, v6) -> null_bfs#4 [0] bfs#2(v0, v1) -> null_bfs#2 [0] APPENDREVERSE#1(v0, v1) -> null_APPENDREVERSE#1 [0] BFS#1(v0, v1, v2) -> null_BFS#1 [0] BFS#2(v0, v1) -> null_BFS#2 [0] BFS#3(v0, v1, v2, v3) -> null_BFS#3 [0] BFS#4(v0, v1, v2, v3, v4, v5, v6) -> null_BFS#4 [0] DFS#1(v0, v1) -> null_DFS#1 [0] DFS#2(v0, v1, v2, v3) -> null_DFS#2 [0] DFS#3(v0, v1, v2, v3, v4, v5) -> null_DFS#3 [0] And the following fresh constants: null_#EQ, null_BFS2#1, null_DOBFS, null_BFS2, null_reverse, null_appendreverse, null_appendreverse#1, null_#equal, null_#eq, null_#and, null_dobfs, null_bfs, null_bfs#1, null_bfs#3, null_bfs#4, null_bfs#2, null_APPENDREVERSE#1, null_BFS#1, null_BFS#2, null_BFS#3, null_BFS#4, null_DFS#1, null_DFS#2, null_DFS#3, const, const1, const2, const3, const4 ---------------------------------------- (54) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) [1] APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) [1] APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) [1] BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) [1] BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) [1] BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) [1] BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) [1] BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) [1] BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) [1] BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) [1] DFS(z0, z1) -> c50(DFS#1(z0, z1)) [1] DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) [1] DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) [1] DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) [1] DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) [1] REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) [1] #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) [0] #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) [0] #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) [0] BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) [0] DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) [0] #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) [0] #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) [0] #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) [0] BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) [0] reverse(z0) -> appendreverse(z0, nil) [0] appendreverse(z0, z1) -> appendreverse#1(z0, z1) [0] appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) [0] appendreverse#1(nil, z0) -> z0 [0] #equal(z0, z1) -> #eq(z0, z1) [0] #eq(#0, #0) -> #true [0] #eq(#0, #neg(z0)) -> #false [0] #eq(#0, #pos(z0)) -> #false [0] #eq(#0, #s(z0)) -> #false [0] #eq(#neg(z0), #0) -> #false [0] #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) [0] #eq(#neg(z0), #pos(z1)) -> #false [0] #eq(#pos(z0), #0) -> #false [0] #eq(#pos(z0), #neg(z1)) -> #false [0] #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) [0] #eq(#s(z0), #0) -> #false [0] #eq(#s(z0), #s(z1)) -> #eq(z0, z1) [0] #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) [0] #eq(::(z0, z1), leaf) -> #false [0] #eq(::(z0, z1), nil) -> #false [0] #eq(::(z0, z1), node(z2, z3, z4)) -> #false [0] #eq(leaf, ::(z0, z1)) -> #false [0] #eq(leaf, leaf) -> #true [0] #eq(leaf, nil) -> #false [0] #eq(leaf, node(z0, z1, z2)) -> #false [0] #eq(nil, ::(z0, z1)) -> #false [0] #eq(nil, leaf) -> #false [0] #eq(nil, nil) -> #true [0] #eq(nil, node(z0, z1, z2)) -> #false [0] #eq(node(z0, z1, z2), ::(z3, z4)) -> #false [0] #eq(node(z0, z1, z2), leaf) -> #false [0] #eq(node(z0, z1, z2), nil) -> #false [0] #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) [0] #and(#false, #false) -> #false [0] #and(#false, #true) -> #false [0] #and(#true, #false) -> #false [0] #and(#true, #true) -> #true [0] dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) [0] bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) [0] bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) [0] bfs#1(nil, z0, z1) -> bfs#2(z0, z1) [0] bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) [0] bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) [0] bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) [0] bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) [0] bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) [0] bfs#2(nil, z0) -> leaf [0] #EQ(v0, v1) -> null_#EQ [0] BFS2#1(v0, v1) -> null_BFS2#1 [0] DOBFS(v0, v1) -> null_DOBFS [0] BFS2(v0, v1) -> null_BFS2 [0] reverse(v0) -> null_reverse [0] appendreverse(v0, v1) -> null_appendreverse [0] appendreverse#1(v0, v1) -> null_appendreverse#1 [0] #equal(v0, v1) -> null_#equal [0] #eq(v0, v1) -> null_#eq [0] #and(v0, v1) -> null_#and [0] dobfs(v0, v1) -> null_dobfs [0] bfs(v0, v1, v2) -> null_bfs [0] bfs#1(v0, v1, v2) -> null_bfs#1 [0] bfs#3(v0, v1, v2, v3) -> null_bfs#3 [0] bfs#4(v0, v1, v2, v3, v4, v5, v6) -> null_bfs#4 [0] bfs#2(v0, v1) -> null_bfs#2 [0] APPENDREVERSE#1(v0, v1) -> null_APPENDREVERSE#1 [0] BFS#1(v0, v1, v2) -> null_BFS#1 [0] BFS#2(v0, v1) -> null_BFS#2 [0] BFS#3(v0, v1, v2, v3) -> null_BFS#3 [0] BFS#4(v0, v1, v2, v3, v4, v5, v6) -> null_BFS#4 [0] DFS#1(v0, v1) -> null_DFS#1 [0] DFS#2(v0, v1, v2, v3) -> null_DFS#2 [0] DFS#3(v0, v1, v2, v3, v4, v5) -> null_DFS#3 [0] The TRS has the following type information: #EQUAL :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c35 c35 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c35 #EQ :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ APPENDREVERSE :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c36 c36 :: c37:null_APPENDREVERSE#1 -> c36 APPENDREVERSE#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c37:null_APPENDREVERSE#1 :: :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c37 :: c36 -> c37:null_APPENDREVERSE#1 BFS :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c39 c39 :: c40:c41:null_BFS#1 -> c39 BFS#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c40:c41:null_BFS#1 c40 :: c44:c45:null_BFS#3 -> c40:c41:null_BFS#1 BFS#3 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c44:c45:null_BFS#3 nil :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c41 :: c42:null_BFS#2 -> c40:c41:null_BFS#1 BFS#2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c42:null_BFS#2 c42 :: c39 -> c59 -> c42:null_BFS#2 reverse :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 REVERSE :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c59 leaf :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c44 :: c39 -> c44:c45:null_BFS#3 node :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c45 :: c46:null_BFS#4 -> c35 -> c44:c45:null_BFS#3 BFS#4 :: #false:#true:null_#equal:null_#eq:null_#and -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c46:null_BFS#4 #equal :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> #false:#true:null_#equal:null_#eq:null_#and #false :: #false:#true:null_#equal:null_#eq:null_#and c46 :: c39 -> c46:null_BFS#4 DFS :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c50 c50 :: c51:null_DFS#1 -> c50 DFS#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c51:null_DFS#1 c51 :: c53:c54:null_DFS#2 -> c51:null_DFS#1 DFS#2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c53:c54:null_DFS#2 c53 :: c50 -> c53:c54:null_DFS#2 c54 :: c55:null_DFS#3 -> c35 -> c53:c54:null_DFS#2 DFS#3 :: #false:#true:null_#equal:null_#eq:null_#and -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c55:null_DFS#3 c55 :: c50 -> c55:null_DFS#3 c59 :: c36 -> c59 #neg :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c9 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ #pos :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c13 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ #s :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 c15 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ BFS2#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c49:null_BFS2#1 c49 :: c57:null_DOBFS -> c49:null_BFS2#1 DOBFS :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c57:null_DOBFS c57 :: c39 -> c57:null_DOBFS c16 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ c17 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ c32 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ c33 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ c34 :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ -> c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ BFS2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> c:null_BFS2 c :: c49:null_BFS2#1 -> c:null_BFS2 dobfs :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 appendreverse :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 appendreverse#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 #eq :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> #false:#true:null_#equal:null_#eq:null_#and #0 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 #true :: #false:#true:null_#equal:null_#eq:null_#and #and :: #false:#true:null_#equal:null_#eq:null_#and -> #false:#true:null_#equal:null_#eq:null_#and -> #false:#true:null_#equal:null_#eq:null_#and bfs :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 bfs#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 bfs#3 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 bfs#2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 bfs#4 :: #false:#true:null_#equal:null_#eq:null_#and -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 -> :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_#EQ :: c9:c13:c15:c16:c17:c32:c33:c34:null_#EQ null_BFS2#1 :: c49:null_BFS2#1 null_DOBFS :: c57:null_DOBFS null_BFS2 :: c:null_BFS2 null_reverse :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_appendreverse :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_appendreverse#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_#equal :: #false:#true:null_#equal:null_#eq:null_#and null_#eq :: #false:#true:null_#equal:null_#eq:null_#and null_#and :: #false:#true:null_#equal:null_#eq:null_#and null_dobfs :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs#1 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs#3 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs#4 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_bfs#2 :: :::nil:leaf:node:#neg:#pos:#s:#0:null_reverse:null_appendreverse:null_appendreverse#1:null_dobfs:null_bfs:null_bfs#1:null_bfs#3:null_bfs#4:null_bfs#2 null_APPENDREVERSE#1 :: c37:null_APPENDREVERSE#1 null_BFS#1 :: c40:c41:null_BFS#1 null_BFS#2 :: c42:null_BFS#2 null_BFS#3 :: c44:c45:null_BFS#3 null_BFS#4 :: c46:null_BFS#4 null_DFS#1 :: c51:null_DFS#1 null_DFS#2 :: c53:c54:null_DFS#2 null_DFS#3 :: c55:null_DFS#3 const :: c35 const1 :: c36 const2 :: c39 const3 :: c59 const4 :: c50 Rewrite Strategy: INNERMOST ---------------------------------------- (55) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: nil => 2 leaf => 1 #false => 1 #0 => 0 #true => 2 null_#EQ => 0 null_BFS2#1 => 0 null_DOBFS => 0 null_BFS2 => 0 null_reverse => 0 null_appendreverse => 0 null_appendreverse#1 => 0 null_#equal => 0 null_#eq => 0 null_#and => 0 null_dobfs => 0 null_bfs => 0 null_bfs#1 => 0 null_bfs#3 => 0 null_bfs#4 => 0 null_bfs#2 => 0 null_APPENDREVERSE#1 => 0 null_BFS#1 => 0 null_BFS#2 => 0 null_BFS#3 => 0 null_BFS#4 => 0 null_DFS#1 => 0 null_DFS#2 => 0 null_DFS#3 => 0 const => 0 const1 => 0 const2 => 0 const3 => 0 const4 => 0 ---------------------------------------- (56) Obligation: Complexity RNTS consisting of the following rules: #EQ(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #EQ(z, z') -{ 0 }-> 1 + #EQ(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #EQ(z, z') -{ 0 }-> 1 + #EQ(z0, z2) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ(z, z') -{ 0 }-> 1 + #EQ(z0, z3) :|: z5 >= 0, z1 >= 0, z = 1 + z0 + z1 + z2, z0 >= 0, z' = 1 + z3 + z4 + z5, z4 >= 0, z2 >= 0, z3 >= 0 #EQ(z, z') -{ 0 }-> 1 + #EQ(z1, z3) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #EQ(z, z') -{ 0 }-> 1 + #EQ(z1, z4) :|: z5 >= 0, z1 >= 0, z = 1 + z0 + z1 + z2, z0 >= 0, z' = 1 + z3 + z4 + z5, z4 >= 0, z2 >= 0, z3 >= 0 #EQ(z, z') -{ 0 }-> 1 + #EQ(z2, z5) :|: z5 >= 0, z1 >= 0, z = 1 + z0 + z1 + z2, z0 >= 0, z' = 1 + z3 + z4 + z5, z4 >= 0, z2 >= 0, z3 >= 0 #EQUAL(z, z') -{ 1 }-> 1 + #EQ(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 #and(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #and(z, z') -{ 0 }-> 1 :|: z = 1, z' = 1 #and(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #and(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #and(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #eq(z, z') -{ 0 }-> 2 :|: z = 0, z' = 0 #eq(z, z') -{ 0 }-> 2 :|: z = 1, z' = 1 #eq(z, z') -{ 0 }-> 2 :|: z = 2, z' = 2 #eq(z, z') -{ 0 }-> 1 :|: z0 >= 0, z' = 1 + z0, z = 0 #eq(z, z') -{ 0 }-> 1 :|: z = 1 + z0, z0 >= 0, z' = 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z0 >= 0, z' = 1, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z' = 2, z0 >= 0, z = 1 + z0 + z1 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z2 + z3 + z4, z1 >= 0, z0 >= 0, z4 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z' = 1 + z0 + z1, z1 >= 0, z = 1, z0 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z' = 2, z = 1 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z = 1, z' = 1 + z0 + z1 + z2, z0 >= 0, z2 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 + z0 + z1, z1 >= 0, z0 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z = 2, z' = 1 #eq(z, z') -{ 0 }-> 1 :|: z = 2, z1 >= 0, z' = 1 + z0 + z1 + z2, z0 >= 0, z2 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z = 1 + z0 + z1 + z2, z0 >= 0, z4 >= 0, z2 >= 0, z3 >= 0, z' = 1 + z3 + z4 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z = 1 + z0 + z1 + z2, z0 >= 0, z' = 1, z2 >= 0 #eq(z, z') -{ 0 }-> 1 :|: z1 >= 0, z = 1 + z0 + z1 + z2, z' = 2, z0 >= 0, z2 >= 0 #eq(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #eq(z, z') -{ 0 }-> #eq(z0, z1) :|: z1 >= 0, z = 1 + z0, z0 >= 0, z' = 1 + z1 #eq(z, z') -{ 0 }-> #and(#eq(z0, z2), #eq(z1, z3)) :|: z1 >= 0, z' = 1 + z2 + z3, z0 >= 0, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 #eq(z, z') -{ 0 }-> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) :|: z5 >= 0, z1 >= 0, z = 1 + z0 + z1 + z2, z0 >= 0, z' = 1 + z3 + z4 + z5, z4 >= 0, z2 >= 0, z3 >= 0 #equal(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 #equal(z, z') -{ 0 }-> #eq(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 APPENDREVERSE(z, z') -{ 1 }-> 1 + APPENDREVERSE#1(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 APPENDREVERSE#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 APPENDREVERSE#1(z, z') -{ 1 }-> 1 + APPENDREVERSE(z1, 1 + z0 + z2) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 BFS(z, z', z'') -{ 1 }-> 1 + BFS#1(z0, z1, z2) :|: z'' = z2, z = z0, z1 >= 0, z' = z1, z0 >= 0, z2 >= 0 BFS#1(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 BFS#1(z, z', z'') -{ 1 }-> 1 + BFS#3(z0, z2, z1, z3) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 BFS#1(z, z', z'') -{ 1 }-> 1 + BFS#2(z0, z1) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z'' = z1 BFS#2(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 BFS#2(z, z') -{ 1 }-> 1 + BFS(reverse(1 + z0 + z1), 2, z2) + REVERSE(1 + z0 + z1) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 BFS#3(z, z', z'', z6) -{ 0 }-> 0 :|: z6 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 BFS#3(z, z', z'', z6) -{ 1 }-> 1 + BFS(z1, z0, z2) :|: z1 >= 0, z = 1, z0 >= 0, z6 = z2, z' = z0, z2 >= 0, z'' = z1 BFS#3(z, z', z'', z6) -{ 1 }-> 1 + BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) + #EQUAL(z5, z0) :|: z5 >= 0, z1 >= 0, z = 1 + z0 + z1 + z2, z6 = z5, z' = z3, z'' = z4, z0 >= 0, z4 >= 0, z2 >= 0, z3 >= 0 BFS#4(z, z', z'', z6, z7, z8, z9) -{ 0 }-> 0 :|: z6 = v3, v0 >= 0, v6 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0, v4 >= 0, z7 = v4, z8 = v5, z9 = v6 BFS#4(z, z', z'', z6, z7, z8, z9) -{ 1 }-> 1 + BFS(z3, 1 + z2 + (1 + z1 + z0), z4) :|: z5 >= 0, z = 1, z0 >= 0, z6 = z2, z4 >= 0, z' = z0, z2 >= 0, z3 >= 0, z'' = z1, z1 >= 0, z7 = z3, z8 = z4, z9 = z5 BFS2(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 BFS2(z, z') -{ 0 }-> 1 + BFS2#1(dobfs(z0, z1), z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 BFS2#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 BFS2#1(z, z') -{ 0 }-> 1 + DOBFS(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 DFS(z, z') -{ 1 }-> 1 + DFS#1(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 DFS#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 DFS#1(z, z') -{ 1 }-> 1 + DFS#2(z0, z0, z1, z2) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 DFS#2(z, z', z'', z6) -{ 0 }-> 0 :|: z6 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 DFS#2(z, z', z'', z6) -{ 1 }-> 1 + DFS(z1, z2) :|: z1 >= 0, z = 1, z0 >= 0, z6 = z2, z' = z0, z2 >= 0, z'' = z1 DFS#2(z, z', z'', z6) -{ 1 }-> 1 + DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5) + #EQUAL(z0, z5) :|: z5 >= 0, z1 >= 0, z = 1 + z0 + z1 + z2, z6 = z5, z' = z3, z'' = z4, z0 >= 0, z4 >= 0, z2 >= 0, z3 >= 0 DFS#3(z, z', z'', z6, z7, z8) -{ 0 }-> 0 :|: z6 = v3, v0 >= 0, v4 >= 0, z7 = v4, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, z8 = v5, v2 >= 0, v3 >= 0 DFS#3(z, z', z'', z6, z7, z8) -{ 1 }-> 1 + DFS(1 + z1 + (1 + z2 + z3), z4) :|: z1 >= 0, z = 1, z7 = z3, z0 >= 0, z6 = z2, z8 = z4, z4 >= 0, z' = z0, z2 >= 0, z3 >= 0, z'' = z1 DOBFS(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 DOBFS(z, z') -{ 0 }-> 1 + BFS(1 + z0 + 2, 2, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 REVERSE(z) -{ 1 }-> 1 + APPENDREVERSE(z0, 2) :|: z = z0, z0 >= 0 appendreverse(z, z') -{ 0 }-> appendreverse#1(z0, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 appendreverse(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 appendreverse#1(z, z') -{ 0 }-> z0 :|: z = 2, z0 >= 0, z' = z0 appendreverse#1(z, z') -{ 0 }-> appendreverse(z1, 1 + z0 + z2) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 appendreverse#1(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 bfs(z, z', z'') -{ 0 }-> bfs#1(z0, z1, z2) :|: z'' = z2, z = z0, z1 >= 0, z' = z1, z0 >= 0, z2 >= 0 bfs(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 bfs#1(z, z', z'') -{ 0 }-> bfs#3(z0, z2, z1, z3) :|: z1 >= 0, z' = z2, z0 >= 0, z'' = z3, z = 1 + z0 + z1, z2 >= 0, z3 >= 0 bfs#1(z, z', z'') -{ 0 }-> bfs#2(z0, z1) :|: z = 2, z1 >= 0, z0 >= 0, z' = z0, z'' = z1 bfs#1(z, z', z'') -{ 0 }-> 0 :|: v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0 bfs#2(z, z') -{ 0 }-> bfs(reverse(1 + z0 + z1), 2, z2) :|: z1 >= 0, z' = z2, z0 >= 0, z = 1 + z0 + z1, z2 >= 0 bfs#2(z, z') -{ 0 }-> 1 :|: z = 2, z0 >= 0, z' = z0 bfs#2(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 bfs#3(z, z', z'', z6) -{ 0 }-> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) :|: z5 >= 0, z1 >= 0, z = 1 + z0 + z1 + z2, z6 = z5, z' = z3, z'' = z4, z0 >= 0, z4 >= 0, z2 >= 0, z3 >= 0 bfs#3(z, z', z'', z6) -{ 0 }-> bfs(z1, z0, z2) :|: z1 >= 0, z = 1, z0 >= 0, z6 = z2, z' = z0, z2 >= 0, z'' = z1 bfs#3(z, z', z'', z6) -{ 0 }-> 0 :|: z6 = v3, v0 >= 0, z'' = v2, v1 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0 bfs#4(z, z', z'', z6, z7, z8, z9) -{ 0 }-> bfs(z3, 1 + z2 + (1 + z1 + z0), z4) :|: z5 >= 0, z = 1, z0 >= 0, z6 = z2, z4 >= 0, z' = z0, z2 >= 0, z3 >= 0, z'' = z1, z1 >= 0, z7 = z3, z8 = z4, z9 = z5 bfs#4(z, z', z'', z6, z7, z8, z9) -{ 0 }-> 0 :|: z6 = v3, v0 >= 0, v6 >= 0, z'' = v2, v1 >= 0, v5 >= 0, z = v0, z' = v1, v2 >= 0, v3 >= 0, v4 >= 0, z7 = v4, z8 = v5, z9 = v6 bfs#4(z, z', z'', z6, z7, z8, z9) -{ 0 }-> 1 + z5 + z1 + z2 :|: z5 >= 0, z0 >= 0, z6 = z2, z4 >= 0, z' = z0, z2 >= 0, z3 >= 0, z'' = z1, z = 2, z1 >= 0, z7 = z3, z8 = z4, z9 = z5 dobfs(z, z') -{ 0 }-> bfs(1 + z0 + 2, 2, z1) :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 dobfs(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 reverse(z) -{ 0 }-> appendreverse(z0, 2) :|: z = z0, z0 >= 0 reverse(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (57) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) We considered the (Usable) Rules:none And the Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) The order we found is given by the following interpretation: Polynomial interpretation : POL(#0) = [1] POL(#EQ(x_1, x_2)) = 0 POL(#EQUAL(x_1, x_2)) = 0 POL(#and(x_1, x_2)) = [1] POL(#eq(x_1, x_2)) = [1] POL(#equal(x_1, x_2)) = x_1 + x_2 POL(#false) = 0 POL(#neg(x_1)) = [1] + x_1 POL(#pos(x_1)) = [1] + x_1 POL(#s(x_1)) = [1] + x_1 POL(#true) = [1] POL(::(x_1, x_2)) = x_1 + x_2 POL(APPENDREVERSE(x_1, x_2)) = 0 POL(APPENDREVERSE#1(x_1, x_2)) = 0 POL(BFS(x_1, x_2, x_3)) = x_3 POL(BFS#1(x_1, x_2, x_3)) = x_3 POL(BFS#2(x_1, x_2)) = x_2 POL(BFS#3(x_1, x_2, x_3, x_4)) = x_4 POL(BFS#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = x_6 POL(BFS2(x_1, x_2)) = [1] + x_2 POL(BFS2#1(x_1, x_2)) = [1] + x_2 POL(DFS(x_1, x_2)) = x_1 + x_2 POL(DFS#1(x_1, x_2)) = x_1 + x_2 POL(DFS#2(x_1, x_2, x_3, x_4)) = x_1 + x_3 + x_4 POL(DFS#3(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 POL(DOBFS(x_1, x_2)) = [1] + x_2 POL(REVERSE(x_1)) = 0 POL(appendreverse(x_1, x_2)) = [1] + x_1 + x_2 POL(appendreverse#1(x_1, x_2)) = [1] + x_1 + x_2 POL(bfs(x_1, x_2, x_3)) = [1] + x_3 POL(bfs#1(x_1, x_2, x_3)) = [1] + x_2 + x_3 POL(bfs#2(x_1, x_2)) = [1] + x_2 POL(bfs#3(x_1, x_2, x_3, x_4)) = [1] + x_2 + x_3 + x_4 POL(bfs#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = [1] + x_2 + x_3 + x_4 + x_5 + x_6 + x_7 POL(c(x_1)) = x_1 POL(c13(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c32(x_1)) = x_1 POL(c33(x_1)) = x_1 POL(c34(x_1)) = x_1 POL(c35(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37(x_1)) = x_1 POL(c39(x_1)) = x_1 POL(c40(x_1)) = x_1 POL(c41(x_1)) = x_1 POL(c42(x_1, x_2)) = x_1 + x_2 POL(c44(x_1)) = x_1 POL(c45(x_1, x_2)) = x_1 + x_2 POL(c46(x_1)) = x_1 POL(c49(x_1)) = x_1 POL(c50(x_1)) = x_1 POL(c51(x_1)) = x_1 POL(c53(x_1)) = x_1 POL(c54(x_1, x_2)) = x_1 + x_2 POL(c55(x_1)) = x_1 POL(c57(x_1)) = x_1 POL(c59(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(dobfs(x_1, x_2)) = [1] + x_1 + x_2 POL(leaf) = [1] POL(nil) = 0 POL(node(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(reverse(x_1)) = [1] ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (59) CdtKnowledgeProof (BOTH BOUNDS(ID, ID)) The following tuples could be moved from S to K by knowledge propagation: DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (61) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) We considered the (Usable) Rules: reverse(z0) -> appendreverse(z0, nil) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) appendreverse#1(nil, z0) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) appendreverse(z0, z1) -> appendreverse#1(z0, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#2(nil, z0) -> leaf bfs#1(nil, z0, z1) -> bfs#2(z0, z1) And the Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) The order we found is given by the following interpretation: Polynomial interpretation : POL(#0) = [1] POL(#EQ(x_1, x_2)) = 0 POL(#EQUAL(x_1, x_2)) = 0 POL(#and(x_1, x_2)) = [1] POL(#eq(x_1, x_2)) = [1] POL(#equal(x_1, x_2)) = x_1 + x_2 POL(#false) = 0 POL(#neg(x_1)) = [1] + x_1 POL(#pos(x_1)) = [1] + x_1 POL(#s(x_1)) = [1] + x_1 POL(#true) = [1] POL(::(x_1, x_2)) = x_1 + x_2 POL(APPENDREVERSE(x_1, x_2)) = 0 POL(APPENDREVERSE#1(x_1, x_2)) = 0 POL(BFS(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(BFS#1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(BFS#2(x_1, x_2)) = x_1 + x_2 POL(BFS#3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(BFS#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = x_2 + x_3 + x_4 + x_5 + x_6 + x_7 POL(BFS2(x_1, x_2)) = [1] + x_1 + x_2 POL(BFS2#1(x_1, x_2)) = x_1 + x_2 POL(DFS(x_1, x_2)) = x_2 POL(DFS#1(x_1, x_2)) = x_2 POL(DFS#2(x_1, x_2, x_3, x_4)) = x_4 POL(DFS#3(x_1, x_2, x_3, x_4, x_5, x_6)) = x_6 POL(DOBFS(x_1, x_2)) = x_1 + x_2 POL(REVERSE(x_1)) = 0 POL(appendreverse(x_1, x_2)) = x_1 + x_2 POL(appendreverse#1(x_1, x_2)) = x_1 + x_2 POL(bfs(x_1, x_2, x_3)) = [1] + x_1 + x_2 POL(bfs#1(x_1, x_2, x_3)) = [1] + x_1 + x_2 POL(bfs#2(x_1, x_2)) = [1] + x_1 POL(bfs#3(x_1, x_2, x_3, x_4)) = [1] + x_1 + x_2 + x_3 POL(bfs#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = [1] + x_2 + x_3 + x_4 + x_5 + x_7 POL(c(x_1)) = x_1 POL(c13(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c32(x_1)) = x_1 POL(c33(x_1)) = x_1 POL(c34(x_1)) = x_1 POL(c35(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37(x_1)) = x_1 POL(c39(x_1)) = x_1 POL(c40(x_1)) = x_1 POL(c41(x_1)) = x_1 POL(c42(x_1, x_2)) = x_1 + x_2 POL(c44(x_1)) = x_1 POL(c45(x_1, x_2)) = x_1 + x_2 POL(c46(x_1)) = x_1 POL(c49(x_1)) = x_1 POL(c50(x_1)) = x_1 POL(c51(x_1)) = x_1 POL(c53(x_1)) = x_1 POL(c54(x_1, x_2)) = x_1 + x_2 POL(c55(x_1)) = x_1 POL(c57(x_1)) = x_1 POL(c59(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(dobfs(x_1, x_2)) = [1] + x_1 POL(leaf) = [1] POL(nil) = 0 POL(node(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(reverse(x_1)) = x_1 ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (63) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) We considered the (Usable) Rules: reverse(z0) -> appendreverse(z0, nil) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) appendreverse#1(nil, z0) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) appendreverse(z0, z1) -> appendreverse#1(z0, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#2(nil, z0) -> leaf bfs#1(nil, z0, z1) -> bfs#2(z0, z1) And the Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) The order we found is given by the following interpretation: Polynomial interpretation : POL(#0) = [1] POL(#EQ(x_1, x_2)) = 0 POL(#EQUAL(x_1, x_2)) = 0 POL(#and(x_1, x_2)) = [1] POL(#eq(x_1, x_2)) = [1] POL(#equal(x_1, x_2)) = x_1 + x_2 POL(#false) = 0 POL(#neg(x_1)) = [1] + x_1 POL(#pos(x_1)) = [1] + x_1 POL(#s(x_1)) = [1] + x_1 POL(#true) = [1] POL(::(x_1, x_2)) = x_1 + x_2 POL(APPENDREVERSE(x_1, x_2)) = 0 POL(APPENDREVERSE#1(x_1, x_2)) = 0 POL(BFS(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(BFS#1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(BFS#2(x_1, x_2)) = x_1 + x_2 POL(BFS#3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(BFS#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = [1] + x_2 + x_3 + x_4 + x_5 + x_6 + x_7 POL(BFS2(x_1, x_2)) = [1] + x_1 + x_2 POL(BFS2#1(x_1, x_2)) = [1] + x_1 + x_2 POL(DFS(x_1, x_2)) = x_2 POL(DFS#1(x_1, x_2)) = x_2 POL(DFS#2(x_1, x_2, x_3, x_4)) = x_4 POL(DFS#3(x_1, x_2, x_3, x_4, x_5, x_6)) = x_6 POL(DOBFS(x_1, x_2)) = [1] + x_1 + x_2 POL(REVERSE(x_1)) = 0 POL(appendreverse(x_1, x_2)) = x_1 + x_2 POL(appendreverse#1(x_1, x_2)) = x_1 + x_2 POL(bfs(x_1, x_2, x_3)) = x_1 + x_2 POL(bfs#1(x_1, x_2, x_3)) = x_1 + x_2 POL(bfs#2(x_1, x_2)) = x_1 POL(bfs#3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 POL(bfs#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = [1] + x_2 + x_3 + x_4 + x_5 + x_7 POL(c(x_1)) = x_1 POL(c13(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c32(x_1)) = x_1 POL(c33(x_1)) = x_1 POL(c34(x_1)) = x_1 POL(c35(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37(x_1)) = x_1 POL(c39(x_1)) = x_1 POL(c40(x_1)) = x_1 POL(c41(x_1)) = x_1 POL(c42(x_1, x_2)) = x_1 + x_2 POL(c44(x_1)) = x_1 POL(c45(x_1, x_2)) = x_1 + x_2 POL(c46(x_1)) = x_1 POL(c49(x_1)) = x_1 POL(c50(x_1)) = x_1 POL(c51(x_1)) = x_1 POL(c53(x_1)) = x_1 POL(c54(x_1, x_2)) = x_1 + x_2 POL(c55(x_1)) = x_1 POL(c57(x_1)) = x_1 POL(c59(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(dobfs(x_1, x_2)) = x_1 POL(leaf) = 0 POL(nil) = 0 POL(node(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(reverse(x_1)) = x_1 ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (65) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) We considered the (Usable) Rules: reverse(z0) -> appendreverse(z0, nil) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) appendreverse#1(nil, z0) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) appendreverse(z0, z1) -> appendreverse#1(z0, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#2(nil, z0) -> leaf bfs#1(nil, z0, z1) -> bfs#2(z0, z1) And the Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) The order we found is given by the following interpretation: Polynomial interpretation : POL(#0) = [1] POL(#EQ(x_1, x_2)) = 0 POL(#EQUAL(x_1, x_2)) = 0 POL(#and(x_1, x_2)) = [1] POL(#eq(x_1, x_2)) = [1] POL(#equal(x_1, x_2)) = x_1 + x_2 POL(#false) = 0 POL(#neg(x_1)) = [1] + x_1 POL(#pos(x_1)) = [1] + x_1 POL(#s(x_1)) = [1] + x_1 POL(#true) = [1] POL(::(x_1, x_2)) = x_1 + x_2 POL(APPENDREVERSE(x_1, x_2)) = 0 POL(APPENDREVERSE#1(x_1, x_2)) = 0 POL(BFS(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(BFS#1(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(BFS#2(x_1, x_2)) = x_1 + x_2 POL(BFS#3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 POL(BFS#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = x_2 + x_3 + x_4 + x_5 + x_6 POL(BFS2(x_1, x_2)) = [1] + x_1 + x_2 POL(BFS2#1(x_1, x_2)) = [1] + x_1 + x_2 POL(DFS(x_1, x_2)) = x_2 POL(DFS#1(x_1, x_2)) = x_2 POL(DFS#2(x_1, x_2, x_3, x_4)) = x_4 POL(DFS#3(x_1, x_2, x_3, x_4, x_5, x_6)) = x_6 POL(DOBFS(x_1, x_2)) = [1] + x_1 + x_2 POL(REVERSE(x_1)) = 0 POL(appendreverse(x_1, x_2)) = x_1 + x_2 POL(appendreverse#1(x_1, x_2)) = x_1 + x_2 POL(bfs(x_1, x_2, x_3)) = x_1 + x_2 POL(bfs#1(x_1, x_2, x_3)) = x_1 + x_2 POL(bfs#2(x_1, x_2)) = x_1 POL(bfs#3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 POL(bfs#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = [1] + x_2 + x_3 + x_4 + x_5 POL(c(x_1)) = x_1 POL(c13(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c32(x_1)) = x_1 POL(c33(x_1)) = x_1 POL(c34(x_1)) = x_1 POL(c35(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37(x_1)) = x_1 POL(c39(x_1)) = x_1 POL(c40(x_1)) = x_1 POL(c41(x_1)) = x_1 POL(c42(x_1, x_2)) = x_1 + x_2 POL(c44(x_1)) = x_1 POL(c45(x_1, x_2)) = x_1 + x_2 POL(c46(x_1)) = x_1 POL(c49(x_1)) = x_1 POL(c50(x_1)) = x_1 POL(c51(x_1)) = x_1 POL(c53(x_1)) = x_1 POL(c54(x_1, x_2)) = x_1 + x_2 POL(c55(x_1)) = x_1 POL(c57(x_1)) = x_1 POL(c59(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(dobfs(x_1, x_2)) = x_1 POL(leaf) = 0 POL(nil) = 0 POL(node(x_1, x_2, x_3)) = [1] + x_2 + x_3 POL(reverse(x_1)) = x_1 ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (67) CdtKnowledgeProof (BOTH BOUNDS(ID, ID)) The following tuples could be moved from S to K by knowledge propagation: #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (69) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) We considered the (Usable) Rules: reverse(z0) -> appendreverse(z0, nil) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) appendreverse#1(nil, z0) -> z0 dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) appendreverse(z0, z1) -> appendreverse#1(z0, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#2(nil, z0) -> leaf bfs#1(nil, z0, z1) -> bfs#2(z0, z1) And the Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) The order we found is given by the following interpretation: Polynomial interpretation : POL(#0) = [3] POL(#EQ(x_1, x_2)) = 0 POL(#EQUAL(x_1, x_2)) = 0 POL(#and(x_1, x_2)) = [3] POL(#eq(x_1, x_2)) = [3] POL(#equal(x_1, x_2)) = 0 POL(#false) = 0 POL(#neg(x_1)) = [3] + x_1 POL(#pos(x_1)) = [3] + x_1 POL(#s(x_1)) = [3] + x_1 POL(#true) = 0 POL(::(x_1, x_2)) = x_1 + x_2 POL(APPENDREVERSE(x_1, x_2)) = 0 POL(APPENDREVERSE#1(x_1, x_2)) = 0 POL(BFS(x_1, x_2, x_3)) = [1] + x_1 + x_2 POL(BFS#1(x_1, x_2, x_3)) = [1] + x_1 + x_2 POL(BFS#2(x_1, x_2)) = [1] + x_1 POL(BFS#3(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 POL(BFS#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = [1] + x_2 + x_3 + x_4 + x_5 POL(BFS2(x_1, x_2)) = [3] + [2]x_1 + [3]x_2 POL(BFS2#1(x_1, x_2)) = [1] + [2]x_1 + x_2 POL(DFS(x_1, x_2)) = 0 POL(DFS#1(x_1, x_2)) = 0 POL(DFS#2(x_1, x_2, x_3, x_4)) = 0 POL(DFS#3(x_1, x_2, x_3, x_4, x_5, x_6)) = 0 POL(DOBFS(x_1, x_2)) = [1] + [2]x_1 + x_2 POL(REVERSE(x_1)) = 0 POL(appendreverse(x_1, x_2)) = x_1 + x_2 POL(appendreverse#1(x_1, x_2)) = x_1 + x_2 POL(bfs(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(bfs#1(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(bfs#2(x_1, x_2)) = [1] + x_1 + x_2 POL(bfs#3(x_1, x_2, x_3, x_4)) = [1] + x_1 + x_2 + x_3 + x_4 POL(bfs#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = [1] + x_2 + x_3 + x_4 + x_5 + x_6 + x_7 POL(c(x_1)) = x_1 POL(c13(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c32(x_1)) = x_1 POL(c33(x_1)) = x_1 POL(c34(x_1)) = x_1 POL(c35(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37(x_1)) = x_1 POL(c39(x_1)) = x_1 POL(c40(x_1)) = x_1 POL(c41(x_1)) = x_1 POL(c42(x_1, x_2)) = x_1 + x_2 POL(c44(x_1)) = x_1 POL(c45(x_1, x_2)) = x_1 + x_2 POL(c46(x_1)) = x_1 POL(c49(x_1)) = x_1 POL(c50(x_1)) = x_1 POL(c51(x_1)) = x_1 POL(c53(x_1)) = x_1 POL(c54(x_1, x_2)) = x_1 + x_2 POL(c55(x_1)) = x_1 POL(c57(x_1)) = x_1 POL(c59(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(dobfs(x_1, x_2)) = [1] + x_1 + x_2 POL(leaf) = [1] POL(nil) = 0 POL(node(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(reverse(x_1)) = x_1 ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#2_2, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c42_2, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1 ---------------------------------------- (71) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#2(::(z0, z1), z2) -> c42(BFS(reverse(::(z0, z1)), nil, z2), REVERSE(::(z0, z1))) by BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c45_2, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1, c42_2 ---------------------------------------- (73) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) by BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c54_2, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1, c42_2, c45_2 ---------------------------------------- (75) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) by DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1, c42_2, c45_2, c54_2 ---------------------------------------- (77) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) by BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: reverse(z0) -> appendreverse(z0, nil) appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #equal(z0, z1) -> #eq(z0, z1) #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) Defined Rule Symbols: reverse_1, appendreverse_2, appendreverse#1_2, #equal_2, #eq_2, #and_2, dobfs_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, bfs#2_2 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_2, c45_2, c54_2, c_1 ---------------------------------------- (79) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_2, c45_2, c54_2, c_1 ---------------------------------------- (81) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) by BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c45_2, c54_2, c_1, c42_2, c42_1 ---------------------------------------- (83) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) We considered the (Usable) Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(nil, z0) -> z0 appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) And the Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) The order we found is given by the following interpretation: Polynomial interpretation : POL(#0) = [1] POL(#EQ(x_1, x_2)) = 0 POL(#EQUAL(x_1, x_2)) = 0 POL(#and(x_1, x_2)) = [1] + x_1 POL(#eq(x_1, x_2)) = 0 POL(#equal(x_1, x_2)) = [1] + x_1 + x_2 POL(#false) = 0 POL(#neg(x_1)) = [1] + x_1 POL(#pos(x_1)) = [1] + x_1 POL(#s(x_1)) = [1] + x_1 POL(#true) = [1] POL(::(x_1, x_2)) = x_2 POL(APPENDREVERSE(x_1, x_2)) = 0 POL(APPENDREVERSE#1(x_1, x_2)) = 0 POL(BFS(x_1, x_2, x_3)) = x_1 + x_3 POL(BFS#1(x_1, x_2, x_3)) = x_1 + x_3 POL(BFS#2(x_1, x_2)) = [1] + x_2 POL(BFS#3(x_1, x_2, x_3, x_4)) = x_3 + x_4 POL(BFS#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = x_5 + x_6 POL(BFS2(x_1, x_2)) = [1] + x_2 POL(BFS2#1(x_1, x_2)) = [1] + x_2 POL(DFS(x_1, x_2)) = x_2 POL(DFS#1(x_1, x_2)) = x_2 POL(DFS#2(x_1, x_2, x_3, x_4)) = x_4 POL(DFS#3(x_1, x_2, x_3, x_4, x_5, x_6)) = x_6 POL(DOBFS(x_1, x_2)) = [1] + x_2 POL(REVERSE(x_1)) = 0 POL(appendreverse(x_1, x_2)) = x_2 POL(appendreverse#1(x_1, x_2)) = x_2 POL(bfs(x_1, x_2, x_3)) = [1] + x_3 POL(bfs#1(x_1, x_2, x_3)) = [1] + x_1 + x_2 + x_3 POL(bfs#2(x_1, x_2)) = [1] + x_2 POL(bfs#3(x_1, x_2, x_3, x_4)) = [1] + x_2 + x_3 + x_4 POL(bfs#4(x_1, x_2, x_3, x_4, x_5, x_6, x_7)) = [1] + x_2 + x_3 + x_4 + x_5 + x_6 + x_7 POL(c(x_1)) = x_1 POL(c13(x_1)) = x_1 POL(c15(x_1)) = x_1 POL(c16(x_1)) = x_1 POL(c17(x_1)) = x_1 POL(c32(x_1)) = x_1 POL(c33(x_1)) = x_1 POL(c34(x_1)) = x_1 POL(c35(x_1)) = x_1 POL(c36(x_1)) = x_1 POL(c37(x_1)) = x_1 POL(c39(x_1)) = x_1 POL(c40(x_1)) = x_1 POL(c41(x_1)) = x_1 POL(c42(x_1)) = x_1 POL(c42(x_1, x_2)) = x_1 + x_2 POL(c44(x_1)) = x_1 POL(c45(x_1, x_2)) = x_1 + x_2 POL(c46(x_1)) = x_1 POL(c49(x_1)) = x_1 POL(c50(x_1)) = x_1 POL(c51(x_1)) = x_1 POL(c53(x_1)) = x_1 POL(c54(x_1, x_2)) = x_1 + x_2 POL(c55(x_1)) = x_1 POL(c57(x_1)) = x_1 POL(c59(x_1)) = x_1 POL(c9(x_1)) = x_1 POL(leaf) = 0 POL(nil) = [1] POL(node(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(reverse(x_1)) = [1] + x_1 ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c45_2, c54_2, c_1, c42_2, c42_1 ---------------------------------------- (85) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#3(node(z1, x1, x2), x3, x4, z0) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, z0, z1), #EQUAL(z0, z1)) by BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(BFS#4(#true, x3, x1, x2, x4, #0, #0), #EQUAL(#0, #0)) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(BFS#4(#true, x3, x1, x2, x4, leaf, leaf), #EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(BFS#4(#true, x3, x1, x2, x4, nil, nil), #EQUAL(nil, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(BFS#4(#true, x3, x1, x2, x4, #0, #0), #EQUAL(#0, #0)) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(BFS#4(#true, x3, x1, x2, x4, leaf, leaf), #EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(BFS#4(#true, x3, x1, x2, x4, nil, nil), #EQUAL(nil, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c54_2, c_1, c42_2, c42_1, c45_2, c45_1 ---------------------------------------- (87) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c54_2, c_1, c42_2, c42_1, c45_2, c45_1 ---------------------------------------- (89) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace DFS#2(node(z0, x1, x2), x3, x4, z1) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, z1), #EQUAL(z0, z1)) by DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(DFS#3(#true, x3, x1, x2, x4, #0), #EQUAL(#0, #0)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(DFS#3(#true, x3, x1, x2, x4, leaf), #EQUAL(leaf, leaf)) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(DFS#3(#true, x3, x1, x2, x4, nil), #EQUAL(nil, nil)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(DFS#3(#true, x3, x1, x2, x4, #0), #EQUAL(#0, #0)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(DFS#3(#true, x3, x1, x2, x4, leaf), #EQUAL(leaf, leaf)) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(DFS#3(#true, x3, x1, x2, x4, nil), #EQUAL(nil, nil)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1, c42_2, c42_1, c45_2, c45_1, c54_2, c54_1 ---------------------------------------- (91) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS2_2, BFS#2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c_1, c42_2, c42_1, c45_2, c45_1, c54_2, c54_1 ---------------------------------------- (93) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS2(z0, z1) -> c(BFS2#1(bfs(::(z0, nil), nil, z1), z1)) by BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_2, c42_1, c45_2, c45_1, c54_2, c54_1, c_1 ---------------------------------------- (95) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#2(::(x0, x1), x2) -> c42(BFS(appendreverse#1(::(x0, x1), nil), nil, x2), REVERSE(::(x0, x1))) by BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (97) CdtKnowledgeProof (BOTH BOUNDS(ID, ID)) The following tuples could be moved from S to K by knowledge propagation: BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (99) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#3(node(#neg(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(z0), #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) by BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#true, x3, x1, x2, x4, #neg(#0), #neg(#0)), #EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#true, x3, x1, x2, x4, #neg(leaf), #neg(leaf)), #EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#true, x3, x1, x2, x4, #neg(nil), #neg(nil)), #EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#true, x3, x1, x2, x4, #neg(#0), #neg(#0)), #EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#true, x3, x1, x2, x4, #neg(leaf), #neg(leaf)), #EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#true, x3, x1, x2, x4, #neg(nil), #neg(nil)), #EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (103) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#3(node(#pos(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(z0), #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) by BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#true, x3, x1, x2, x4, #pos(#0), #pos(#0)), #EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#true, x3, x1, x2, x4, #pos(leaf), #pos(leaf)), #EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#true, x3, x1, x2, x4, #pos(nil), #pos(nil)), #EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#true, x3, x1, x2, x4, #pos(#0), #pos(#0)), #EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#true, x3, x1, x2, x4, #pos(leaf), #pos(leaf)), #EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#true, x3, x1, x2, x4, #pos(nil), #pos(nil)), #EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (105) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (107) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#3(node(#s(z1), x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(z0), #s(z1)), #EQUAL(#s(z0), #s(z1))) by BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#true, x3, x1, x2, x4, #s(#0), #s(#0)), #EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#true, x3, x1, x2, x4, #s(leaf), #s(leaf)), #EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#true, x3, x1, x2, x4, #s(nil), #s(nil)), #EQUAL(#s(nil), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#true, x3, x1, x2, x4, #s(#0), #s(#0)), #EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#true, x3, x1, x2, x4, #s(leaf), #s(leaf)), #EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#true, x3, x1, x2, x4, #s(nil), #s(nil)), #EQUAL(#s(nil), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (109) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (111) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#3(node(::(z2, z3), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z0, z1), ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) by BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (113) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS#3(node(node(z3, z4, z5), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z0, z1, z2), node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) by BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (115) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace DFS#2(node(#neg(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(z1)), #EQUAL(#neg(z0), #neg(z1))) by DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#true, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#true, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#true, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#true, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#true, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#true, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (117) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (119) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace DFS#2(node(#pos(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(z1)), #EQUAL(#pos(z0), #pos(z1))) by DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#true, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#true, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#true, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#true, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#true, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#true, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (121) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(#EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(#EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(#EQUAL(#pos(nil), #pos(nil))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (123) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace DFS#2(node(#s(z0), x1, x2), x3, x4, #s(z1)) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(z1)), #EQUAL(#s(z0), #s(z1))) by DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#true, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#0), #s(#0))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#true, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(leaf), #s(leaf))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(leaf), #s(nil))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(nil), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#true, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(nil), #s(nil))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) DFS#2(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c54(#EQUAL(#s(x0), #s(x5))) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(#EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(#EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(#EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#true, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#0), #s(#0))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#true, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(leaf), #s(leaf))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(leaf), #s(nil))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(nil), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#true, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(nil), #s(nil))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) DFS#2(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c54(#EQUAL(#s(x0), #s(x5))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (125) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(#EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(#EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(#EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(leaf), #s(nil))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(nil), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) DFS#2(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c54(#EQUAL(#s(x0), #s(x5))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c54(#EQUAL(#s(#0), #s(#0))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c54(#EQUAL(#s(leaf), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c54(#EQUAL(#s(nil), #s(nil))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (127) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace DFS#2(node(::(z0, z1), x1, x2), x3, x4, ::(z2, z3)) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, ::(z2, z3)), #EQUAL(::(z0, z1), ::(z2, z3))) by DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #0), ::(x6, #0))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z0))), #EQUAL(::(x0, #0), ::(x6, #neg(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z0))), #EQUAL(::(x0, #0), ::(x6, #pos(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #s(z0))), #EQUAL(::(x0, #0), ::(x6, #s(z0)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #neg(z0)), ::(x6, #0))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #pos(z0)), ::(x6, #0))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #s(z0)), ::(x6, #0))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z1))), #EQUAL(::(x0, #s(z0)), ::(x6, #s(z1)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z2, z3))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, ::(z2, z3)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, leaf))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, nil))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z2, z3, z4))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, node(z2, z3, z4)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, leaf), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, leaf), ::(x6, leaf))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, leaf), ::(x6, nil))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, leaf), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, nil), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, nil), ::(x6, leaf))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, nil), ::(x6, nil))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, nil), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z3, z4))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, ::(z3, z4)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, leaf))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, nil))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z3, z4, z5))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, node(z3, z4, z5)))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#0, x1), ::(#0, x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z0), x7)), #EQUAL(::(#0, x1), ::(#neg(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z0), x7)), #EQUAL(::(#0, x1), ::(#pos(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z0), x7)), #EQUAL(::(#0, x1), ::(#s(z0), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#neg(z0), x1), ::(#0, x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#pos(z0), x1), ::(#0, x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#s(z0), x1), ::(#0, x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#s(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z1), x7)), #EQUAL(::(#s(z0), x1), ::(#s(z1), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(::(z2, z3), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x1, x7)), x4, x2, x3, x5, ::(::(z2, z3), x7)), #EQUAL(::(::(z0, z1), x1), ::(::(z2, z3), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(::(z0, z1), x1), ::(leaf, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(::(z0, z1), x1), ::(nil, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(node(z2, z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z2, z3, z4), x7)), #EQUAL(::(::(z0, z1), x1), ::(node(z2, z3, z4), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(leaf, x1), ::(::(z0, z1), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(leaf, x1), ::(leaf, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(leaf, x1), ::(nil, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(leaf, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(nil, x1), ::(::(z0, z1), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(nil, x1), ::(leaf, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(nil, x1), ::(nil, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(nil, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(::(z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z3, z4), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(::(z3, z4), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(leaf, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(nil, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(node(z3, z4, z5), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x1, x7)), x4, x2, x3, x5, ::(node(z3, z4, z5), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(node(z3, z4, z5), x7))) DFS#2(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c54(#EQUAL(::(x0, x1), ::(x6, x7))) ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(#EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(#EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(#EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(leaf), #s(nil))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(nil), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) DFS#2(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c54(#EQUAL(#s(x0), #s(x5))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c54(#EQUAL(#s(#0), #s(#0))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c54(#EQUAL(#s(leaf), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c54(#EQUAL(#s(nil), #s(nil))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #0), ::(x6, #0))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z0))), #EQUAL(::(x0, #0), ::(x6, #neg(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z0))), #EQUAL(::(x0, #0), ::(x6, #pos(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #s(z0))), #EQUAL(::(x0, #0), ::(x6, #s(z0)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #neg(z0)), ::(x6, #0))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #pos(z0)), ::(x6, #0))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #s(z0)), ::(x6, #0))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z1))), #EQUAL(::(x0, #s(z0)), ::(x6, #s(z1)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z2, z3))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, ::(z2, z3)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, leaf))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, nil))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z2, z3, z4))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, node(z2, z3, z4)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, leaf), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, leaf), ::(x6, leaf))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, leaf), ::(x6, nil))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, leaf), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, nil), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, nil), ::(x6, leaf))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, nil), ::(x6, nil))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, nil), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z3, z4))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, ::(z3, z4)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, leaf))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, nil))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z3, z4, z5))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, node(z3, z4, z5)))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#0, x1), ::(#0, x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z0), x7)), #EQUAL(::(#0, x1), ::(#neg(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z0), x7)), #EQUAL(::(#0, x1), ::(#pos(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z0), x7)), #EQUAL(::(#0, x1), ::(#s(z0), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#neg(z0), x1), ::(#0, x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#pos(z0), x1), ::(#0, x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#s(z0), x1), ::(#0, x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#s(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z1), x7)), #EQUAL(::(#s(z0), x1), ::(#s(z1), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(::(z2, z3), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x1, x7)), x4, x2, x3, x5, ::(::(z2, z3), x7)), #EQUAL(::(::(z0, z1), x1), ::(::(z2, z3), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(::(z0, z1), x1), ::(leaf, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(::(z0, z1), x1), ::(nil, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(node(z2, z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z2, z3, z4), x7)), #EQUAL(::(::(z0, z1), x1), ::(node(z2, z3, z4), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(leaf, x1), ::(::(z0, z1), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(leaf, x1), ::(leaf, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(leaf, x1), ::(nil, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(leaf, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(nil, x1), ::(::(z0, z1), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(nil, x1), ::(leaf, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(nil, x1), ::(nil, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(nil, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(::(z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z3, z4), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(::(z3, z4), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(leaf, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(nil, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(node(z3, z4, z5), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x1, x7)), x4, x2, x3, x5, ::(node(z3, z4, z5), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(node(z3, z4, z5), x7))) DFS#2(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c54(#EQUAL(::(x0, x1), ::(x6, x7))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (129) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, node(z3, z4, z5)) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, node(z3, z4, z5)), #EQUAL(node(z0, z1, z2), node(z3, z4, z5))) by DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #0), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #neg(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #pos(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #s(z0)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z1))), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #s(z1)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z2, z3))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, ::(z2, z3)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z2, z3, z4))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, node(z2, z3, z4)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, leaf), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, leaf), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, leaf), node(x7, x8, nil))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, leaf), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, nil), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, nil), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, nil), node(x7, x8, nil))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, nil), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z3, z4))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, ::(z3, z4)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z3, z4, z5))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, node(z3, z4, z5)))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #0, x2), node(x7, #0, x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #neg(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #pos(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #s(z0), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #s(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z1), x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #s(z1), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, ::(z2, z3), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z2, z3), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, ::(z2, z3), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, nil, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, node(z2, z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z2, z3, z4), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, node(z2, z3, z4), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, leaf, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, leaf, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, leaf, x2), node(x7, nil, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, leaf, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, nil, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, nil, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, nil, x2), node(x7, nil, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, nil, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, ::(z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z3, z4), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, ::(z3, z4), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, nil, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, node(z3, z4, z5), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z3, z4, z5), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, node(z3, z4, z5), x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#0, x1, x2), node(#0, x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#neg(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#pos(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#s(z0), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#s(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z1), x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#s(z1), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(::(z2, z3), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z2, z3), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(::(z2, z3), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(nil, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(node(z2, z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z2, z3, z4), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(node(z2, z3, z4), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(leaf, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(leaf, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(leaf, x1, x2), node(nil, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(leaf, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(nil, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(nil, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(nil, x1, x2), node(nil, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(nil, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(::(z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z3, z4), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(::(z3, z4), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(nil, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(node(z3, z4, z5), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z3, z4, z5), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(node(z3, z4, z5), x8, x9))) DFS#2(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c54(#EQUAL(node(x0, x1, x2), node(x7, x8, x9))) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(#EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(#EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(#EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(leaf), #s(nil))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(nil), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) DFS#2(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c54(#EQUAL(#s(x0), #s(x5))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c54(#EQUAL(#s(#0), #s(#0))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c54(#EQUAL(#s(leaf), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c54(#EQUAL(#s(nil), #s(nil))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #0), ::(x6, #0))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z0))), #EQUAL(::(x0, #0), ::(x6, #neg(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z0))), #EQUAL(::(x0, #0), ::(x6, #pos(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #s(z0))), #EQUAL(::(x0, #0), ::(x6, #s(z0)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #neg(z0)), ::(x6, #0))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #pos(z0)), ::(x6, #0))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #s(z0)), ::(x6, #0))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z1))), #EQUAL(::(x0, #s(z0)), ::(x6, #s(z1)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z2, z3))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, ::(z2, z3)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, leaf))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, nil))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z2, z3, z4))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, node(z2, z3, z4)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, leaf), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, leaf), ::(x6, leaf))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, leaf), ::(x6, nil))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, leaf), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, nil), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, nil), ::(x6, leaf))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, nil), ::(x6, nil))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, nil), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z3, z4))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, ::(z3, z4)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, leaf))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, nil))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z3, z4, z5))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, node(z3, z4, z5)))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#0, x1), ::(#0, x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z0), x7)), #EQUAL(::(#0, x1), ::(#neg(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z0), x7)), #EQUAL(::(#0, x1), ::(#pos(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z0), x7)), #EQUAL(::(#0, x1), ::(#s(z0), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#neg(z0), x1), ::(#0, x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#pos(z0), x1), ::(#0, x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#s(z0), x1), ::(#0, x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#s(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z1), x7)), #EQUAL(::(#s(z0), x1), ::(#s(z1), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(::(z2, z3), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x1, x7)), x4, x2, x3, x5, ::(::(z2, z3), x7)), #EQUAL(::(::(z0, z1), x1), ::(::(z2, z3), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(::(z0, z1), x1), ::(leaf, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(::(z0, z1), x1), ::(nil, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(node(z2, z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z2, z3, z4), x7)), #EQUAL(::(::(z0, z1), x1), ::(node(z2, z3, z4), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(leaf, x1), ::(::(z0, z1), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(leaf, x1), ::(leaf, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(leaf, x1), ::(nil, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(leaf, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(nil, x1), ::(::(z0, z1), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(nil, x1), ::(leaf, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(nil, x1), ::(nil, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(nil, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(::(z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z3, z4), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(::(z3, z4), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(leaf, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(nil, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(node(z3, z4, z5), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x1, x7)), x4, x2, x3, x5, ::(node(z3, z4, z5), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(node(z3, z4, z5), x7))) DFS#2(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c54(#EQUAL(::(x0, x1), ::(x6, x7))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #0), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #neg(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #pos(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #s(z0)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z1))), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #s(z1)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z2, z3))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, ::(z2, z3)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z2, z3, z4))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, node(z2, z3, z4)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, leaf), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, leaf), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, leaf), node(x7, x8, nil))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, leaf), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, nil), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, nil), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, nil), node(x7, x8, nil))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, nil), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z3, z4))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, ::(z3, z4)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z3, z4, z5))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, node(z3, z4, z5)))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #0, x2), node(x7, #0, x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #neg(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #pos(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #s(z0), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #s(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z1), x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #s(z1), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, ::(z2, z3), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z2, z3), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, ::(z2, z3), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, nil, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, node(z2, z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z2, z3, z4), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, node(z2, z3, z4), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, leaf, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, leaf, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, leaf, x2), node(x7, nil, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, leaf, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, nil, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, nil, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, nil, x2), node(x7, nil, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, nil, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, ::(z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z3, z4), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, ::(z3, z4), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, nil, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, node(z3, z4, z5), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z3, z4, z5), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, node(z3, z4, z5), x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#0, x1, x2), node(#0, x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#neg(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#pos(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#s(z0), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#s(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z1), x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#s(z1), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(::(z2, z3), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z2, z3), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(::(z2, z3), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(nil, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(node(z2, z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z2, z3, z4), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(node(z2, z3, z4), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(leaf, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(leaf, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(leaf, x1, x2), node(nil, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(leaf, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(nil, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(nil, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(nil, x1, x2), node(nil, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(nil, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(::(z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z3, z4), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(::(z3, z4), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(nil, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(node(z3, z4, z5), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z3, z4, z5), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(node(z3, z4, z5), x8, x9))) DFS#2(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c54(#EQUAL(node(x0, x1, x2), node(x7, x8, x9))) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c_1, c42_2 ---------------------------------------- (131) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace BFS2(x0, z2) -> c(BFS2#1(bfs#1(::(x0, nil), nil, z2), z2)) by BFS2(z0, z3) -> c(BFS2#1(bfs#3(z0, nil, nil, z3), z3)) ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(#EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(#EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(#EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(leaf), #s(nil))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(nil), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) DFS#2(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c54(#EQUAL(#s(x0), #s(x5))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c54(#EQUAL(#s(#0), #s(#0))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c54(#EQUAL(#s(leaf), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c54(#EQUAL(#s(nil), #s(nil))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #0), ::(x6, #0))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z0))), #EQUAL(::(x0, #0), ::(x6, #neg(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z0))), #EQUAL(::(x0, #0), ::(x6, #pos(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #s(z0))), #EQUAL(::(x0, #0), ::(x6, #s(z0)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #neg(z0)), ::(x6, #0))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #pos(z0)), ::(x6, #0))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #s(z0)), ::(x6, #0))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z1))), #EQUAL(::(x0, #s(z0)), ::(x6, #s(z1)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z2, z3))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, ::(z2, z3)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, leaf))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, nil))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z2, z3, z4))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, node(z2, z3, z4)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, leaf), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, leaf), ::(x6, leaf))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, leaf), ::(x6, nil))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, leaf), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, nil), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, nil), ::(x6, leaf))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, nil), ::(x6, nil))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, nil), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z3, z4))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, ::(z3, z4)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, leaf))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, nil))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z3, z4, z5))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, node(z3, z4, z5)))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#0, x1), ::(#0, x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z0), x7)), #EQUAL(::(#0, x1), ::(#neg(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z0), x7)), #EQUAL(::(#0, x1), ::(#pos(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z0), x7)), #EQUAL(::(#0, x1), ::(#s(z0), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#neg(z0), x1), ::(#0, x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#pos(z0), x1), ::(#0, x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#s(z0), x1), ::(#0, x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#s(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z1), x7)), #EQUAL(::(#s(z0), x1), ::(#s(z1), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(::(z2, z3), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x1, x7)), x4, x2, x3, x5, ::(::(z2, z3), x7)), #EQUAL(::(::(z0, z1), x1), ::(::(z2, z3), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(::(z0, z1), x1), ::(leaf, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(::(z0, z1), x1), ::(nil, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(node(z2, z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z2, z3, z4), x7)), #EQUAL(::(::(z0, z1), x1), ::(node(z2, z3, z4), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(leaf, x1), ::(::(z0, z1), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(leaf, x1), ::(leaf, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(leaf, x1), ::(nil, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(leaf, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(nil, x1), ::(::(z0, z1), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(nil, x1), ::(leaf, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(nil, x1), ::(nil, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(nil, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(::(z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z3, z4), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(::(z3, z4), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(leaf, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(nil, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(node(z3, z4, z5), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x1, x7)), x4, x2, x3, x5, ::(node(z3, z4, z5), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(node(z3, z4, z5), x7))) DFS#2(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c54(#EQUAL(::(x0, x1), ::(x6, x7))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #0), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #neg(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #pos(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #s(z0)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z1))), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #s(z1)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z2, z3))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, ::(z2, z3)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z2, z3, z4))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, node(z2, z3, z4)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, leaf), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, leaf), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, leaf), node(x7, x8, nil))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, leaf), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, nil), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, nil), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, nil), node(x7, x8, nil))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, nil), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z3, z4))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, ::(z3, z4)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z3, z4, z5))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, node(z3, z4, z5)))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #0, x2), node(x7, #0, x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #neg(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #pos(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #s(z0), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #s(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z1), x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #s(z1), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, ::(z2, z3), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z2, z3), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, ::(z2, z3), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, nil, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, node(z2, z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z2, z3, z4), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, node(z2, z3, z4), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, leaf, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, leaf, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, leaf, x2), node(x7, nil, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, leaf, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, nil, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, nil, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, nil, x2), node(x7, nil, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, nil, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, ::(z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z3, z4), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, ::(z3, z4), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, nil, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, node(z3, z4, z5), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z3, z4, z5), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, node(z3, z4, z5), x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#0, x1, x2), node(#0, x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#neg(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#pos(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#s(z0), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#s(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z1), x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#s(z1), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(::(z2, z3), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z2, z3), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(::(z2, z3), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(nil, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(node(z2, z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z2, z3, z4), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(node(z2, z3, z4), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(leaf, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(leaf, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(leaf, x1, x2), node(nil, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(leaf, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(nil, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(nil, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(nil, x1, x2), node(nil, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(nil, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(::(z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z3, z4), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(::(z3, z4), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(nil, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(node(z3, z4, z5), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z3, z4, z5), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(node(z3, z4, z5), x8, x9))) DFS#2(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c54(#EQUAL(node(x0, x1, x2), node(x7, x8, x9))) BFS2(z0, z3) -> c(BFS2#1(bfs#3(z0, nil, nil, z3), z3)) S tuples: APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c36_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c42_2, c_1 ---------------------------------------- (133) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace APPENDREVERSE(z0, z1) -> c36(APPENDREVERSE#1(z0, z1)) by APPENDREVERSE(x1, ::(x0, x2)) -> c36(APPENDREVERSE#1(x1, ::(x0, x2))) APPENDREVERSE(x0, nil) -> c36(APPENDREVERSE#1(x0, nil)) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(#EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(#EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(#EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(leaf), #s(nil))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(nil), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) DFS#2(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c54(#EQUAL(#s(x0), #s(x5))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c54(#EQUAL(#s(#0), #s(#0))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c54(#EQUAL(#s(leaf), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c54(#EQUAL(#s(nil), #s(nil))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #0), ::(x6, #0))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z0))), #EQUAL(::(x0, #0), ::(x6, #neg(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z0))), #EQUAL(::(x0, #0), ::(x6, #pos(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #s(z0))), #EQUAL(::(x0, #0), ::(x6, #s(z0)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #neg(z0)), ::(x6, #0))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #pos(z0)), ::(x6, #0))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #s(z0)), ::(x6, #0))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z1))), #EQUAL(::(x0, #s(z0)), ::(x6, #s(z1)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z2, z3))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, ::(z2, z3)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, leaf))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, nil))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z2, z3, z4))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, node(z2, z3, z4)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, leaf), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, leaf), ::(x6, leaf))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, leaf), ::(x6, nil))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, leaf), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, nil), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, nil), ::(x6, leaf))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, nil), ::(x6, nil))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, nil), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z3, z4))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, ::(z3, z4)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, leaf))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, nil))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z3, z4, z5))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, node(z3, z4, z5)))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#0, x1), ::(#0, x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z0), x7)), #EQUAL(::(#0, x1), ::(#neg(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z0), x7)), #EQUAL(::(#0, x1), ::(#pos(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z0), x7)), #EQUAL(::(#0, x1), ::(#s(z0), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#neg(z0), x1), ::(#0, x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#pos(z0), x1), ::(#0, x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#s(z0), x1), ::(#0, x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#s(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z1), x7)), #EQUAL(::(#s(z0), x1), ::(#s(z1), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(::(z2, z3), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x1, x7)), x4, x2, x3, x5, ::(::(z2, z3), x7)), #EQUAL(::(::(z0, z1), x1), ::(::(z2, z3), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(::(z0, z1), x1), ::(leaf, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(::(z0, z1), x1), ::(nil, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(node(z2, z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z2, z3, z4), x7)), #EQUAL(::(::(z0, z1), x1), ::(node(z2, z3, z4), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(leaf, x1), ::(::(z0, z1), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(leaf, x1), ::(leaf, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(leaf, x1), ::(nil, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(leaf, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(nil, x1), ::(::(z0, z1), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(nil, x1), ::(leaf, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(nil, x1), ::(nil, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(nil, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(::(z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z3, z4), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(::(z3, z4), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(leaf, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(nil, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(node(z3, z4, z5), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x1, x7)), x4, x2, x3, x5, ::(node(z3, z4, z5), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(node(z3, z4, z5), x7))) DFS#2(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c54(#EQUAL(::(x0, x1), ::(x6, x7))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #0), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #neg(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #pos(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #s(z0)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z1))), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #s(z1)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z2, z3))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, ::(z2, z3)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z2, z3, z4))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, node(z2, z3, z4)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, leaf), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, leaf), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, leaf), node(x7, x8, nil))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, leaf), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, nil), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, nil), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, nil), node(x7, x8, nil))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, nil), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z3, z4))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, ::(z3, z4)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z3, z4, z5))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, node(z3, z4, z5)))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #0, x2), node(x7, #0, x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #neg(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #pos(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #s(z0), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #s(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z1), x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #s(z1), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, ::(z2, z3), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z2, z3), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, ::(z2, z3), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, nil, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, node(z2, z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z2, z3, z4), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, node(z2, z3, z4), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, leaf, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, leaf, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, leaf, x2), node(x7, nil, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, leaf, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, nil, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, nil, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, nil, x2), node(x7, nil, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, nil, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, ::(z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z3, z4), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, ::(z3, z4), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, nil, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, node(z3, z4, z5), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z3, z4, z5), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, node(z3, z4, z5), x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#0, x1, x2), node(#0, x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#neg(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#pos(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#s(z0), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#s(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z1), x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#s(z1), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(::(z2, z3), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z2, z3), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(::(z2, z3), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(nil, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(node(z2, z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z2, z3, z4), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(node(z2, z3, z4), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(leaf, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(leaf, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(leaf, x1, x2), node(nil, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(leaf, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(nil, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(nil, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(nil, x1, x2), node(nil, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(nil, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(::(z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z3, z4), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(::(z3, z4), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(nil, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(node(z3, z4, z5), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z3, z4, z5), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(node(z3, z4, z5), x8, x9))) DFS#2(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c54(#EQUAL(node(x0, x1, x2), node(x7, x8, x9))) BFS2(z0, z3) -> c(BFS2#1(bfs#3(z0, nil, nil, z3), z3)) APPENDREVERSE(x1, ::(x0, x2)) -> c36(APPENDREVERSE#1(x1, ::(x0, x2))) APPENDREVERSE(x0, nil) -> c36(APPENDREVERSE#1(x0, nil)) S tuples: APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) APPENDREVERSE(x1, ::(x0, x2)) -> c36(APPENDREVERSE#1(x1, ::(x0, x2))) APPENDREVERSE(x0, nil) -> c36(APPENDREVERSE#1(x0, nil)) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, APPENDREVERSE#1_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2, APPENDREVERSE_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c37_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c42_2, c_1, c36_1 ---------------------------------------- (135) CdtInstantiationProof (BOTH BOUNDS(ID, ID)) Use instantiation to replace APPENDREVERSE#1(::(z0, z1), z2) -> c37(APPENDREVERSE(z1, ::(z0, z2))) by APPENDREVERSE#1(::(z0, z1), ::(x1, x2)) -> c37(APPENDREVERSE(z1, ::(z0, ::(x1, x2)))) APPENDREVERSE#1(::(z0, z1), nil) -> c37(APPENDREVERSE(z1, ::(z0, nil))) ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: appendreverse(z0, z1) -> appendreverse#1(z0, z1) appendreverse#1(::(z0, z1), z2) -> appendreverse(z1, ::(z0, z2)) appendreverse#1(nil, z0) -> z0 #eq(#0, #0) -> #true #eq(#0, #neg(z0)) -> #false #eq(#0, #pos(z0)) -> #false #eq(#0, #s(z0)) -> #false #eq(#neg(z0), #0) -> #false #eq(#neg(z0), #neg(z1)) -> #eq(z0, z1) #eq(#neg(z0), #pos(z1)) -> #false #eq(#pos(z0), #0) -> #false #eq(#pos(z0), #neg(z1)) -> #false #eq(#pos(z0), #pos(z1)) -> #eq(z0, z1) #eq(#s(z0), #0) -> #false #eq(#s(z0), #s(z1)) -> #eq(z0, z1) #eq(::(z0, z1), ::(z2, z3)) -> #and(#eq(z0, z2), #eq(z1, z3)) #eq(::(z0, z1), leaf) -> #false #eq(::(z0, z1), nil) -> #false #eq(::(z0, z1), node(z2, z3, z4)) -> #false #eq(leaf, ::(z0, z1)) -> #false #eq(leaf, leaf) -> #true #eq(leaf, nil) -> #false #eq(leaf, node(z0, z1, z2)) -> #false #eq(nil, ::(z0, z1)) -> #false #eq(nil, leaf) -> #false #eq(nil, nil) -> #true #eq(nil, node(z0, z1, z2)) -> #false #eq(node(z0, z1, z2), ::(z3, z4)) -> #false #eq(node(z0, z1, z2), leaf) -> #false #eq(node(z0, z1, z2), nil) -> #false #eq(node(z0, z1, z2), node(z3, z4, z5)) -> #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))) #and(#false, #false) -> #false #and(#false, #true) -> #false #and(#true, #false) -> #false #and(#true, #true) -> #true bfs(z0, z1, z2) -> bfs#1(z0, z1, z2) bfs#1(::(z0, z1), z2, z3) -> bfs#3(z0, z2, z1, z3) bfs#1(nil, z0, z1) -> bfs#2(z0, z1) bfs#3(leaf, z0, z1, z2) -> bfs(z1, z0, z2) bfs#3(node(z0, z1, z2), z3, z4, z5) -> bfs#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0) bfs#4(#false, z0, z1, z2, z3, z4, z5) -> bfs(z3, ::(z2, ::(z1, z0)), z4) bfs#4(#true, z0, z1, z2, z3, z4, z5) -> node(z5, z1, z2) #equal(z0, z1) -> #eq(z0, z1) bfs#2(::(z0, z1), z2) -> bfs(reverse(::(z0, z1)), nil, z2) bfs#2(nil, z0) -> leaf reverse(z0) -> appendreverse(z0, nil) Tuples: #EQ(#neg(z0), #neg(z1)) -> c9(#EQ(z0, z1)) #EQ(#pos(z0), #pos(z1)) -> c13(#EQ(z0, z1)) #EQ(#s(z0), #s(z1)) -> c15(#EQ(z0, z1)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) #EQ(::(z0, z1), ::(z2, z3)) -> c16(#EQ(z0, z2)) #EQ(::(z0, z1), ::(z2, z3)) -> c17(#EQ(z1, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c32(#EQ(z0, z3)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c33(#EQ(z1, z4)) #EQ(node(z0, z1, z2), node(z3, z4, z5)) -> c34(#EQ(z2, z5)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) BFS#3(node(#neg(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #neg(z0)), #EQUAL(#0, #neg(z0))) BFS#3(node(#pos(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #pos(z0)), #EQUAL(#0, #pos(z0))) BFS#3(node(#s(z0), x1, x2), x3, x4, #0) -> c45(BFS#4(#false, x3, x1, x2, x4, #0, #s(z0)), #EQUAL(#0, #s(z0))) BFS#3(node(#0, x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #0), #EQUAL(#neg(z0), #0)) BFS#3(node(#pos(z1), x1, x2), x3, x4, #neg(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(z0), #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) BFS#3(node(#0, x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #0), #EQUAL(#pos(z0), #0)) BFS#3(node(#neg(z1), x1, x2), x3, x4, #pos(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(z0), #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) BFS#3(node(#0, x1, x2), x3, x4, #s(z0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(z0), #0), #EQUAL(#s(z0), #0)) BFS#3(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), leaf), #EQUAL(::(z0, z1), leaf)) BFS#3(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), nil), #EQUAL(::(z0, z1), nil)) BFS#3(node(node(z2, z3, z4), x1, x2), x3, x4, ::(z0, z1)) -> c45(BFS#4(#false, x3, x1, x2, x4, ::(z0, z1), node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) BFS#3(node(nil, x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, nil), #EQUAL(leaf, nil)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c45(BFS#4(#false, x3, x1, x2, x4, leaf, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) BFS#3(node(::(z0, z1), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) BFS#3(node(leaf, x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, leaf), #EQUAL(nil, leaf)) BFS#3(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c45(BFS#4(#false, x3, x1, x2, x4, nil, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) BFS#3(node(::(z3, z4), x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) BFS#3(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), leaf), #EQUAL(node(z0, z1, z2), leaf)) BFS#3(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c45(BFS#4(#false, x3, x1, x2, x4, node(z0, z1, z2), nil), #EQUAL(node(z0, z1, z2), nil)) BFS#3(node(x0, x1, x2), x3, x4, x5) -> c45(#EQUAL(x5, x0)) BFS#3(node(#0, x1, x2), x3, x4, #0) -> c45(#EQUAL(#0, #0)) BFS#3(node(leaf, x1, x2), x3, x4, leaf) -> c45(#EQUAL(leaf, leaf)) BFS#3(node(nil, x1, x2), x3, x4, nil) -> c45(#EQUAL(nil, nil)) DFS#2(node(#0, x1, x2), x3, x4, #neg(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z0)), #EQUAL(#0, #neg(z0))) DFS#2(node(#0, x1, x2), x3, x4, #pos(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z0)), #EQUAL(#0, #pos(z0))) DFS#2(node(#0, x1, x2), x3, x4, #s(z0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(z0)), #EQUAL(#0, #s(z0))) DFS#2(node(#neg(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#neg(z0), #0)) DFS#2(node(#neg(z0), x1, x2), x3, x4, #pos(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(z1)), #EQUAL(#neg(z0), #pos(z1))) DFS#2(node(#pos(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#pos(z0), #0)) DFS#2(node(#pos(z0), x1, x2), x3, x4, #neg(z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(z1)), #EQUAL(#pos(z0), #neg(z1))) DFS#2(node(#s(z0), x1, x2), x3, x4, #0) -> c54(DFS#3(#false, x3, x1, x2, x4, #0), #EQUAL(#s(z0), #0)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(::(z0, z1), leaf)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(::(z0, z1), nil)) DFS#2(node(::(z0, z1), x1, x2), x3, x4, node(z2, z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z2, z3, z4)), #EQUAL(::(z0, z1), node(z2, z3, z4))) DFS#2(node(leaf, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(leaf, ::(z0, z1))) DFS#2(node(leaf, x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(leaf, nil)) DFS#2(node(leaf, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(leaf, node(z0, z1, z2))) DFS#2(node(nil, x1, x2), x3, x4, ::(z0, z1)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z0, z1)), #EQUAL(nil, ::(z0, z1))) DFS#2(node(nil, x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(nil, leaf)) DFS#2(node(nil, x1, x2), x3, x4, node(z0, z1, z2)) -> c54(DFS#3(#false, x3, x1, x2, x4, node(z0, z1, z2)), #EQUAL(nil, node(z0, z1, z2))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, ::(z3, z4)) -> c54(DFS#3(#false, x3, x1, x2, x4, ::(z3, z4)), #EQUAL(node(z0, z1, z2), ::(z3, z4))) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, leaf) -> c54(DFS#3(#false, x3, x1, x2, x4, leaf), #EQUAL(node(z0, z1, z2), leaf)) DFS#2(node(node(z0, z1, z2), x1, x2), x3, x4, nil) -> c54(DFS#3(#false, x3, x1, x2, x4, nil), #EQUAL(node(z0, z1, z2), nil)) DFS#2(node(x0, x1, x2), x3, x4, x5) -> c54(#EQUAL(x0, x5)) DFS#2(node(#0, x1, x2), x3, x4, #0) -> c54(#EQUAL(#0, #0)) DFS#2(node(leaf, x1, x2), x3, x4, leaf) -> c54(#EQUAL(leaf, leaf)) DFS#2(node(nil, x1, x2), x3, x4, nil) -> c54(#EQUAL(nil, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) BFS#3(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) BFS#3(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) BFS#3(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#0), #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z0)), #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#neg(z0)), #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) BFS#3(node(#neg(#neg(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#pos(z0)), #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) BFS#3(node(#neg(#pos(z1)), x1, x2), x3, x4, #neg(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z0)), #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(#s(z0)), #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) BFS#3(node(#neg(#s(z1)), x1, x2), x3, x4, #neg(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z0)), #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) BFS#3(node(#neg(::(z2, z3)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z0, z1)), #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) BFS#3(node(#neg(node(z2, z3, z4)), x1, x2), x3, x4, #neg(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(::(z0, z1)), #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(leaf), #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) BFS#3(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(nil), #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) BFS#3(node(#neg(::(z3, z4)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) BFS#3(node(#neg(node(z3, z4, z5)), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z0, z1, z2)), #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) BFS#3(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c45(#EQUAL(#neg(x5), #neg(x0))) BFS#3(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c45(#EQUAL(#neg(#0), #neg(#0))) BFS#3(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c45(#EQUAL(#neg(leaf), #neg(leaf))) BFS#3(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c45(#EQUAL(#neg(nil), #neg(nil))) BFS#3(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) BFS#3(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) BFS#3(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#0), #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z0)), #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#neg(z0)), #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) BFS#3(node(#pos(#neg(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#pos(z0)), #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) BFS#3(node(#pos(#pos(z1)), x1, x2), x3, x4, #pos(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z0)), #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(#s(z0)), #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) BFS#3(node(#pos(#s(z1)), x1, x2), x3, x4, #pos(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z0)), #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) BFS#3(node(#pos(::(z2, z3)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z0, z1)), #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) BFS#3(node(#pos(node(z2, z3, z4)), x1, x2), x3, x4, #pos(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(::(z0, z1)), #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(leaf), #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) BFS#3(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(nil), #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) BFS#3(node(#pos(::(z3, z4)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) BFS#3(node(#pos(node(z3, z4, z5)), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z0, z1, z2)), #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) BFS#3(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c45(#EQUAL(#pos(x5), #pos(x0))) BFS#3(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c45(#EQUAL(#pos(#0), #pos(#0))) BFS#3(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c45(#EQUAL(#pos(leaf), #pos(leaf))) BFS#3(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c45(#EQUAL(#pos(nil), #pos(nil))) BFS#3(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) BFS#3(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) BFS#3(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#0), #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z0)), #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#neg(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#neg(z0)), #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) BFS#3(node(#s(#neg(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#pos(z0)), #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) BFS#3(node(#s(#pos(z1)), x1, x2), x3, x4, #s(#pos(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z0)), #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(#s(z0)), #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) BFS#3(node(#s(#s(z1)), x1, x2), x3, x4, #s(#s(z0))) -> c45(BFS#4(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z0)), #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) BFS#3(node(#s(::(z2, z3)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z0, z1)), #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) BFS#3(node(#s(node(z2, z3, z4)), x1, x2), x3, x4, #s(::(z0, z1))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(::(z0, z1)), #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(nil)), #EQUAL(#s(leaf), #s(nil))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(leaf), #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(leaf)), #EQUAL(#s(nil), #s(leaf))) BFS#3(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(nil), #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) BFS#3(node(#s(::(z3, z4)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#false, x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) BFS#3(node(#s(node(z3, z4, z5)), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z0, z1, z2)), #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) BFS#3(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c45(#EQUAL(#s(x5), #s(x0))) BFS#3(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c45(#EQUAL(#s(#0), #s(#0))) BFS#3(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c45(#EQUAL(#s(leaf), #s(leaf))) BFS#3(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c45(#EQUAL(#s(nil), #s(nil))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, #0), ::(x0, #0)), #EQUAL(::(x6, #0), ::(x0, #0))) BFS#3(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #neg(z0))), #EQUAL(::(x6, #0), ::(x0, #neg(z0)))) BFS#3(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #pos(z0))), #EQUAL(::(x6, #0), ::(x0, #pos(z0)))) BFS#3(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #0), ::(x0, #s(z0))), #EQUAL(::(x6, #0), ::(x0, #s(z0)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #0)), #EQUAL(::(x6, #neg(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #neg(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #neg(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #0)), #EQUAL(::(x6, #pos(z0)), ::(x0, #0))) BFS#3(node(::(x0, #neg(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #neg(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #neg(z1)))) BFS#3(node(::(x0, #pos(z1)), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z0)), ::(x0, #pos(z1))), #EQUAL(::(x6, #pos(z0)), ::(x0, #pos(z1)))) BFS#3(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #0)), #EQUAL(::(x6, #s(z0)), ::(x0, #0))) BFS#3(node(::(x0, #s(z1)), x2, x3), x4, x5, ::(x6, #s(z0))) -> c45(BFS#4(#and(#eq(x6, x0), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z0)), ::(x0, #s(z1))), #EQUAL(::(x6, #s(z0)), ::(x0, #s(z1)))) BFS#3(node(::(x0, ::(z2, z3)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, ::(z2, z3))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, ::(z2, z3)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, leaf)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, nil)), #EQUAL(::(x6, ::(z0, z1)), ::(x0, nil))) BFS#3(node(::(x0, node(z2, z3, z4)), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4))), #EQUAL(::(x6, ::(z0, z1)), ::(x0, node(z2, z3, z4)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, ::(z0, z1))), #EQUAL(::(x6, leaf), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, leaf), ::(x0, leaf)), #EQUAL(::(x6, leaf), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, nil)), #EQUAL(::(x6, leaf), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, leaf), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, leaf), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, ::(z0, z1))), #EQUAL(::(x6, nil), ::(x0, ::(z0, z1)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, leaf)), #EQUAL(::(x6, nil), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #true), x4, x2, x3, x5, ::(x6, nil), ::(x0, nil)), #EQUAL(::(x6, nil), ::(x0, nil))) BFS#3(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, nil), ::(x0, node(z0, z1, z2))), #EQUAL(::(x6, nil), ::(x0, node(z0, z1, z2)))) BFS#3(node(::(x0, ::(z3, z4)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, ::(z3, z4)))) BFS#3(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, leaf)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, leaf))) BFS#3(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, nil)), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, nil))) BFS#3(node(::(x0, node(z3, z4, z5)), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x6, x0), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5))), #EQUAL(::(x6, node(z0, z1, z2)), ::(x0, node(z3, z4, z5)))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#0, x1)), #EQUAL(::(#0, x7), ::(#0, x1))) BFS#3(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#neg(z0), x1)), #EQUAL(::(#0, x7), ::(#neg(z0), x1))) BFS#3(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#pos(z0), x1)), #EQUAL(::(#0, x7), ::(#pos(z0), x1))) BFS#3(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#0, x7), ::(#s(z0), x1)), #EQUAL(::(#0, x7), ::(#s(z0), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#0, x1)), #EQUAL(::(#neg(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#neg(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#neg(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#0, x1)), #EQUAL(::(#pos(z0), x7), ::(#0, x1))) BFS#3(node(::(#neg(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#neg(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#neg(z1), x1))) BFS#3(node(::(#pos(z1), x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#pos(z0), x7), ::(#pos(z1), x1)), #EQUAL(::(#pos(z0), x7), ::(#pos(z1), x1))) BFS#3(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#0, x1)), #EQUAL(::(#s(z0), x7), ::(#0, x1))) BFS#3(node(::(#s(z1), x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c45(BFS#4(#and(#eq(z0, z1), #eq(x7, x1)), x4, x2, x3, x5, ::(#s(z0), x7), ::(#s(z1), x1)), #EQUAL(::(#s(z0), x7), ::(#s(z1), x1))) BFS#3(node(::(::(z2, z3), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(::(z2, z3), x1)), #EQUAL(::(::(z0, z1), x7), ::(::(z2, z3), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(leaf, x1)), #EQUAL(::(::(z0, z1), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(nil, x1)), #EQUAL(::(::(z0, z1), x7), ::(nil, x1))) BFS#3(node(::(node(z2, z3, z4), x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(::(z0, z1), x7), ::(node(z2, z3, z4), x1)), #EQUAL(::(::(z0, z1), x7), ::(node(z2, z3, z4), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(::(z0, z1), x1)), #EQUAL(::(leaf, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(leaf, x1)), #EQUAL(::(leaf, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(nil, x1)), #EQUAL(::(leaf, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(leaf, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(leaf, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(::(z0, z1), x1)), #EQUAL(::(nil, x7), ::(::(z0, z1), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(leaf, x1)), #EQUAL(::(nil, x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#true, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(nil, x1)), #EQUAL(::(nil, x7), ::(nil, x1))) BFS#3(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(nil, x7), ::(node(z0, z1, z2), x1)), #EQUAL(::(nil, x7), ::(node(z0, z1, z2), x1))) BFS#3(node(::(::(z3, z4), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(::(z3, z4), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(::(z3, z4), x1))) BFS#3(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(leaf, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(leaf, x1))) BFS#3(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#false, #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(nil, x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(nil, x1))) BFS#3(node(::(node(z3, z4, z5), x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x7, x1)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1)), #EQUAL(::(node(z0, z1, z2), x7), ::(node(z3, z4, z5), x1))) BFS#3(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c45(#EQUAL(::(x6, x7), ::(x0, x1))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #0)), #EQUAL(node(x7, x8, #0), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #neg(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #neg(z0)))) BFS#3(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #pos(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #pos(z0)))) BFS#3(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #0), node(x0, x1, #s(z0))), #EQUAL(node(x7, x8, #0), node(x0, x1, #s(z0)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #neg(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #neg(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #neg(z1)))) BFS#3(node(node(x0, x1, #pos(z1)), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1))), #EQUAL(node(x7, x8, #pos(z0)), node(x0, x1, #pos(z1)))) BFS#3(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #0)), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #0))) BFS#3(node(node(x0, x1, #s(z1)), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z0)), node(x0, x1, #s(z1))), #EQUAL(node(x7, x8, #s(z0)), node(x0, x1, #s(z1)))) BFS#3(node(node(x0, x1, ::(z2, z3)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, ::(z2, z3)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, nil)), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z2, z3, z4)), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4))), #EQUAL(node(x7, x8, ::(z0, z1)), node(x0, x1, node(z2, z3, z4)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, leaf), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, leaf)), #EQUAL(node(x7, x8, leaf), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, nil)), #EQUAL(node(x7, x8, leaf), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, leaf), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, ::(z0, z1))), #EQUAL(node(x7, x8, nil), node(x0, x1, ::(z0, z1)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, leaf)), #EQUAL(node(x7, x8, nil), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #true)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, nil)), #EQUAL(node(x7, x8, nil), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, nil), node(x0, x1, node(z0, z1, z2))), #EQUAL(node(x7, x8, nil), node(x0, x1, node(z0, z1, z2)))) BFS#3(node(node(x0, x1, ::(z3, z4)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, ::(z3, z4)))) BFS#3(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, leaf))) BFS#3(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil)), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, nil))) BFS#3(node(node(x0, x1, node(z3, z4, z5)), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(x8, x1), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5))), #EQUAL(node(x7, x8, node(z0, z1, z2)), node(x0, x1, node(z3, z4, z5)))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #0, x2)), #EQUAL(node(x7, #0, x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #neg(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #neg(z0), x2))) BFS#3(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #pos(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #pos(z0), x2))) BFS#3(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #0, x9), node(x0, #s(z0), x2)), #EQUAL(node(x7, #0, x9), node(x0, #s(z0), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #neg(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #neg(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #neg(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #neg(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #neg(z1), x2))) BFS#3(node(node(x0, #pos(z1), x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #pos(z0), x9), node(x0, #pos(z1), x2)), #EQUAL(node(x7, #pos(z0), x9), node(x0, #pos(z1), x2))) BFS#3(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #0, x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #0, x2))) BFS#3(node(node(x0, #s(z1), x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#eq(z0, z1), #eq(x9, x2))), x5, x3, x4, x6, node(x7, #s(z0), x9), node(x0, #s(z1), x2)), #EQUAL(node(x7, #s(z0), x9), node(x0, #s(z1), x2))) BFS#3(node(node(x0, ::(z2, z3), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, ::(z2, z3), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, leaf, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, nil, x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z2, z3, z4), x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2)), #EQUAL(node(x7, ::(z0, z1), x9), node(x0, node(z2, z3, z4), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, leaf, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, leaf, x2)), #EQUAL(node(x7, leaf, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, nil, x2)), #EQUAL(node(x7, leaf, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, leaf, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, ::(z0, z1), x2)), #EQUAL(node(x7, nil, x9), node(x0, ::(z0, z1), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, leaf, x2)), #EQUAL(node(x7, nil, x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#true, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, nil, x2)), #EQUAL(node(x7, nil, x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, nil, x9), node(x0, node(z0, z1, z2), x2)), #EQUAL(node(x7, nil, x9), node(x0, node(z0, z1, z2), x2))) BFS#3(node(node(x0, ::(z3, z4), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, ::(z3, z4), x2))) BFS#3(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, leaf, x2))) BFS#3(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#false, #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, nil, x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, nil, x2))) BFS#3(node(node(x0, node(z3, z4, z5), x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c45(BFS#4(#and(#eq(x7, x0), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x9, x2))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2)), #EQUAL(node(x7, node(z0, z1, z2), x9), node(x0, node(z3, z4, z5), x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#0, x1, x2)), #EQUAL(node(#0, x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#neg(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#neg(z0), x1, x2))) BFS#3(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#pos(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#pos(z0), x1, x2))) BFS#3(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#0, x8, x9), node(#s(z0), x1, x2)), #EQUAL(node(#0, x8, x9), node(#s(z0), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#neg(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#neg(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#neg(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#neg(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#neg(z1), x1, x2))) BFS#3(node(node(#pos(z1), x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#pos(z0), x8, x9), node(#pos(z1), x1, x2)), #EQUAL(node(#pos(z0), x8, x9), node(#pos(z1), x1, x2))) BFS#3(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#0, x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#0, x1, x2))) BFS#3(node(node(#s(z1), x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c45(BFS#4(#and(#eq(z0, z1), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(#s(z0), x8, x9), node(#s(z1), x1, x2)), #EQUAL(node(#s(z0), x8, x9), node(#s(z1), x1, x2))) BFS#3(node(node(::(z2, z3), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(::(z2, z3), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(leaf, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(nil, x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z2, z3, z4), x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2)), #EQUAL(node(::(z0, z1), x8, x9), node(node(z2, z3, z4), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(leaf, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(leaf, x1, x2)), #EQUAL(node(leaf, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(nil, x1, x2)), #EQUAL(node(leaf, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(leaf, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(::(z0, z1), x1, x2)), #EQUAL(node(nil, x8, x9), node(::(z0, z1), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(leaf, x1, x2)), #EQUAL(node(nil, x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#true, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(nil, x1, x2)), #EQUAL(node(nil, x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(nil, x8, x9), node(node(z0, z1, z2), x1, x2)), #EQUAL(node(nil, x8, x9), node(node(z0, z1, z2), x1, x2))) BFS#3(node(node(::(z3, z4), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(::(z3, z4), x1, x2))) BFS#3(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(leaf, x1, x2))) BFS#3(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#false, #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(nil, x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(nil, x1, x2))) BFS#3(node(node(node(z3, z4, z5), x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c45(BFS#4(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x8, x1), #eq(x9, x2))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2)), #EQUAL(node(node(z0, z1, z2), x8, x9), node(node(z3, z4, z5), x1, x2))) BFS#3(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c45(#EQUAL(node(x7, x8, x9), node(x0, x1, x2))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z0))), #EQUAL(#neg(#0), #neg(#neg(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z0))), #EQUAL(#neg(#0), #neg(#pos(z0)))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#s(z0))), #EQUAL(#neg(#0), #neg(#s(z0)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#neg(z0)), #neg(#0))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#neg(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#neg(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#neg(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#pos(z0)), #neg(#0))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#neg(z1))), #EQUAL(#neg(#pos(z0)), #neg(#neg(z1)))) DFS#2(node(#neg(#pos(z0)), x1, x2), x3, x4, #neg(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#pos(z1))), #EQUAL(#neg(#pos(z0)), #neg(#pos(z1)))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(#0)), #EQUAL(#neg(#s(z0)), #neg(#0))) DFS#2(node(#neg(#s(z0)), x1, x2), x3, x4, #neg(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #neg(#s(z1))), #EQUAL(#neg(#s(z0)), #neg(#s(z1)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #neg(::(z2, z3))), #EQUAL(#neg(::(z0, z1)), #neg(::(z2, z3)))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(::(z0, z1)), #neg(leaf))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(::(z0, z1)), #neg(nil))) DFS#2(node(#neg(::(z0, z1)), x1, x2), x3, x4, #neg(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z2, z3, z4))), #EQUAL(#neg(::(z0, z1)), #neg(node(z2, z3, z4)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(leaf), #neg(::(z0, z1)))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(leaf), #neg(nil))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(leaf), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z0, z1))), #EQUAL(#neg(nil), #neg(::(z0, z1)))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(nil), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(node(z0, z1, z2))), #EQUAL(#neg(nil), #neg(node(z0, z1, z2)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(::(z3, z4))), #EQUAL(#neg(node(z0, z1, z2)), #neg(::(z3, z4)))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(leaf)), #EQUAL(#neg(node(z0, z1, z2)), #neg(leaf))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #neg(nil)), #EQUAL(#neg(node(z0, z1, z2)), #neg(nil))) DFS#2(node(#neg(node(z0, z1, z2)), x1, x2), x3, x4, #neg(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #neg(node(z3, z4, z5))), #EQUAL(#neg(node(z0, z1, z2)), #neg(node(z3, z4, z5)))) DFS#2(node(#neg(x0), x1, x2), x3, x4, #neg(x5)) -> c54(#EQUAL(#neg(x0), #neg(x5))) DFS#2(node(#neg(#0), x1, x2), x3, x4, #neg(#0)) -> c54(#EQUAL(#neg(#0), #neg(#0))) DFS#2(node(#neg(leaf), x1, x2), x3, x4, #neg(leaf)) -> c54(#EQUAL(#neg(leaf), #neg(leaf))) DFS#2(node(#neg(nil), x1, x2), x3, x4, #neg(nil)) -> c54(#EQUAL(#neg(nil), #neg(nil))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z0))), #EQUAL(#pos(#0), #pos(#neg(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z0))), #EQUAL(#pos(#0), #pos(#pos(z0)))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#s(z0))), #EQUAL(#pos(#0), #pos(#s(z0)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#neg(z0)), #pos(#0))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#neg(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#neg(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#neg(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#pos(z0)), #pos(#0))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#neg(z1))), #EQUAL(#pos(#pos(z0)), #pos(#neg(z1)))) DFS#2(node(#pos(#pos(z0)), x1, x2), x3, x4, #pos(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#pos(z1))), #EQUAL(#pos(#pos(z0)), #pos(#pos(z1)))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(#0)), #EQUAL(#pos(#s(z0)), #pos(#0))) DFS#2(node(#pos(#s(z0)), x1, x2), x3, x4, #pos(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #pos(#s(z1))), #EQUAL(#pos(#s(z0)), #pos(#s(z1)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #pos(::(z2, z3))), #EQUAL(#pos(::(z0, z1)), #pos(::(z2, z3)))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(::(z0, z1)), #pos(leaf))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(::(z0, z1)), #pos(nil))) DFS#2(node(#pos(::(z0, z1)), x1, x2), x3, x4, #pos(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z2, z3, z4))), #EQUAL(#pos(::(z0, z1)), #pos(node(z2, z3, z4)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(leaf), #pos(::(z0, z1)))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(leaf), #pos(nil))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(leaf), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z0, z1))), #EQUAL(#pos(nil), #pos(::(z0, z1)))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(nil), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(node(z0, z1, z2))), #EQUAL(#pos(nil), #pos(node(z0, z1, z2)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(::(z3, z4))), #EQUAL(#pos(node(z0, z1, z2)), #pos(::(z3, z4)))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(leaf)), #EQUAL(#pos(node(z0, z1, z2)), #pos(leaf))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #pos(nil)), #EQUAL(#pos(node(z0, z1, z2)), #pos(nil))) DFS#2(node(#pos(node(z0, z1, z2)), x1, x2), x3, x4, #pos(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #pos(node(z3, z4, z5))), #EQUAL(#pos(node(z0, z1, z2)), #pos(node(z3, z4, z5)))) DFS#2(node(#pos(x0), x1, x2), x3, x4, #pos(x5)) -> c54(#EQUAL(#pos(x0), #pos(x5))) DFS#2(node(#pos(#0), x1, x2), x3, x4, #pos(#0)) -> c54(#EQUAL(#pos(#0), #pos(#0))) DFS#2(node(#pos(leaf), x1, x2), x3, x4, #pos(leaf)) -> c54(#EQUAL(#pos(leaf), #pos(leaf))) DFS#2(node(#pos(nil), x1, x2), x3, x4, #pos(nil)) -> c54(#EQUAL(#pos(nil), #pos(nil))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#neg(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z0))), #EQUAL(#s(#0), #s(#neg(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#pos(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z0))), #EQUAL(#s(#0), #s(#pos(z0)))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#s(z0))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#s(z0))), #EQUAL(#s(#0), #s(#s(z0)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#neg(z0)), #s(#0))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#neg(z0)), #s(#neg(z1)))) DFS#2(node(#s(#neg(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#neg(z0)), #s(#pos(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#pos(z0)), #s(#0))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#neg(z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#neg(z1))), #EQUAL(#s(#pos(z0)), #s(#neg(z1)))) DFS#2(node(#s(#pos(z0)), x1, x2), x3, x4, #s(#pos(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#pos(z1))), #EQUAL(#s(#pos(z0)), #s(#pos(z1)))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#0)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(#0)), #EQUAL(#s(#s(z0)), #s(#0))) DFS#2(node(#s(#s(z0)), x1, x2), x3, x4, #s(#s(z1))) -> c54(DFS#3(#eq(z0, z1), x3, x1, x2, x4, #s(#s(z1))), #EQUAL(#s(#s(z0)), #s(#s(z1)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(::(z2, z3))) -> c54(DFS#3(#and(#eq(z0, z2), #eq(z1, z3)), x3, x1, x2, x4, #s(::(z2, z3))), #EQUAL(#s(::(z0, z1)), #s(::(z2, z3)))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(::(z0, z1)), #s(leaf))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(::(z0, z1)), #s(nil))) DFS#2(node(#s(::(z0, z1)), x1, x2), x3, x4, #s(node(z2, z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z2, z3, z4))), #EQUAL(#s(::(z0, z1)), #s(node(z2, z3, z4)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(leaf), #s(::(z0, z1)))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(leaf), #s(nil))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(leaf), #s(node(z0, z1, z2)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(::(z0, z1))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z0, z1))), #EQUAL(#s(nil), #s(::(z0, z1)))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(nil), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(node(z0, z1, z2))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(node(z0, z1, z2))), #EQUAL(#s(nil), #s(node(z0, z1, z2)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(::(z3, z4))) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(::(z3, z4))), #EQUAL(#s(node(z0, z1, z2)), #s(::(z3, z4)))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(leaf)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(leaf)), #EQUAL(#s(node(z0, z1, z2)), #s(leaf))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(nil)) -> c54(DFS#3(#false, x3, x1, x2, x4, #s(nil)), #EQUAL(#s(node(z0, z1, z2)), #s(nil))) DFS#2(node(#s(node(z0, z1, z2)), x1, x2), x3, x4, #s(node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), x3, x1, x2, x4, #s(node(z3, z4, z5))), #EQUAL(#s(node(z0, z1, z2)), #s(node(z3, z4, z5)))) DFS#2(node(#s(x0), x1, x2), x3, x4, #s(x5)) -> c54(#EQUAL(#s(x0), #s(x5))) DFS#2(node(#s(#0), x1, x2), x3, x4, #s(#0)) -> c54(#EQUAL(#s(#0), #s(#0))) DFS#2(node(#s(leaf), x1, x2), x3, x4, #s(leaf)) -> c54(#EQUAL(#s(leaf), #s(leaf))) DFS#2(node(#s(nil), x1, x2), x3, x4, #s(nil)) -> c54(#EQUAL(#s(nil), #s(nil))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #0), ::(x6, #0))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z0))), #EQUAL(::(x0, #0), ::(x6, #neg(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z0))), #EQUAL(::(x0, #0), ::(x6, #pos(z0)))) DFS#2(node(::(x0, #0), x2, x3), x4, x5, ::(x6, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #s(z0))), #EQUAL(::(x0, #0), ::(x6, #s(z0)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #neg(z0)), ::(x6, #0))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #neg(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #neg(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #pos(z0)), ::(x6, #0))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #neg(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #neg(z1)))) DFS#2(node(::(x0, #pos(z0)), x2, x3), x4, x5, ::(x6, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #pos(z1))), #EQUAL(::(x0, #pos(z0)), ::(x6, #pos(z1)))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #0)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, #0)), #EQUAL(::(x0, #s(z0)), ::(x6, #0))) DFS#2(node(::(x0, #s(z0)), x2, x3), x4, x5, ::(x6, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x6), #eq(z0, z1)), x4, x2, x3, x5, ::(x6, #s(z1))), #EQUAL(::(x0, #s(z0)), ::(x6, #s(z1)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z2), #eq(z1, z3))), x4, x2, x3, x5, ::(x6, ::(z2, z3))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, ::(z2, z3)))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, leaf))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, ::(z0, z1)), ::(x6, nil))) DFS#2(node(::(x0, ::(z0, z1)), x2, x3), x4, x5, ::(x6, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z2, z3, z4))), #EQUAL(::(x0, ::(z0, z1)), ::(x6, node(z2, z3, z4)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, leaf), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, leaf), ::(x6, leaf))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, leaf), ::(x6, nil))) DFS#2(node(::(x0, leaf), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, leaf), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z0, z1))), #EQUAL(::(x0, nil), ::(x6, ::(z0, z1)))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, nil), ::(x6, leaf))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #true), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, nil), ::(x6, nil))) DFS#2(node(::(x0, nil), x2, x3), x4, x5, ::(x6, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, node(z0, z1, z2))), #EQUAL(::(x0, nil), ::(x6, node(z0, z1, z2)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, ::(z3, z4))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, ::(z3, z4)))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, leaf)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, leaf)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, leaf))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, nil)) -> c54(DFS#3(#and(#eq(x0, x6), #false), x4, x2, x3, x5, ::(x6, nil)), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, nil))) DFS#2(node(::(x0, node(z0, z1, z2)), x2, x3), x4, x5, ::(x6, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x6), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5)))), x4, x2, x3, x5, ::(x6, node(z3, z4, z5))), #EQUAL(::(x0, node(z0, z1, z2)), ::(x6, node(z3, z4, z5)))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#0, x1), ::(#0, x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#neg(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z0), x7)), #EQUAL(::(#0, x1), ::(#neg(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#pos(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z0), x7)), #EQUAL(::(#0, x1), ::(#pos(z0), x7))) DFS#2(node(::(#0, x1), x2, x3), x4, x5, ::(#s(z0), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z0), x7)), #EQUAL(::(#0, x1), ::(#s(z0), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#neg(z0), x1), ::(#0, x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#neg(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#neg(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#pos(z0), x1), ::(#0, x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#neg(z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#neg(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#neg(z1), x7))) DFS#2(node(::(#pos(z0), x1), x2, x3), x4, x5, ::(#pos(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#pos(z1), x7)), #EQUAL(::(#pos(z0), x1), ::(#pos(z1), x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#0, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(#0, x7)), #EQUAL(::(#s(z0), x1), ::(#0, x7))) DFS#2(node(::(#s(z0), x1), x2, x3), x4, x5, ::(#s(z1), x7)) -> c54(DFS#3(#and(#eq(z0, z1), #eq(x1, x7)), x4, x2, x3, x5, ::(#s(z1), x7)), #EQUAL(::(#s(z0), x1), ::(#s(z1), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(::(z2, z3), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x1, x7)), x4, x2, x3, x5, ::(::(z2, z3), x7)), #EQUAL(::(::(z0, z1), x1), ::(::(z2, z3), x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(::(z0, z1), x1), ::(leaf, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(::(z0, z1), x1), ::(nil, x7))) DFS#2(node(::(::(z0, z1), x1), x2, x3), x4, x5, ::(node(z2, z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z2, z3, z4), x7)), #EQUAL(::(::(z0, z1), x1), ::(node(z2, z3, z4), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(leaf, x1), ::(::(z0, z1), x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(leaf, x1), ::(leaf, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(leaf, x1), ::(nil, x7))) DFS#2(node(::(leaf, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(leaf, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(::(z0, z1), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z0, z1), x7)), #EQUAL(::(nil, x1), ::(::(z0, z1), x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(nil, x1), ::(leaf, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#true, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(nil, x1), ::(nil, x7))) DFS#2(node(::(nil, x1), x2, x3), x4, x5, ::(node(z0, z1, z2), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(node(z0, z1, z2), x7)), #EQUAL(::(nil, x1), ::(node(z0, z1, z2), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(::(z3, z4), x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(::(z3, z4), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(::(z3, z4), x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(leaf, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(leaf, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(leaf, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(nil, x7)) -> c54(DFS#3(#and(#false, #eq(x1, x7)), x4, x2, x3, x5, ::(nil, x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(nil, x7))) DFS#2(node(::(node(z0, z1, z2), x1), x2, x3), x4, x5, ::(node(z3, z4, z5), x7)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x1, x7)), x4, x2, x3, x5, ::(node(z3, z4, z5), x7)), #EQUAL(::(node(z0, z1, z2), x1), ::(node(z3, z4, z5), x7))) DFS#2(node(::(x0, x1), x2, x3), x4, x5, ::(x6, x7)) -> c54(#EQUAL(::(x0, x1), ::(x6, x7))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #0), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #neg(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #neg(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #pos(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #pos(z0)))) DFS#2(node(node(x0, x1, #0), x3, x4), x5, x6, node(x7, x8, #s(z0))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #s(z0))), #EQUAL(node(x0, x1, #0), node(x7, x8, #s(z0)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #neg(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #neg(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #neg(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #neg(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #neg(z1)))) DFS#2(node(node(x0, x1, #pos(z0)), x3, x4), x5, x6, node(x7, x8, #pos(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #pos(z1))), #EQUAL(node(x0, x1, #pos(z0)), node(x7, x8, #pos(z1)))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #0)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, #0)), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #0))) DFS#2(node(node(x0, x1, #s(z0)), x3, x4), x5, x6, node(x7, x8, #s(z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #eq(z0, z1))), x5, x3, x4, x6, node(x7, x8, #s(z1))), #EQUAL(node(x0, x1, #s(z0)), node(x7, x8, #s(z1)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, ::(z2, z3))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z2), #eq(z1, z3)))), x5, x3, x4, x6, node(x7, x8, ::(z2, z3))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, ::(z2, z3)))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, ::(z0, z1)), x3, x4), x5, x6, node(x7, x8, node(z2, z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z2, z3, z4))), #EQUAL(node(x0, x1, ::(z0, z1)), node(x7, x8, node(z2, z3, z4)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, leaf), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, leaf), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, leaf), node(x7, x8, nil))) DFS#2(node(node(x0, x1, leaf), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, leaf), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, ::(z0, z1))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z0, z1))), #EQUAL(node(x0, x1, nil), node(x7, x8, ::(z0, z1)))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, nil), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #true)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, nil), node(x7, x8, nil))) DFS#2(node(node(x0, x1, nil), x3, x4), x5, x6, node(x7, x8, node(z0, z1, z2))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, node(z0, z1, z2))), #EQUAL(node(x0, x1, nil), node(x7, x8, node(z0, z1, z2)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, ::(z3, z4))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, ::(z3, z4))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, ::(z3, z4)))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, leaf)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, leaf)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, leaf))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, nil)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #false)), x5, x3, x4, x6, node(x7, x8, nil)), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, nil))) DFS#2(node(node(x0, x1, node(z0, z1, z2)), x3, x4), x5, x6, node(x7, x8, node(z3, z4, z5))) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(x1, x8), #and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))))), x5, x3, x4, x6, node(x7, x8, node(z3, z4, z5))), #EQUAL(node(x0, x1, node(z0, z1, z2)), node(x7, x8, node(z3, z4, z5)))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #0, x2), node(x7, #0, x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #neg(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #neg(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #pos(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #pos(z0), x9))) DFS#2(node(node(x0, #0, x2), x3, x4), x5, x6, node(x7, #s(z0), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z0), x9)), #EQUAL(node(x0, #0, x2), node(x7, #s(z0), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #neg(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #neg(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #neg(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #neg(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #neg(z1), x9))) DFS#2(node(node(x0, #pos(z0), x2), x3, x4), x5, x6, node(x7, #pos(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #pos(z1), x9)), #EQUAL(node(x0, #pos(z0), x2), node(x7, #pos(z1), x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #0, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, #0, x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #0, x9))) DFS#2(node(node(x0, #s(z0), x2), x3, x4), x5, x6, node(x7, #s(z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#eq(z0, z1), #eq(x2, x9))), x5, x3, x4, x6, node(x7, #s(z1), x9)), #EQUAL(node(x0, #s(z0), x2), node(x7, #s(z1), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, ::(z2, z3), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z2), #eq(z1, z3)), #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z2, z3), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, ::(z2, z3), x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, nil, x9))) DFS#2(node(node(x0, ::(z0, z1), x2), x3, x4), x5, x6, node(x7, node(z2, z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z2, z3, z4), x9)), #EQUAL(node(x0, ::(z0, z1), x2), node(x7, node(z2, z3, z4), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, leaf, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, leaf, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, leaf, x2), node(x7, nil, x9))) DFS#2(node(node(x0, leaf, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, leaf, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, ::(z0, z1), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z0, z1), x9)), #EQUAL(node(x0, nil, x2), node(x7, ::(z0, z1), x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, nil, x2), node(x7, leaf, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#true, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, nil, x2), node(x7, nil, x9))) DFS#2(node(node(x0, nil, x2), x3, x4), x5, x6, node(x7, node(z0, z1, z2), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z0, z1, z2), x9)), #EQUAL(node(x0, nil, x2), node(x7, node(z0, z1, z2), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, ::(z3, z4), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, ::(z3, z4), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, ::(z3, z4), x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, leaf, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, leaf, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, leaf, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, nil, x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#false, #eq(x2, x9))), x5, x3, x4, x6, node(x7, nil, x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, nil, x9))) DFS#2(node(node(x0, node(z0, z1, z2), x2), x3, x4), x5, x6, node(x7, node(z3, z4, z5), x9)) -> c54(DFS#3(#and(#eq(x0, x7), #and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #eq(x2, x9))), x5, x3, x4, x6, node(x7, node(z3, z4, z5), x9)), #EQUAL(node(x0, node(z0, z1, z2), x2), node(x7, node(z3, z4, z5), x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#0, x1, x2), node(#0, x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#neg(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#neg(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#pos(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#pos(z0), x8, x9))) DFS#2(node(node(#0, x1, x2), x3, x4), x5, x6, node(#s(z0), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z0), x8, x9)), #EQUAL(node(#0, x1, x2), node(#s(z0), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#neg(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#neg(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#neg(z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#neg(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#neg(z1), x8, x9))) DFS#2(node(node(#pos(z0), x1, x2), x3, x4), x5, x6, node(#pos(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#pos(z1), x8, x9)), #EQUAL(node(#pos(z0), x1, x2), node(#pos(z1), x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#0, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#0, x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#0, x8, x9))) DFS#2(node(node(#s(z0), x1, x2), x3, x4), x5, x6, node(#s(z1), x8, x9)) -> c54(DFS#3(#and(#eq(z0, z1), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(#s(z1), x8, x9)), #EQUAL(node(#s(z0), x1, x2), node(#s(z1), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(::(z2, z3), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z2), #eq(z1, z3)), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z2, z3), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(::(z2, z3), x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(nil, x8, x9))) DFS#2(node(node(::(z0, z1), x1, x2), x3, x4), x5, x6, node(node(z2, z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z2, z3, z4), x8, x9)), #EQUAL(node(::(z0, z1), x1, x2), node(node(z2, z3, z4), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(leaf, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(leaf, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(leaf, x1, x2), node(nil, x8, x9))) DFS#2(node(node(leaf, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(leaf, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(::(z0, z1), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z0, z1), x8, x9)), #EQUAL(node(nil, x1, x2), node(::(z0, z1), x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(nil, x1, x2), node(leaf, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#true, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(nil, x1, x2), node(nil, x8, x9))) DFS#2(node(node(nil, x1, x2), x3, x4), x5, x6, node(node(z0, z1, z2), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z0, z1, z2), x8, x9)), #EQUAL(node(nil, x1, x2), node(node(z0, z1, z2), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(::(z3, z4), x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(::(z3, z4), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(::(z3, z4), x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(leaf, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(leaf, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(leaf, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(nil, x8, x9)) -> c54(DFS#3(#and(#false, #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(nil, x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(nil, x8, x9))) DFS#2(node(node(node(z0, z1, z2), x1, x2), x3, x4), x5, x6, node(node(z3, z4, z5), x8, x9)) -> c54(DFS#3(#and(#and(#eq(z0, z3), #and(#eq(z1, z4), #eq(z2, z5))), #and(#eq(x1, x8), #eq(x2, x9))), x5, x3, x4, x6, node(node(z3, z4, z5), x8, x9)), #EQUAL(node(node(z0, z1, z2), x1, x2), node(node(z3, z4, z5), x8, x9))) DFS#2(node(node(x0, x1, x2), x3, x4), x5, x6, node(x7, x8, x9)) -> c54(#EQUAL(node(x0, x1, x2), node(x7, x8, x9))) BFS2(z0, z3) -> c(BFS2#1(bfs#3(z0, nil, nil, z3), z3)) APPENDREVERSE(x1, ::(x0, x2)) -> c36(APPENDREVERSE#1(x1, ::(x0, x2))) APPENDREVERSE(x0, nil) -> c36(APPENDREVERSE#1(x0, nil)) APPENDREVERSE#1(::(z0, z1), ::(x1, x2)) -> c37(APPENDREVERSE(z1, ::(z0, ::(x1, x2)))) APPENDREVERSE#1(::(z0, z1), nil) -> c37(APPENDREVERSE(z1, ::(z0, nil))) S tuples: BFS(z0, z1, z2) -> c39(BFS#1(z0, z1, z2)) BFS#1(nil, z0, z1) -> c41(BFS#2(z0, z1)) REVERSE(z0) -> c59(APPENDREVERSE(z0, nil)) BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) APPENDREVERSE(x1, ::(x0, x2)) -> c36(APPENDREVERSE#1(x1, ::(x0, x2))) APPENDREVERSE(x0, nil) -> c36(APPENDREVERSE#1(x0, nil)) APPENDREVERSE#1(::(z0, z1), ::(x1, x2)) -> c37(APPENDREVERSE(z1, ::(z0, ::(x1, x2)))) APPENDREVERSE#1(::(z0, z1), nil) -> c37(APPENDREVERSE(z1, ::(z0, nil))) K tuples: BFS2(z0, z1) -> c(BFS2#1(dobfs(z0, z1), z1)) BFS2#1(z0, z1) -> c49(DOBFS(z0, z1)) DOBFS(z0, z1) -> c57(BFS(::(z0, nil), nil, z1)) DFS#2(leaf, z0, z1, z2) -> c53(DFS(z1, z2)) DFS#2(node(z0, z1, z2), z3, z4, z5) -> c54(DFS#3(#equal(z0, z5), z3, z1, z2, z4, z5), #EQUAL(z0, z5)) DFS#3(#false, z0, z1, z2, z3, z4) -> c55(DFS(::(z1, ::(z2, z3)), z4)) DFS(z0, z1) -> c50(DFS#1(z0, z1)) DFS#1(::(z0, z1), z2) -> c51(DFS#2(z0, z0, z1, z2)) BFS#3(leaf, z0, z1, z2) -> c44(BFS(z1, z0, z2)) BFS#4(#false, z0, z1, z2, z3, z4, z5) -> c46(BFS(z3, ::(z2, ::(z1, z0)), z4)) BFS#3(node(z0, z1, z2), z3, z4, z5) -> c45(BFS#4(#equal(z5, z0), z3, z1, z2, z4, z5, z0), #EQUAL(z5, z0)) #EQUAL(z0, z1) -> c35(#EQ(z0, z1)) BFS#1(::(z0, z1), z2, z3) -> c40(BFS#3(z0, z2, z1, z3)) BFS#2(::(x0, x1), x2) -> c42(REVERSE(::(x0, x1))) Defined Rule Symbols: appendreverse_2, appendreverse#1_2, #eq_2, #and_2, bfs_3, bfs#1_3, bfs#3_4, bfs#4_7, #equal_2, bfs#2_2, reverse_1 Defined Pair Symbols: #EQ_2, #EQUAL_2, BFS_3, BFS#1_3, BFS#3_4, BFS#4_7, BFS2#1_2, DFS_2, DFS#1_2, DFS#2_4, DFS#3_6, DOBFS_2, REVERSE_1, BFS#2_2, BFS2_2, APPENDREVERSE_2, APPENDREVERSE#1_2 Compound Symbols: c9_1, c13_1, c15_1, c35_1, c39_1, c40_1, c41_1, c44_1, c46_1, c49_1, c50_1, c51_1, c53_1, c55_1, c57_1, c59_1, c16_1, c17_1, c32_1, c33_1, c34_1, c42_1, c45_2, c45_1, c54_2, c54_1, c42_2, c_1, c36_1, c37_1