KILLED proof of input_KcixHdKZC5.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 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), 229 ms] (2) CpxRelTRS (3) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (4) CpxRelTRS (5) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (6) CpxTRS (7) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (8) CpxWeightedTrs (9) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (10) CpxTypedWeightedTrs (11) CompletionProof [UPPER BOUND(ID), 1079 ms] (12) CpxTypedWeightedCompleteTrs (13) CompletionProof [UPPER BOUND(ID), 1194 ms] (14) CpxTypedWeightedCompleteTrs (15) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 31 ms] (16) CpxRNTS (17) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (18) CdtProblem (19) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (20) CdtProblem (21) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (22) CdtProblem (23) CdtGraphSplitRhsProof [BOTH BOUNDS(ID, ID), 0 ms] (24) CdtProblem (25) CdtLeafRemovalProof [ComplexityIfPolyImplication, 0 ms] (26) CdtProblem (27) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (28) CdtProblem (29) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CdtProblem (31) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 281 ms] (32) CdtProblem (33) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (34) CdtProblem (35) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 117 ms] (36) CdtProblem (37) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 111 ms] (38) CdtProblem (39) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 97 ms] (40) CdtProblem (41) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (42) CdtProblem (43) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 149 ms] (44) CdtProblem (45) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CdtProblem (47) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CdtProblem (49) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CdtProblem (51) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CdtProblem (53) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 63 ms] (58) CdtProblem (59) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CdtProblem (63) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (70) CdtProblem (71) CdtKnowledgeProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 4 ms] (74) CdtProblem (75) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (80) CdtProblem (81) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 41 ms] (88) CdtProblem (89) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 3 ms] (90) CdtProblem (91) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 13 ms] (102) CdtProblem (103) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 37 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (106) CdtProblem (107) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtInstantiationProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtRewritingProof [BOTH BOUNDS(ID, ID), 14 ms] (112) 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) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (8) 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 ---------------------------------------- (9) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (10) 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 ---------------------------------------- (11) 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 ---------------------------------------- (12) 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 ---------------------------------------- (13) 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 ---------------------------------------- (14) 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 ---------------------------------------- (15) 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 ---------------------------------------- (16) 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. ---------------------------------------- (17) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (18) 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 ---------------------------------------- (19) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: DODFS(z0, z1) -> c58(DFS(::(z0, nil), z1)) Removed 32 trailing nodes: #EQ(#0, #pos(z0)) -> c6 #EQ(#0, #s(z0)) -> c7 #EQ(leaf, leaf) -> c22 #EQ(leaf, nil) -> c23 #EQ(leaf, ::(z0, z1)) -> c21 #EQ(leaf, node(z0, z1, z2)) -> c24 #EQ(#0, #neg(z0)) -> c5 #EQ(nil, nil) -> c27 #AND(#true, #true) -> c3 BFS#2(nil, z0) -> c43 #EQ(#pos(z0), #neg(z1)) -> c12 #EQ(#0, #0) -> c4 #AND(#true, #false) -> c2 #EQ(nil, leaf) -> c26 #EQ(#s(z0), #0) -> c14 #AND(#false, #false) -> c #EQ(#pos(z0), #0) -> c11 BFS#4(#true, z0, z1, z2, z3, z4, z5) -> c47 #EQ(#neg(z0), #0) -> c8 #EQ(node(z0, z1, z2), ::(z3, z4)) -> c29 #EQ(::(z0, z1), nil) -> c19 #EQ(nil, ::(z0, z1)) -> c25 DFS#3(#true, z0, z1, z2, z3, z4) -> c56 DFS#1(nil, z0) -> c52 #AND(#false, #true) -> c1 #EQ(node(z0, z1, z2), leaf) -> c30 APPENDREVERSE#1(nil, z0) -> c38 #EQ(node(z0, z1, z2), nil) -> c31 #EQ(#neg(z0), #pos(z1)) -> c10 #EQ(nil, node(z0, z1, z2)) -> c28 #EQ(::(z0, z1), leaf) -> c18 #EQ(::(z0, z1), node(z2, z3, z4)) -> c20 ---------------------------------------- (20) 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 ---------------------------------------- (21) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (22) 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 ---------------------------------------- (23) CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID)) Split RHS of tuples not part of any SCC ---------------------------------------- (24) 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 ---------------------------------------- (25) CdtLeafRemovalProof (ComplexityIfPolyImplication) Removed 1 leading nodes: BFS2(z0, z1) -> c(DOBFS(z0, z1)) ---------------------------------------- (26) 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 ---------------------------------------- (27) 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)) ---------------------------------------- (28) 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 ---------------------------------------- (29) 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) ---------------------------------------- (30) 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 ---------------------------------------- (31) 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] ---------------------------------------- (32) 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 ---------------------------------------- (33) 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)) ---------------------------------------- (34) 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 ---------------------------------------- (35) 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 ---------------------------------------- (36) 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 ---------------------------------------- (37) 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 ---------------------------------------- (38) 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 ---------------------------------------- (39) 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 ---------------------------------------- (40) 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 ---------------------------------------- (41) 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)) ---------------------------------------- (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: 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 ---------------------------------------- (43) 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 ---------------------------------------- (44) 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 ---------------------------------------- (45) 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))) ---------------------------------------- (46) 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 ---------------------------------------- (47) 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)) ---------------------------------------- (48) 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 ---------------------------------------- (49) 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)) ---------------------------------------- (50) 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 ---------------------------------------- (51) 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)) ---------------------------------------- (52) 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 ---------------------------------------- (53) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) The following rules are not usable and were removed: dobfs(z0, z1) -> bfs(::(z0, nil), nil, z1) ---------------------------------------- (54) 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 ---------------------------------------- (55) 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))) ---------------------------------------- (56) 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 ---------------------------------------- (57) 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 ---------------------------------------- (58) 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 ---------------------------------------- (59) 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)) ---------------------------------------- (60) 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 ---------------------------------------- (61) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (62) 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 ---------------------------------------- (63) 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)) ---------------------------------------- (64) 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 ---------------------------------------- (65) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (66) 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 ---------------------------------------- (67) 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)) ---------------------------------------- (68) 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 ---------------------------------------- (69) 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))) ---------------------------------------- (70) 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 ---------------------------------------- (71) 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))) ---------------------------------------- (72) 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 ---------------------------------------- (73) 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))) ---------------------------------------- (74) 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 ---------------------------------------- (75) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (76) 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 ---------------------------------------- (77) 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))) ---------------------------------------- (78) 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 ---------------------------------------- (79) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (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(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 ---------------------------------------- (81) 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))) ---------------------------------------- (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#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 ---------------------------------------- (83) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (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#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 ---------------------------------------- (85) 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))) ---------------------------------------- (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)) 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 ---------------------------------------- (87) 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))) ---------------------------------------- (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)) 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 ---------------------------------------- (89) 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))) ---------------------------------------- (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)) 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 ---------------------------------------- (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)) 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 ---------------------------------------- (93) 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))) ---------------------------------------- (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(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 ---------------------------------------- (95) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (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(#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 ---------------------------------------- (97) 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))) ---------------------------------------- (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(#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 ---------------------------------------- (99) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (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(#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 ---------------------------------------- (101) 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))) ---------------------------------------- (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(#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 ---------------------------------------- (103) 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))) ---------------------------------------- (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(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 ---------------------------------------- (105) 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)) ---------------------------------------- (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(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 ---------------------------------------- (107) 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)) ---------------------------------------- (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#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 ---------------------------------------- (109) 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))) ---------------------------------------- (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)) 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 ---------------------------------------- (111) CdtRewritingProof (BOTH BOUNDS(ID, ID)) Used rewriting to replace BFS#2(::(z0, z1), x2) -> c42(BFS(appendreverse(z1, ::(z0, nil)), nil, x2), REVERSE(::(z0, z1))) by BFS#2(::(z0, z1), z2) -> c42(BFS(appendreverse#1(z1, ::(z0, nil)), nil, z2), REVERSE(::(z0, z1))) ---------------------------------------- (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)) 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#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))) BFS#2(::(z0, z1), z2) -> c42(BFS(appendreverse#1(z1, ::(z0, nil)), nil, z2), REVERSE(::(z0, z1))) 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)) 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))) BFS#2(::(z0, z1), z2) -> c42(BFS(appendreverse#1(z1, ::(z0, nil)), nil, z2), 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, 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, c_1, c36_1, c37_1, c42_2